AstroWay Astrology API (full catalogue)
Server Details
Every AstroWay endpoint as a tool: Western, Vedic, Chinese, Human Design, tarot, reports.
- Status
- Healthy
- Uptime
- 96.9% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 795 tools
The catalogue contains many literal duplicates: dozens of 'cursor-friendly alias' tools (helb_*, helg_*, hels_*, psya_*, psyg_*, psyr_*, numk*, nump*, vyp_*, trwd_*, vd_*) point at the exact same endpoints as their canonical counterparts, and the same numerology operation is repeated across four systems with nearly identical descriptions. Whole families of tools (16 geomancy figures, 12 per-sign zodiac endpoints, per-deck tarot spread endpoints, four Shadbala components vs. full) are hard to distinguish without deep domain knowledge, and deprecated tools still sit alongside their replacements.
The dominant pattern is a consistent prefix_group_action snake_case (e.g. astroway_vedic_dashas_vimshottari_maha), which is good. But the surface is polluted by cryptic abbreviated alias namespaces (helb, helg, hels, psya, psyg, psyr, numk, numks, nump, vyp, trwd, vd) that do not follow the pattern and are indistinguishable from typos, plus mixed action ordering such as astroway_calendar_aspects vs. astroway_aspects_aspect_bar.
795 tools for a single API surface is an extreme mismatch: far beyond what an agent can reason over or select from reliably. Much of the count is redundant (aliases, per-sign and per-figure endpoints, per-varga and per-dasha permutations) rather than distinct capability.
Coverage of the astrology domain is extraordinarily broad: Western, Vedic, Hellenistic, Human Design, BaZi, tarot, geomancy, numerology, reports, webhooks and visualization are all represented with lifecycle-style coverage. Minor gaps and quality issues remain (deprecated Zi Wei full-chart, placeholder Lal Kitab planet-house data, partial Pitru detection), but agents can work around them.
Available Tools
795 toolsastroway_account_statusAccount StatusARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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 definitionsARead-onlyIdempotentInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text filter applied within the selection, matched against path, summary, description and group. | |
| limit | No | How 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`. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| format | No | Which vendor contract the tool objects follow. `openai` returns `{ type, function }`, `anthropic` returns `{ name, description, input_schema }`. | openai |
| select | No | What 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 |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| notes | No | |
| tools | No | |
| format | No | |
| select | No | |
| executors | No | |
| truncated | No | |
| totalMatched | No | |
| totalAvailable | No |
TDQS
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.
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.
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.
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.
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.
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_ai_interpret_elementChart Element InterpretationBRead-onlyInspect
AI interpretation of a single chart element (planet/house/aspect) in context. Useful for chart-detail pages.
[Group: AI Interpretations] [Endpoint: POST /v1/interpret/element] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | No | |
| language | No | |
| disclaimer | No | |
| interpretation | No | |
| element_balance | No |
TDQS
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 adds genuinely useful operational context (cost of 100 credits, Tier 4, endpoint path), but says nothing about latency, auth, or what the AI interpretation actually consists of.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the purpose, followed by clearly delimited group/endpoint/cost metadata. Nothing is padded, though the one-line usage hint is thin relative to the space it occupies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return format need not be described, and cost/endpoint metadata is a nice addition. But for a tool whose whole premise is interpreting "a single chart element," the absence of any stated way to select that element (in description or schema) leaves a real completeness hole.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested birth-data object is documented in exhaustive detail, so the baseline is 3. The description adds nothing beyond the schema, and notably neither the description nor the schema exposes any parameter identifying WHICH planet/house/aspect is being interpreted, which is a semantic gap an agent would want addressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource: AI interpretation of a single chart element (planet/house/aspect) with context. However it does not distinguish itself from the close sibling astroway_ai_interpret_placement, which appears to cover similar single-element territory, so an agent cannot confidently choose between them 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Useful for chart-detail pages" implies the intended context but gives no when-not guidance and never names an alternative among the many astroway_ai_interpret_* siblings. The usage signal is suggestive rather than directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_ai_interpret_natalNatal Chart InterpretationARead-onlyInspect
Generate AI interpretation of a natal chart: personality traits, life themes, strongest archetypes. Multi-language. Token-cached for repeats.
[Group: AI Interpretations] [Endpoint: POST /v1/interpret/natal] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | No | |
| language | No | |
| disclaimer | No | |
| chart_summary | No | |
| interpretation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true), so the bar is lower. The description adds genuinely useful operational context: token caching for repeated calls, multi-language output, the POST endpoint, and the 100-credit Tier 4 cost. It does not state what the AI output format is, but the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence captures the purpose and output content, followed by short metadata lines for language, caching, group, endpoint, and cost. Efficient, though the bracket-tag lines are somewhat boilerplate rather than description prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema, return values need not be explained, and the cost/endpoint/caching details round out what an agent needs. The one real gap is sibling disambiguation among the interpret_* family, which the description never addresses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested body object documents birth-data fields, timezone rules, and house-system letters in detail. The description adds nothing about body, fields, or precision, so the baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Generate AI interpretation) and resource (natal chart), and enumerates the output content (personality traits, life themes, strongest archetypes). It does not explicitly differentiate itself from the many sibling interpret_* tools (element, placement, synastry, transits), leaving the agent to infer 'natal' means the whole birth chart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no exclusions, and no routing to alternatives such as astroway_ai_interpret_transits or astroway_ai_interpret_synastry. The only contextual cue is the [Group: AI Interpretations] tag, which is 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_ai_interpret_placementSpecific Placement InterpretationBRead-onlyInspect
AI interpretation of a specific planet+sign+house combination: concise, focused on the placement only.
[Group: AI Interpretations] [Endpoint: POST /v1/interpret/placement] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | No | |
| language | No | |
| disclaimer | No | |
| interpretation | No | |
| requested_planet | No |
TDQS
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 context not in the schema: the cost (100 credits, Tier 4), the endpoint, and the group. It says nothing about latency, output format, or why idempotentHint is false, but the cost disclosure is meaningful added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence followed by compact bracketed metadata — nothing wasteful. The bracketed group/endpoint/cost lines are boilerplate but dense and useful rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the parameters are fully documented in the schema. However, with seven near-identical AI-interpretation siblings, the description omits the one thing most needed: which interpretation tool to pick. Adequate but with a clear routing gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 body, fields, precision, and the planet/language parameters. The description adds no parameter semantics beyond what the schema provides, which is the correct baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'AI interpretation of a specific planet+sign+house combination,' and the qualifier 'concise, focused on the placement only' signals scope. It somewhat differentiates from the natal/element/synastry siblings by narrowing to a single placement, but never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no exclusions, and no routing among the six other astroway_ai_interpret_* siblings. The agent must infer that 'placement only' contrasts with natal/element interpretations without any explicit instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_ai_interpret_synastrySynastry InterpretationBRead-onlyInspect
AI interpretation of synastry between two charts: relationship dynamics, attractions, friction points, long-term outlook.
[Group: AI Interpretations] [Endpoint: POST /v1/interpret/synastry] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Pair of natal charts for relationship calculations: synastry, composite, davison. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | No | |
| language | No | |
| disclaimer | No | |
| interpretation | No |
TDQS
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 one genuinely useful piece of behavioral context the annotations lack: the cost of 100 credits at Tier 4. It says nothing about latency, rate limits, or why repeated calls are not idempotent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded single sentence that enumerates the deliverable, followed by compact structured metadata lines for group, endpoint and cost. Nothing is padded, though the content list is a phrase fragment rather than a full sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not explain return values, and it covers purpose plus cost. The remaining gap is routing context — an agent has no stated reason to pick this over comparison_coach or the composite/davison path referenced in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the chart objects carry very detailed field documentation (timezone, houseSystem, ayanamsa), so the schema does the heavy lifting. The description only implies the two-chart input via 'between two charts' and adds no format or constraint detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('AI interpretation of synastry between two charts') and enumerates the substance of the output: relationship dynamics, attractions, friction points, long-term outlook. It is distinguishable from the natal/transits/element siblings by the 'two charts' scope, though it never addresses how it differs from astroway_mcp_ai_comparison_coach or the composite/davison calculations the schema mentions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no conditions or prerequisites, and no routing to alternatives such as astroway_ai_interpret_natal (single chart) or astroway_mcp_ai_comparison_coach. The bracket metadata names the group and endpoint but does not tell 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_ai_interpret_tarotTarot Spread ReadingBRead-onlyInspect
AI reading of a tarot, Marseille or Lenormand spread: each position read in context, then a synthesis of the whole spread and one piece of advice. Takes card slugs or the drawn array of any draw response. Multi-language.
[Group: AI Interpretations] [Endpoint: POST /v1/interpret/tarot] [Required: cards] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set for the images in the answer. GET /v1/tarot/decks lists them. | |
| deck | No | rider-waite | |
| cards | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| spread | No | ||
| language | No | ||
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| deck | No | |
| model | No | |
| advice | No | |
| spread | No | |
| language | No | |
| question | No | |
| positions | No | |
| synthesis | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/openWorldHint/destructiveHint, so the safety profile is covered. The description adds behavior those annotations cannot express: the cost (100 credits, Tier 4), the structure of what the AI returns, and multilingual output. It does not explain the non-idempotent nature of repeated AI readings, but the added cost and output detail 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The narrative is front-loaded in one dense sentence covering purpose, input flexibility and output shape, with the metadata block (group, endpoint, required, cost) compactly appended. No sentence is wasted; the only minor cost is that parameter detail is omitted rather than trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 described, and cost plus required input are stated. However, for an 8-parameter tool at 38% schema coverage, an agent still lacks guidance on spread, question, art, fields and precision, making the definition only minimally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38%, so the description must carry more of the parameter burden. It covers the two most important ones implicitly (cards accepts slugs or a draw array; language = 'Multi-language'), but art, deck, spread, question, fields and precision get no mention at all, leaving six parameters explained only by terse or absent schema text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb+resource with a clear scope: an AI reading of a spread across three deck systems, with the output shape (per-position reading, synthesis, one piece of advice) spelled out. It doesn't explicitly distinguish itself from the deck-specific siblings astroway_tarot_marseille_interpret or astroway_tarot_rider_waite_interpret, which is the remaining gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Takes card slugs or the drawn array of any draw response' implies the intended workflow (call this after a draw tool) but never states that directly, and gives no guidance on when to prefer the deck-specific interpret siblings over this cross-deck tool. Usage is inferable 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_ai_interpret_transitsTransits InterpretationARead-onlyInspect
AI interpretation of current/upcoming transits to a natal chart: what each major transit means in life context.
[Group: AI Interpretations] [Endpoint: POST /v1/interpret/transits] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | No | |
| language | No | |
| disclaimer | No | |
| interpretation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, destructiveHint=false, so the safety profile is covered. The description adds genuinely useful operating context the annotations cannot: a 100-credit Tier 4 cost, the endpoint, and group membership. It stops short of noting that idempotentHint is false (repeated calls may re-charge), which would have been valuable for a paid tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and wastes nothing; the tagged metadata lines (group, endpoint, cost) are compact and each carries distinct information rather than padding. Nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 input schema is self-documenting. What remains missing for an agent choosing between many near-identical AI-interpretation siblings is disambiguation guidance, especially against astroway_mcp_ai_explain_transit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested body, fields, and precision parameters are all thoroughly documented in the schema itself. The description adds no parameter meaning beyond that, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — AI interpretation of current/upcoming transits to a natal chart — with the added scope 'what each major transit means in life context'. This separates it from natal-, synastry-, placement-, and tarot-focused siblings reasonably well. It does not, however, differentiate itself from astroway_mcp_ai_explain_transit, which sounds like it operates in the same territory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'current/upcoming transits to a natal chart' implies the usage context, but there is no explicit when-to-use statement, no prerequisites (e.g. that a natal chart is needed as input), and no routing to or away from the near-twin sibling astroway_mcp_ai_explain_transit. Usage 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_aspects_antisciaAntisciaBRead-onlyIdempotentInspect
Calculate antiscia (mirror points along the Cancer/Capricorn axis) and contra-antiscia, plus their aspects to natal planets.
[Group: Aspects & Points] [Endpoint: POST /v1/antiscia] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| aspects | No | |
| antiscia | No |
TDQS
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 non-annotation context: the POST endpoint and the '[Cost: 20 credits (Tier 2)]' pricing, which is useful for budget-aware planning. It says nothing about auth or result payload, but the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-sentence purpose is front-loaded and the bracketed metadata lines are scannable and compact. The endpoint line is close to redundant given the tool-name-to-route mapping, but nothing is bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output values need not be described because an output schema exists, and annotations cover safety. However, for a 15-parameter natal-chart calculation, the description never explains how the natal reference is supplied or what the defaults (tropical vs sidereal, house system) mean, leaving a meaningful gap against the 33% parameter coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (fields, ayanamsa, timezone, precision, timezoneOffset are documented; zodiacType, houseSystem, cosmogram, ayanamsaId, city, name, date, time, latitude, longitude are not). At this low coverage the description is expected to compensate, yet it only repeats the four required parameter names, adding no meaning beyond the schema's own required array.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (antiscia and contra-antiscia) and even defines the technique parenthetically as mirror points along the Cancer/Capricorn axis, which conceptually separates it from neighbours like midpoints or parallel_aspects. It does not name an alternative sibling explicitly, 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.
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 comparison to sibling techniques such as astroway_aspects_midpoints or astroway_aspects_parallel_aspects. The only contextual aid is the bracketed '[Required: date, time, latitude, longitude]', which restates the schema's required list 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_aspects_arabic_partsArabic Parts (Lots)BRead-onlyIdempotentInspect
Calculate Arabic parts (Lots) from a natal chart. Returns positions for standard lots (Fortune, Spirit, etc.) and any custom formula.
[Group: Aspects & Points] [Endpoint: POST /v1/arabic-parts] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus optional custom lot definitions; the built-in set is used when omitted. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| parts | No |
TDQS
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 the credit cost (20 credits, Tier 2) and the endpoint, which is useful operational context, but nothing about latency, auth, or the difference between built-in and custom lots.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences front-load the purpose and the return content, followed by compact bracketed metadata for group, endpoint, and cost. No wasted prose, though the metadata lines are boilerplate rather than descriptive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the 100%-covered input schema handles all parameter detail. Annotations carry the safety profile, so the remaining gap is only the lack of alternative-tool routing, which is minor for a single-purpose calculation endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the body, fields, and precision parameters are already fully documented in the schema. The phrase 'and any custom formula' loosely gestures at the parts array, but adds no syntax or constraint detail beyond what the schema already provides; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (Arabic parts / Lots) and the input context (a natal chart), plus what is returned (positions for standard lots such as Fortune and Spirit). It is clearly distinct from the many rendering/calendar siblings, though it never explicitly contrasts itself with any of them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 prerequisites beyond 'from a natal chart', and no naming of alternatives or when this should be preferred over other points/aspects tools. Usage must be inferred entirely from the tool name and group tag.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_aspects_aspect_barAspect Bars (Gantt)BRead-onlyIdempotentInspect
Transform aspect timelines into Gantt-style bars grouped by transit planet. Each bar shows the duration an aspect is in orb, with exact dates marked. Useful for visual transit calendars.
[Group: Aspects & Points] [Endpoint: POST /v1/aspect-bar] [Required: startDate, endDate] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| maxOrb | No | ||
| endDate | Yes | ||
| stepDays | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| startDate | Yes | ||
| planet1Ids | No | ||
| planet2Ids | No | ||
| aspectAngles | No | ||
| visiblePlanetIds | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| bars | No | |
| rows | No |
TDQS
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), and the description adds genuine context beyond them: cost (10 credits, Tier 1), endpoint (POST /v1/aspect-bar), and the semantic output behavior (bars span the orb duration, exact dates marked). It does not cover auth requirements or pagination/response-size limits for a date-range query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core transformation in the first sentence, followed by a compact metadata block for group, endpoint, required params, and cost. Efficient and scannable, with no redundant prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, with 10 parameters at 20% schema coverage, six tuning parameters (maxOrb, stepDays, aspectAngles, the planet/visibility ID lists) are unexplained in both places, leaving the definition incomplete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%, so the description carries compensation duty, yet it explains nothing about maxOrb, stepDays, planet1Ids/planet2Ids, aspectAngles, or visiblePlanetIds — the parameters that actually shape the result. It confirms startDate/endDate as required, which the schema already states, adding little.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Transform aspect timelines into Gantt-style bars grouped by transit planet') and clarifies the output shape (duration in orb, exact dates marked). It clearly conveys this is a visualization/transformation tool rather than raw data, distinguishing it from data-returning siblings, though it never names astroway_aspects_aspect_timeline or astroway_render_timeline as relatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Useful for visual transit calendars' implies the intended use case but gives no explicit when-to-use, when-not, or alternatives. An agent must infer when to prefer this Gantt-bar form over the aspect timeline or render_timeline sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_aspects_aspect_timelineAspect TimelineBRead-onlyIdempotentInspect
Calculate a timeline of when two specific planets form an exact aspect within a date range, including enter/exact/leave dates.
[Group: Aspects & Points] [Endpoint: POST /v1/aspect-timeline] [Required: startDate, endDate] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| maxOrb | No | ||
| endDate | Yes | ||
| stepDays | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| startDate | Yes | ||
| planet1Ids | No | ||
| planet2Ids | No | ||
| aspectAngles | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| timelines | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering the safety profile. The description adds that the output includes enter/exact/leave dates, which is meaningful behavioral context beyond the annotations. It does not disclose cost or performance limits, but the annotations carry the main safety burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and efficient, with no wasted words. The bracketed metadata lines (Group, Endpoint, Required, Cost) are structured but slightly break the flow, though they add useful routing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with only 22% schema description coverage, the description is too thin. It never clarifies default behavior for maxOrb, stepDays, or aspectAngles, nor how the enter/exact/leave dates are formatted. It also omits any mention of pagination or output shape despite having an output schema, which helps but doesn't fully bridge the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 22%, and the description does not compensate by explaining the semantics of maxOrb, stepDays, aspectAngles, planet1Ids, or planet2Ids. It mentions 'two specific planets,' hinting at the duality of planet arrays, but leaves the orb, step, and aspect-angle parameters completely undocumented in both schema and description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Calculate a timeline of when two specific planets form an exact aspect within a date range.' This clearly distinguishes it from siblings like astroway_calendar_aspects (a broader calendar) and astroway_aspects_aspect_bar. It could more explicitly differentiate from those siblings, but the core purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via 'within a date range' and 'two specific planets,' but never states when to choose this tool over siblings like astroway_calendar_aspects or astroway_aspects_aspect_bar. No explicit when-not or alternatives are provided, so the agent must infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_aspects_fixed_starsFixed StarsARead-onlyIdempotentInspect
Positions of fixed stars at the birth moment (36 classic stars, or the names in stars), and the conjunctions of natal planets with them within orb degrees (default 1, at most 5), closest first.
[Group: Aspects & Points] [Endpoint: POST /v1/fixed-stars] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| orb | No | |
| stars | No | |
| conjunctions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description still adds real value: star count, orb default and hard cap, closest-first ordering, and the 20-credit Tier 2 cost — details not present in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence front-loads the output content and scope, followed by compact bracketed metadata lines. No sentence is filler; defaults and limits are packed into the lead sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is unnecessary, and cost/required fields are disclosed. The main gap is the unexplained relationship to the fixed-star catalog sibling and the mention of `stars`/`orb` inputs that the schema does not expose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate more than it does. It does explain `stars` and `orb` semantics (default 1, max 5), but neither appears in the input schema, and parameters like zodiacType, houseSystem, cosmogram, city, and name are left to the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource — fixed-star positions at the birth moment plus conjunctions with natal planets, with defaults (36 classic stars, orb 1°, capped at 5°) and sort order (closest first). This clearly separates it from the many aspect/point siblings, though it does not explicitly name `astroway_aspects_fixed_stars_catalog` as the alternate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The bracketed metadata (group, endpoint, required fields, credit cost) gives useful context, but there is no explicit statement of when to use this versus the fixed-star catalog or other aspect tools. Usage is only implied by the group label 'Aspects & Points'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_aspects_fixed_stars_catalogFixed star catalogueARead-onlyIdempotentInspect
The star names this API accepts, from Swiss Ephemeris fixstars.cat: traditional name, Bayer nomenclature, constellation and magnitude, with the 36-star astrological default set flagged. Optional ?maxMagnitude= trims to the bright end. Static lookup, no chart needed.
[Group: Aspects & Points] [Endpoint: GET /v1/fixed-stars/catalog] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| stars | No | |
| total | No | |
| source | No | |
| maxMagnitude | No | |
| defaultSetSize | No |
TDQS
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 genuinely new behavioral context: the data is static, drawn from fixstars.cat, the 36-star astrological default set is flagged in the output, and it costs 5 credits. That is meaningful disclosure beyond the structured fields, though it omits response shape or pagination details (partly covered by the output schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense, front-loaded sentence plus three bracketed metadata lines (group, endpoint, cost) that all carry actionable information for the agent. No filler; slightly heavy packing of five output fields into a single clause, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 re-explained, yet the description still enumerates the catalog columns. Combined with the cost, endpoint, and 'no chart needed' note, an agent has everything required to select and invoke this reference tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the two declared parameters (fields, precision), so the schema does the heavy lifting and baseline is 3. Notably the description introduces an '?maxMagnitude=' trim option that does not appear in the input schema, which adds information but also creates ambiguity about whether it can be passed as a tool argument or only as a raw query string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete resource and scope: the star names the API accepts, sourced from Swiss Ephemeris fixstars.cat, with the exact fields returned (traditional name, Bayer nomenclature, constellation, magnitude, default-set flag). It also implicitly separates itself from the chart-based sibling astroway_aspects_fixed_stars via 'Static lookup, no chart needed', though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Static lookup, no chart needed' tells the agent this is a prerequisite/reference call rather than a computation, and the maxMagnitude note signals a filtering option. There is no explicit statement of when to call this versus astroway_aspects_fixed_stars or astroway_geo_parans_star, so the agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_aspects_gauquelin_sectorsGauquelin SectorsARead-onlyIdempotentInspect
Calculate Gauquelin sector positions (1–36) for all planets, indicating whether each planet is in a power zone.
[Group: Aspects & Points] [Endpoint: POST /v1/gauquelin-sectors] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| sectors | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a read-only, idempotent, non-destructive, closed-world operation, so safety is covered. The description adds genuinely useful non-annotation context: the endpoint, the credit cost (20 credits, Tier 2), and which fields are mandatory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and complete, followed by a compact bracketed metadata block (group, endpoint, required fields, cost). No sentence is wasteful and every line carries operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a 15-parameter calculation tool whose optional configuration meaningfully alters the result, the description is silent on those choices, leaving a real gap that the schema only partly fills.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description must compensate for eleven undocumented optional parameters. Instead it merely restates the four required fields already declared in the schema's required array, adding essentially no semantic value for options like ayanamsa, zodiacType, houseSystem, or timezone handling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate') and resource ('Gauquelin sector positions (1–36)') with scope ('for all planets') and an outcome qualifier ('indicating whether each planet is in a power zone'). This is a distinct astrological technique with no competing sibling, so an agent can identify it immediately.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists required inputs and cost but gives no when-to-use guidance, no exclusions, and never names an alternative sibling. An agent must infer entirely from the name when this technique applies rather than, say, midpoint or parans tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_aspects_midpointsMidpointsBRead-onlyIdempotentInspect
Calculate all planetary midpoints and their zodiac positions. Optionally include midpoint aspects to natal points.
[Group: Aspects & Points] [Endpoint: POST /v1/midpoints] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| midpoints | No |
TDQS
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 externally. The description adds real value beyond annotations by disclosing cost (20 credits, Tier 2), the endpoint, and required inputs. It stops short of noting response size or how the optional aspect inclusion is toggled, so 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose in the first sentence, followed by a short optional extension, then a compact bracketed metadata block. No filler sentences. The metadata block is dense but scannable and each line carries operational value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 prose, and annotations cover safety. But for a 15-parameter tool with only 33% schema coverage, the description leaves substantial gaps around which parameters enable sidereal mode, house system choice, and the compact-mode fields/precision options. It is minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. It restates the four required inputs and vaguely alludes to an optional aspect toggle without naming the controlling parameter. Key knobs such as zodiacType, houseSystem, ayanamsaId, precision, and cosmogram receive no explanation in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Calculate all planetary midpoints and their zodiac positions,' with an optional aspect extension. An agent can tell it computes midpoints rather than, say, midpoint trees or antiscia. However, it offers no explicit contrast with the close sibling astroway_aspects_midpoint_trees, so differentiation relies on 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.
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 mention of alternatives like astroway_aspects_midpoint_trees or astroway_aspects_aspect_bar. The only contextual markers are the required-inputs and cost lines, which inform feasibility rather than selection. The agent must infer the use case entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_aspects_midpoint_treesMidpoint Trees (Uranian)BRead-onlyIdempotentInspect
Calculate Uranian midpoint trees and planetary pictures (symmetries) for each focal planet within a given orb.
[Group: Aspects & Points] [Endpoint: POST /v1/midpoint-trees] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus the orb in degrees used for midpoint trees and symmetries. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| trees | No | |
| symmetries | No |
TDQS
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 useful operational context (endpoint, Tier 2 cost of 20 credits) not present in annotations, but says nothing about output shape or what a 'midpoint tree' actually resolves to.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action in the first clause, followed by compact structured metadata lines. Nothing is padded, though the group/endpoint/cost footer is boilerplate rather than task-relevant prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. Annotations cover the safety profile. However, for a domain-specific Uranian technique whose sibling tool (astroway_aspects_midpoints) is nearly identical, the description leaves the agent without enough to know when this tool is the right pick.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the body, orb, fields and precision parameters. The description's mention of 'within a given orb' loosely points at the orb parameter but adds no syntax, defaults, or range detail beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate') and a well-scoped resource ('Uranian midpoint trees and planetary pictures (symmetries) for each focal planet within a given orb'). This is more than a restated name, but it does not distinguish itself from the very close sibling astroway_aspects_midpoints, so the agent cannot route between them from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, despite a near-identical sibling (astroway_aspects_midpoints) that would be the natural confusion point. The only usage context provided is a group/endpoint/cost footer, which is operational metadata rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_aspects_parallel_aspectsParallel AspectsBRead-onlyIdempotentInspect
Calculate parallel (same declination) and contra-parallel (opposite declination) aspects between all planets within orb.
[Group: Aspects & Points] [Endpoint: POST /v1/parallel-aspects] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus the declination orb in degrees. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| parallels | No |
TDQS
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 genuinely new operational context (POST endpoint, 20-credit Tier 2 cost) but says nothing about return structure, orb defaults, or computation edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence states the operation and defines both aspect types; the metadata block is terse and structured. No wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a stateless calculation tool with a complete input schema, a published output schema, and full annotation coverage, the description supplies what the structured fields do not: cost and endpoint. The main remaining gap is the absence of any routing hint among the many sibling aspect tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 date, time, latitude, longitude, orb, fields, and precision in detail. The phrase 'within orb' signals the orb parameter's role but adds no syntax, default, or range information beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('calculate parallel and contra-parallel aspects between all planets within orb') and defines both terms inline, so the agent knows exactly what computation is performed. It does not explicitly differentiate itself from sibling aspect tools such as antiscia or midpoints, but the named resource ('parallel aspects') is distinctive enough to route correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 only added context is grouping, endpoint, and cost. The agent is left to infer that this is the declination-aspect tool versus other aspect families based solely on the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_aspects_sabian_symbolsSabian SymbolsBRead-onlyIdempotentInspect
Return the Sabian symbol (Dane Rudhyar) for each given ecliptic longitude.
[Group: Aspects & Points] [Endpoint: POST /v1/sabian-symbols] [Required: longitudes] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| longitudes | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| symbols | No |
TDQS
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 adds useful billing context ('10 credits, Tier 1') and the required parameter, but does not disclose rate limits, auth needs, or other behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence front-loads the core purpose, and the bracketed metadata is compact and structured. Every line earns its place without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup with an output schema and full safety annotations, the description covers the required input and cost. It is complete enough to call correctly, though usage routing remains absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, with 'longitudes' lacking a schema description. The description compensates somewhat by calling them 'ecliptic longitude' and marking the parameter required, but it adds no meaning for the compact-mode 'fields' and 'precision' parameters beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Return') and resource ('Sabian symbol') and scopes it to 'each given ecliptic longitude' with the Dane Rudhyar attribution. It is clear, but it does not name or distinguish itself from any sibling aspect tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus alternatives. The required-parameter and cost notes are operational, not usage context, and no sibling tool is referenced.
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 chartARead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| gender | No | ||
| language | No | ||
| timezone | No | 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. | |
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| dayBoundary | No | ||
| includeLuck | No | ||
| stageSchool | No | ||
| trueSolarTime | No | ||
| timezoneOffset | No | Ignored when timezone is sent. | |
| includeFullTable | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| source | No | |
| pillars | No | |
| language | No | |
| strength | No | |
| dayMaster | No | |
| solarYear | No | |
| disclaimer | No | |
| methodology | No | |
| stageSchool | No | |
| interactions | No | |
| symbolicStars | No | |
| elementBalance | No |
TDQS
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.
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.
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.
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.
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.
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 MasterBRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| timezone | No | 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. | |
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| dayBoundary | No | ||
| trueSolarTime | No | ||
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| dayMaster | No | |
| dayPillar | No | |
| disclaimer | No | |
| interpretation | No |
TDQS
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.
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.
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.
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.
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.
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 BalanceBRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| gender | No | ||
| language | No | ||
| timezone | No | 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. | |
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| dayBoundary | No | ||
| includeLuck | No | ||
| stageSchool | No | ||
| trueSolarTime | No | ||
| timezoneOffset | No | Ignored when timezone is sent. | |
| includeFullTable | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| source | No | |
| balance | No | |
| pillars | No | |
| solarYear | No | |
| disclaimer | No | |
| methodology | No | |
| deprecations | No | |
| elementCounts | No | |
| dominantElement | No | |
| missingElements | No |
TDQS
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.
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.
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.
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.
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.
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)ARead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| dayPillar | No | |
| solarYear | No | |
| disclaimer | No | |
| hourPillar | No | |
| yearPillar | No | |
| monthPillar | No |
TDQS
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.
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.
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.
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.
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.
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_hour_pillarHour PillarBRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| time | No | |
| cstHour | No | |
| dayPillar | No | |
| localHour | No | |
| disclaimer | No | |
| hourPillar | No | |
| methodology | No | |
| timezoneOffset | No |
TDQS
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.
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.
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.
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.
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.
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 interactionsBRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| gender | No | ||
| language | No | ||
| timezone | No | 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. | |
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| dayBoundary | No | ||
| includeLuck | No | ||
| stageSchool | No | ||
| trueSolarTime | No | ||
| timezoneOffset | No | Ignored when timezone is sent. | |
| includeFullTable | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| source | No | |
| pillars | No | |
| solarYear | No | |
| disclaimer | No | |
| methodology | No | |
| interactions | No |
TDQS
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.
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.
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.
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.
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.
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 stagesCRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| gender | No | ||
| language | No | ||
| timezone | No | 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. | |
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| dayBoundary | No | ||
| includeLuck | No | ||
| stageSchool | No | ||
| trueSolarTime | No | ||
| timezoneOffset | No | Ignored when timezone is sent. | |
| includeFullTable | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| school | No | |
| source | No | |
| dayMaster | No | |
| solarYear | No | |
| disclaimer | No | |
| schoolNote | No | |
| methodology | No | |
| dayMasterThroughChart | No |
TDQS
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.
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.
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.
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.
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.
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)BRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| count | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| gender | Yes | ||
| language | No | ||
| timezone | No | 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. | |
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| dayBoundary | No | ||
| trueSolarTime | No | ||
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| count | No | |
| gender | No | |
| source | No | |
| startAge | No | |
| direction | No | |
| disclaimer | No | |
| luckPillars | No | |
| methodology | No | |
| startReference | No |
TDQS
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.
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.
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.
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.
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.
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 ForecastARead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| timezone | No | 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. | |
| longitude | No | ||
| natalDate | Yes | ||
| natalTime | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| targetYear | Yes | ||
| dayBoundary | No | ||
| targetMonth | Yes | ||
| natalTzOffset | No | Ignored when timezone is sent. | |
| trueSolarTime | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| disclaimer | No | |
| targetYear | No | |
| elementFlow | No | |
| targetMonth | No | |
| targetPillar | No | |
| natalDayMaster | No | |
| branchInteractions | No |
TDQS
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.
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.
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.
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.
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.
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 PillarARead-onlyIdempotentInspect
Month stem + branch from solar-term boundaries.
[Group: BaZi (Four Pillars)] [Endpoint: POST /v1/bazi/month-pillar] [Required: date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| monthPillar | No |
TDQS
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.
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.
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.
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.
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.
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-elementBRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| gender | No | ||
| language | No | ||
| timezone | No | 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. | |
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| dayBoundary | No | ||
| includeLuck | No | ||
| stageSchool | No | ||
| trueSolarTime | No | ||
| timezoneOffset | No | Ignored when timezone is sent. | |
| includeFullTable | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| source | No | |
| pillars | No | |
| solarYear | No | |
| disclaimer | No | |
| methodology | No |
TDQS
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.
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.
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.
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.
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.
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 strengthBRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| gender | No | ||
| language | No | ||
| timezone | No | 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. | |
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| dayBoundary | No | ||
| includeLuck | No | ||
| stageSchool | No | ||
| trueSolarTime | No | ||
| timezoneOffset | No | Ignored when timezone is sent. | |
| includeFullTable | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| source | No | |
| pillars | No | |
| strength | No | |
| dayMaster | No | |
| solarYear | No | |
| disclaimer | No | |
| methodology | No |
TDQS
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.
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.
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.
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.
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.
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)BRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| gender | No | ||
| language | No | ||
| timezone | No | 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. | |
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| dayBoundary | No | ||
| includeLuck | No | ||
| stageSchool | No | ||
| trueSolarTime | No | ||
| timezoneOffset | No | Ignored when timezone is sent. | |
| includeFullTable | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| source | No | |
| pillars | No | |
| solarYear | No | |
| disclaimer | No | |
| byDayPillar | No | |
| methodology | No | |
| byYearPillar | No | |
| referenceNote | No |
TDQS
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.
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.
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.
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.
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.
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)BRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| timezone | No | 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. | |
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| dayBoundary | No | ||
| trueSolarTime | No | ||
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| source | No | |
| tenGods | No | |
| dayMaster | No | |
| disclaimer | No | |
| methodology | No |
TDQS
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.
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.
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.
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.
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.
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 ForecastBRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| gender | No | ||
| language | No | ||
| timezone | No | 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. | |
| longitude | No | ||
| natalDate | Yes | ||
| natalTime | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| targetYear | Yes | ||
| dayBoundary | No | ||
| includeMonths | No | ||
| natalTzOffset | No | Ignored when timezone is sent. | |
| trueSolarTime | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| disclaimer | No | |
| targetYear | No | |
| elementFlow | No | |
| targetPillar | No | |
| natalDayMaster | No | |
| branchInteractions | No |
TDQS
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.
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.
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.
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.
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.
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 PillarCRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| yearPillar | No |
TDQS
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.
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.
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.
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.
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.
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 × 10BRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| startYear | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| decade | No | |
| startYear | No | |
| disclaimer | No |
TDQS
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.
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.
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.
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.
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.
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_business_customer_archetypeCustomer ArchetypeBRead-onlyIdempotentInspect
Native customer persona that resonates with the founder's sun-sign brand voice.
[Group: Business Astrology] [Endpoint: POST /v1/business/customer-archetype] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| note | No | |
| element | No | |
| disclaimer | No | |
| founderSign | No | |
| targetTraits | No | |
| targetArchetype | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safe-read profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false). The description adds operational context not in annotations: cost (10 credits, Tier 1), the POST endpoint, and the exact required inputs. These are genuinely useful behavioral facts for an agent to decide to spend credits on this call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence plus compact bracket metadata. No redundant prose and everything is quickly scannable. The bracket block is dense and slightly non-prose, but it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and annotations cover safety. However, for a 15-parameter tool with 33% schema description coverage and several enums, the description is thin: it doesn't clarify optional-parameter usage or output framing beyond what structured fields supply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a heavy burden. It merely restates the four required params (date, time, latitude, longitude) that the schema already marks as required, and adds no format/semantic detail for the many optional params (ayanamsa, timezone, houseSystem, fields, precision). 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a resource (customer persona/archetype tied to the founder's sun-sign brand voice), but phrases it as a noun rather than a clear verb+resource action. It has some distinctiveness within the business-astrology sibling group (founder_personality, marketing_style, etc.) but doesn't sharply separate itself. Purpose is inferrable but vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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-tool guidance is given. It lists required params, cost, and endpoint, but says nothing about when an agent should pick this archetype tool over the many business siblings. Usage 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_business_electional_dayElectional-Day SuitabilityBRead-onlyIdempotentInspect
Suitability of a proposed launch date for the venture type.
[Group: Business Astrology] [Endpoint: POST /v1/business/electional-day] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| notes | No | |
| element | No | |
| sunSign | No | |
| disclaimer | No | |
| suitability | No | |
| proposedDate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and a closed world, so the safety profile is covered. The description usefully adds the cost (10 credits, Tier 1) and the HTTP endpoint, but says nothing about response shape, latency, or whether the call is deterministic across identical inputs beyond the generic idempotent hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is a single front-loaded sentence and the metadata blocks are compact and scannable. The bracketed lines carry real information (group, endpoint, required fields, cost) rather than filler, though they are structural boilerplate rather than description content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 four required inputs are enumerated. However, for a 15-parameter tool with one-third schema coverage, the description gives no orientation to the optional chart-style parameters, leaving the agent unable to judge defaults or when to override them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the description merely repeats the four required fields already implied by the schema. Nothing explains the many optional switches (zodiacType, houseSystem, ayanamsa/ayanamsaId, cosmogram) or how they change the suitability reading, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific evaluation task — whether a proposed launch date is suitable — which is a clear verb+resource for an electional astrology endpoint. It does not differentiate itself from adjacent siblings such as astroway_vedic_muhurat_business_start or astroway_calendar_* timing tools, and it references a 'venture type' that appears nowhere in the input schema, which slightly blurs the intent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 this should be preferred over the muhurta/calendar timing siblings, and no note on prerequisites (e.g. whether a pre-existing business chart is needed). The only usage context is the mechanical metadata block (endpoint, required fields, cost).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_business_expansion_timingExpansion TimingCRead-onlyIdempotentInspect
High-level expansion guidance; pair with /transits for actual windows.
[Group: Business Astrology] [Endpoint: POST /v1/business/expansion-timing] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| note | No | |
| element | No | |
| sunSign | No | |
| disclaimer | No | |
| generalGuidance | No |
TDQS
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 structurally. The description adds two pieces of context the schema cannot convey: the billed cost (10 credits, Tier 1) and the HTTP endpoint. That is useful, but it says nothing about auth requirements, rate limits, or result granularity beyond the vague 'high-level'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single guidance sentence is front-loaded and waste-free, and the bracketed metadata blocks are scannable. Offsetting that, the '[Required: ...]' block duplicates information already in the input schema rather than earning its place, and the terse bracket style reads as a data dump rather than prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description is correctly relieved of explaining return values. For a 15-parameter tool with low schema coverage, though, the definition is thin: it supplies cost and endpoint but no guidance on choosing among the crowded business_* family, and half the parameters remain undocumented in either place. Minimum viable, clearly lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a real compensation burden and fails to meet it. The '[Required: date, time, latitude, longitude]' line merely repeats the schema's required array verbatim and adds no meaning, while the eleven optional parameters (zodiacType, houseSystem, fields, precision, etc.) that lack schema descriptions get no explanation here either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a resource (high-level expansion guidance) but the verb and scope are vague — 'guidance' could mean almost anything, and it never says what the tool actually computes or returns. It does gesture at a boundary by telling the agent it is NOT the source of concrete windows (pair with /transits), which is better than nothing. However it does nothing to distinguish itself from the ten-plus other astroway_business_* siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Pair with /transits for actual windows' implies this tool is the qualitative/complementary half of a two-call pattern, which is genuine usage guidance. But there is no statement of when to prefer this over astroway_business_electional_day or astroway_business_risk_profile, nor any prerequisites or exclusions. Usage is implied rather than specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_business_founder_personalityFounder PersonalityCRead-onlyIdempotentInspect
Founder type + strengths/weaknesses + ideal industry.
[Group: Business Astrology] [Endpoint: POST /v1/business/founder-personality] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| element | No | |
| profile | No | |
| sunSign | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed world, so the safety profile is covered. The description adds genuinely useful non-annotation context: the endpoint, the four required fields, and a cost of 10 credits (Tier 1). It does not, however, disclose latency, caching, or whether results are deterministic across ayanamsa choices.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short, front-loaded, and every bracketed line carries real information (group, endpoint, required inputs, cost) with no padding. The opening output summary is a fragment rather than a sentence, which costs it the top score but not much else.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter derivation tool sitting in a dense cluster of business siblings, the description omits what the tool computes from, when it should be preferred, and how optional parameters affect the reading; output schema presence excuses it from explaining return values, but not from these gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries the burden of compensating and does not. It merely restates the four required fields that the schema already marks required, and never explains the optional knobs (ayanamsa, zodiacType, houseSystem, precision, fields, cosmogram) that materially change the computed profile.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description lists outputs ('Founder type + strengths/weaknesses + ideal industry') but never states what the tool actually does or what input it derives from — it is a noun fragment rather than a verb+resource statement. It also fails to distinguish itself from close siblings like astroway_business_ideal_industry and astroway_business_leadership_style, whose outputs overlap heavily with the listed items.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no preconditions, and no routing to alternatives. Given that astroway_business_ideal_industry covers one of the described outputs and astroway_business_leadership_style covers personality-adjacent ground, an agent has no basis for choosing among them from this text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_business_founding_chartFounding-Day ChartBRead-onlyIdempotentInspect
Treat the proposed founding date as a chart; returns sun/moon/ASC + theme.
[Group: Business Astrology] [Endpoint: POST /v1/business/founding-chart] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| planets | No | |
| sunSign | No | |
| moonSign | No | |
| ascendant | No | |
| disclaimer | No | |
| foundingTheme | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare a safe, idempotent, closed-world read, so the safety profile is covered. The description adds genuinely new behavioral context absent from the annotations: cost (10 credits, Tier 1), the endpoint, and the four required inputs. It does not disclose any constraints around the non-required parameters or how the chart engine behaves, but for a compute-style read tool with annotations this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight lead sentence followed by bracketed metadata (group, endpoint, required, cost) is efficient and front-loaded. Nothing is padded, though the core sentence is arguably too terse to carry the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with three enum-bearing options and low schema coverage, the description is thin. An output schema exists so return values need not be explained, but the description gives no guidance on choosing house system, zodiac type, or ayanamsa, nor on the geographic inputs, leaving real gaps for an agent to call it well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only 33% schema description coverage, the description is expected to compensate, and it largely does not. It restates the four required fields (already marked required in the schema) and mentions sun/moon/ASC, but says nothing about city, name, cosmogram, zodiacType, houseSystem, or how the ayanamsa/precision/fields options change the result. The half of the schema that is undocumented remains undocumented here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and output: it treats a proposed founding date as a chart and returns sun/moon/ASC plus a theme. That is a concrete verb+resource, clearly distinct from the interpretive business siblings (founder_personality, leadership_style). It does not, however, name or differentiate itself from the closest siblings like astroway_business_electional_day or astroway_vedic_muhurat_business_start, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'proposed founding date' implies the use case — evaluate a candidate date you already have — but the description never states when to prefer this over electional_day (finding a date) or muhurat_business_start. No exclusions or alternatives are given, leaving usage only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_business_ideal_industryIdeal IndustriesCRead-onlyIdempotentInspect
Industries best suited to this founder profile.
[Group: Business Astrology] [Endpoint: POST /v1/business/ideal-industry] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| element | No | |
| sunSign | No | |
| disclaimer | No | |
| industries | No |
TDQS
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 cost (10 credits, Tier 1) and the endpoint, which are genuinely useful behavioral facts not present in annotations, but says nothing about what the returned profile contains or how the profile is computed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One-sentence purpose plus a compact bracketed metadata block; the purpose is front-loaded and nothing is padded. The metadata lines are terse and each carries distinct information (group, endpoint, required inputs, cost).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema excuses explaining return values, but with 15 parameters and a required date/time/lat/long set, the description never clarifies whose chart is being read — the founder's birth moment or the business's founding moment — which is the single most consequential ambiguity here. Given low schema coverage and no usage guidance, the definition is not complete enough for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the description must compensate for the undocumented parameters — and it does not. It restates the four required params (date, time, latitude, longitude), which the schema already marks as required, and offers no meaning for city, name, cosmogram, zodiacType, houseSystem, or the ayanamsa variants beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a concrete resource (industries) and the scoping input (a founder profile), which is enough to tell it apart from siblings like astroway_business_ideal_partner_sign or astroway_business_leadership_style. It stops short of stating that the profile is derived from the required birth data, but the purpose is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling routing is given. The metadata block lists group, endpoint, required params, and cost, which is procedural detail rather than guidance on choosing this tool over the other ~40 business-astrology siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_business_ideal_partner_signIdeal Partner SignsCRead-onlyIdempotentInspect
Trine elemental partners with natural synergy.
[Group: Business Astrology] [Endpoint: POST /v1/business/ideal-partner-sign] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| idealPartnerSigns | No |
TDQS
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 safety is covered. The description adds genuinely useful non-schema context: the endpoint path and the billing tier ('Cost: 10 credits (Tier 1)'). It says nothing about latency, rate limits, or what the response contains beyond the implied compatibility framing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata block is compact and front-loads the endpoint, required params, and cost efficiently. However, the leading sentence is cryptic astrological shorthand that consumes space without conveying actionable meaning, so the structure is tidy but the content is thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, 10-credit tool with an output schema, the definition omits what the tool actually returns (which signs, in what ordering/format), any prerequisite birth-data requirements beyond the bare names, and how it differs from adjacent business and compatibility tools. An output schema excuses explaining return values, but not the near-total absence of purpose and routing guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate, but it only restates the four required names (date, time, latitude, longitude) that the schema's `required` array already declares. It adds no meaning for the eleven optional parameters such as ayanamsa, houseSystem, precision, or fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The line 'Trine elemental partners with natural synergy' gestures at the output (partner signs grouped by trine elements) but never states a verb or what is actually computed from the birth data. The [Endpoint: POST /v1/business/ideal-partner-sign] tag and group label supply the only concrete framing. An agent can guess the topic but not the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement and no comparison against the many plausible siblings (astroway_business_team_compatibility, astroway_business_founder_personality, astroway_vedic_compatibility_ashtakoot, astroway_relational_match_score). The description only lists required inputs and cost, which does not tell 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_business_leadership_styleLeadership StyleCRead-onlyIdempotentInspect
Concise leadership archetype + key strengths.
[Group: Business Astrology] [Endpoint: POST /v1/business/leadership-style] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| element | No | |
| sunSign | No | |
| strengths | No | |
| disclaimer | No | |
| leadership | No |
TDQS
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 covered structurally. The description adds the cost ('10 credits (Tier 1)') and the endpoint, which is genuine value beyond the schema, but it says nothing about auth, latency, or output shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short and front-loaded: the archetype description leads, followed by compact bracketed metadata. Almost every line carries information, though the endpoint tag is of limited use to an agent selecting the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 15 parameters, three enum families, and low schema description coverage, the description is too thin to guide correct invocation. The presence of an output schema excuses it from describing return values, but the failure to explain the numerous optional astrological parameters leaves a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 33% of the 15 parameters have schema descriptions, and the description merely repeats the four required fields already enumerated in the schema's required array. It adds no meaning for the optional parameters (city, name, cosmogram, zodiacType, houseSystem, latitude/longitude semantics) that the agent must reason about, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete output ('concise leadership archetype + key strengths'), which is more specific than a bare resource name and tells the agent what it will get back. However it does not differentiate itself from close siblings like astroway_business_founder_personality, astroway_business_marketing_style, or astroway_business_risk_profile, so an agent must infer the boundary rather than being told it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this tool over the related business tools, nor any exclusion criteria. The '[Required: date, time, latitude, longitude]' tag gives prerequisites but not usage context, and no alternate tool is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_business_marketing_styleMarketing StyleCRead-onlyIdempotentInspect
Element-based marketing voice and campaign style.
[Group: Business Astrology] [Endpoint: POST /v1/business/marketing-style] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| style | No |
TDQS
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 is lower. The description earns credit for disclosing billing behavior ("10 credits (Tier 1)") and the POST endpoint, which annotations do not cover, but it says nothing about output shape, latency, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and the overall size is small, so nothing is bloated. However, the bracketed metadata lines partially duplicate the schema ("Required: date, time, latitude, longitude") and add little beyond the endpoint and cost fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 15 parameters, 4 required, and only 33% schema coverage, the description is too thin for a tool of this complexity. An output schema exists so return values need no explanation, and annotations cover safety, but the vague purpose and total absence of usage or parameter guidance leave real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description must carry more weight, yet it only repeats the four required fields already listed in the schema's required array. It adds no meaning for the eleven optional parameters (ayanamsa, timezone, houseSystem, zodiacType, precision, fields, etc.) and does not explain their interactions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Element-based marketing voice and campaign style" identifies the resource (marketing voice/style output) but offers no verb and no scope detail. It is not distinguishable from closely-named siblings such as astroway_business_leadership_style, astroway_business_founder_personality, or astroway_business_risk_profile, so an agent cannot tell which output it produces without guessing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use context, no prerequisites beyond the metadata block, and no guidance on choosing this over the many sibling business tools. The required-parameter and endpoint lines are structured metadata 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_business_name_suggestionsName SuggestionsCRead-onlyIdempotentInspect
Naming hints (syllable structure, palette, semantic field) by sign.
[Group: Business Astrology] [Endpoint: POST /v1/business/name-suggestions] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| element | No | |
| sunSign | No | |
| nameHints | No | |
| disclaimer | No |
TDQS
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 and determinism profile is covered. The description contributes the 10-credit Tier 1 cost and the required-parameter list, which are useful, but says nothing about price of failure, rate limits, or how the sign is derived from the supplied birth data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and the metadata block is compact and consistently formatted; nothing is padded. It is very terse for a 15-parameter tool, but the brevity is intentional rather than accidental.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter endpoint with only 33% schema coverage, the description leaves major semantic gaps, notably which sign the hints are keyed to and what the optional name/city inputs do. An output schema exists so return values need not be explained, but the input-to-output relationship remains underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 33% across 15 parameters, so the schema cannot carry the load. The description only restates the four required fields (date, time, latitude, longitude) that the schema already marks required, and adds nothing about city, name, cosmogram, zodiacType, houseSystem, or ayanamsaId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource and its payload fields (syllable structure, palette, semantic field), and the [Group: Business Astrology] tag separates it from lookalikes such as astroway_pet_best_names or the Vedic naming muhurat tools. It lacks an explicit verb and never states whose sign drives the result, but an agent can still tell what this tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing is provided. The bracketed lines give only metadata (endpoint, required fields, credit cost), so an agent has no guidance on choosing this over the naming-related siblings in the same catalog.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_business_risk_profileRisk ProfileCRead-onlyIdempotentInspect
Element-based risk tolerance + recommended safeguards.
[Group: Business Astrology] [Endpoint: POST /v1/business/risk-profile] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| riskProfile | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare the full safety profile (read-only, idempotent, non-destructive), so the description's remaining burden is light. It does add genuinely useful operational context — the POST endpoint and a 10-credit Tier 1 cost — but says nothing about latency, caching, or how the safeguards are derived.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line purpose is front-loaded and the bracketed metadata is compact and scannable. Nothing is padded, though the cost/endpoint lines are administrative rather than descriptive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter tool with 33% schema coverage and a doppelgänger sibling, the description leaves real gaps: no parameter semantics, no sibling disambiguation, and no usage context. The cost note is the only substantive addition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description would need to compensate and it does not. Its '[Required: date, time, latitude, longitude]' line merely repeats the schema's required array, adding zero meaning for the other eleven parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific deliverable — an element-derived risk tolerance reading plus recommended safeguards — which is more than a restatement of the title 'Risk Profile'. It stops short of distinguishing itself from the near-identical sibling astroway_financial_risk_tolerance, so an agent must guess which risk tool applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternative, despite sibling tools like astroway_financial_risk_tolerance and astroway_business_expansion_timing living in the same decision space. The bracketed Required list tells the agent what to supply, not when to reach for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_business_team_compatibilityTeam CompatibilityBRead-onlyIdempotentInspect
Founder × partner compatibility score.
[Group: Business Astrology] [Endpoint: POST /v1/business/team-compatibility] [Required: founder, partner] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| founder | Yes | Birth 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. | |
| partner | Yes | Birth 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| compatibility | No |
TDQS
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 fully covered by structured data. The description adds genuinely useful non-annotation context — the endpoint, the 10-credit Tier 1 cost, and the required inputs — but says nothing about latency, failure modes, or how the two charts are combined, and assumed return content is covered by the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One-line purpose sentence is front-loaded, followed by a compact bracketed metadata block (group, endpoint, required inputs, cost). Nothing is wasted, though the metadata block is machine-style scaffolding rather than prose, which slightly dilutes readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-format explanation is rightly absent, and the annotations plus the 100%-covered input schema carry the heavy lifting. What remains missing is disambiguation within a very large sibling family of compatibility tools and any note on input assumptions (e.g. both parties need complete birth data for a meaningful score).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the founder/partner nested birth-data objects and the fields/precision compact-mode parameters documented in detail in the schema itself. The description only repeats that founder and partner are required, adding no syntax or formatting meaning beyond what the schema supplies; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'Founder × partner compatibility score' names a specific computed artifact and its two inputs, which is enough to separate it from generic sibling compatibility tools (astroway_relational_match_score, astroway_horoscope_compatibility, astroway_hd_human_design_compatibility). It is clear but does not explicitly state what makes it a *business/team* reading rather than a romantic one, so it stops short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the required inputs and the credit cost but gives no when-to-use guidance, no prerequisites, and no pointer to the many alternative compatibility endpoints in the sibling list. An agent must infer the intended scenario from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_calendar_algol_minimumAlgol MinimumBRead-onlyIdempotentInspect
Find the nearest minimum brightness moment of Algol (Beta Persei), the eclipsing variable star, within a date range.
[Group: Calendar & Cycles] [Endpoint: POST /v1/algol-minimum] [Required: startDate, endDate] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| endDate | Yes | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| startDate | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| minima | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful operational context the annotations lack — the endpoint (POST /v1/algol-minimum) and the cost (10 credits, Tier 1) — but says nothing about the response or any computation caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and free of padding, and the bracketed metadata block (group, endpoint, required params, cost) is compact and scannable. Slightly over-formatted for the amount of substantive content, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 endpoint/cost block is a plus. Still missing are sibling disambiguation against algol_minimum_nearest and any explanation of the longitude parameter, both of which an agent needs to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%: startDate and endDate carry no descriptions beyond a date regex, and the longitude parameter is completely undocumented in both schema and description — its role in an Algol-minimum calculation is unexplained. The description only restates that startDate and endDate are required and adds no format or semantic detail, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource — finding the nearest minimum-brightness moment of Algol within a date range — and even identifies the star (Beta Persei, an eclipsing variable). However, it does not differentiate itself from the close sibling astroway_calendar_algol_minimum_nearest, which an agent could easily confuse with this tool given the near-identical name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 prerequisite guidance is provided. The obvious alternative, astroway_calendar_algol_minimum_nearest, is never mentioned, leaving the agent to guess which of the two Algol tools matches its intent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_calendar_algol_minimum_nearestAlgol Nearest MinimumARead-onlyIdempotentInspect
Find the single nearest Algol brightness minimum before or after a given date.
[Group: Calendar & Cycles] [Endpoint: POST /v1/algol-minimum/nearest] [Required: date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| jd | No | |
| date | No | |
| time | No | |
| hoursUntil | No |
TDQS
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 useful behavioral context: it is a POST endpoint, requires a date, and costs 10 credits (Tier 1). 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence followed by a compact metadata block. Every element earns its place and there is no wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 safety. The description supplies endpoint, cost, and required parameter, but does not clarify sibling alternatives or provide additional parameter semantics for the undocumented inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, and the description only notes that date is required, which is already in the schema. It does not explain the longitude parameter, nor does it add meaning beyond the schema for fields, precision, or the date format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: find the single nearest Algol brightness minimum relative to a date. The purpose is clear, but it does not differentiate itself from the sibling astroway_calendar_algol_minimum, which likely lists minima rather than finding the nearest one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when you need the nearest Algol minimum around a given date. It provides no explicit when-not guidance or alternatives, and does not mention the related sibling tool for listing minima.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_calendar_aspectsAspect MatrixARead-onlyIdempotentInspect
Standalone aspect calculation: full inter-planetary aspect list with type / exactAngle / orb / isApplying. Uses per-pair astro.com orb matrix. Same calcAspects() as /chart but without planet positions / houses / midpoints overhead.
[Group: Calendar & Cycles] [Endpoint: POST /v1/aspects] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| count | No | |
| aspects | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description still adds real context: the return shape, the per-pair astro.com orb matrix methodology, the fact that it shares calcAspects() with the chart endpoint, and an explicit cost of 10 credits (Tier 1), which is not derivable from the schema or annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences: the first gives the output contract and methodology, the second the differentiating trade-off. The bracketed group/endpoint/required/cost block is scannable metadata with no filler, and the most important content (what it returns, why it differs) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 prose, and the annotations cover the safety profile; the description also supplies endpoint, required params and cost. However, for a 15-parameter tool with only 33% schema coverage, the description does not close the gap on the ~10 undocumented inputs, leaving an agent reliant on inference for options like houseSystem and zodiacType.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a compensation burden it does not meet. It merely restates the four required params (date, time, latitude, longitude) already marked required in the schema and adds nothing about undocumented fields such as zodiacType, houseSystem, cosmogram, name, or city, nor does it explain the compact-mode interaction of fields/precision.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('standalone aspect calculation: full inter-planetary aspect list') and names the exact returned fields (type / exactAngle / orb / isApplying). It also carves itself out from the general chart endpoint ('same calcAspects() as /chart but without planet positions / houses / midpoints overhead'), though it does not distinguish itself from the many other aspect siblings such as parallel_aspects or moon_aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'standalone ... without planet positions / houses / midpoints overhead' implies a when-to-use case (call this when you only need aspects, not a full chart), but there is no explicit statement of when to prefer this over siblings like astroway_calendar_moon_aspects or astroway_aspects_parallel_aspects. Usage is inferable 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_calendar_cyclic_indexCyclic IndexARead-onlyIdempotentInspect
Calculate the André Barbault Cyclic Index, sum of all outer planet separations, for a date range to indicate global crisis periods.
[Group: Calendar & Cycles] [Endpoint: POST /v1/cyclic-index] [Required: startYear, endYear] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| pairs | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| endYear | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| startYear | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| count | No | |
| endYear | No | |
| startYear | No |
TDQS
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). The description adds materially useful operational context beyond that: endpoint, cost of 100 credits at Tier 4, and required fields. It still says nothing about output granularity (e.g. per-year vs per-day index values), which keeps it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight definitional sentence followed by bracketed metadata lines (group, endpoint, required, cost). Front-loaded and largely free of filler, though the metadata block partially duplicates the schema's required list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry the safety profile. However, for a 5-parameter tool with a 40% schema coverage, the unexplained 'pairs' argument and the undefined semantics of the year range leave real gaps for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%. startYear and endYear are bare number/null with no schema description, and the description only restates them as required without explaining units, inclusivity, or valid range. The 'pairs' parameter is completely undocumented in both schema and description, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate), a named resource (André Barbault Cyclic Index), defines it (sum of all outer planet separations), and gives its interpretive purpose (global crisis periods). This is distinguishable from the many sibling cycle/phase tools without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'to indicate global crisis periods' implies why an agent would call it, but there is no explicit when-to-use, no condition selecting it over astroway_calendar_planetary_cycles or astroway_calendar_planetary_phases, and no exclusions. Usage is inferable but not guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_calendar_eclipsesEclipsesBRead-onlyIdempotentInspect
Find solar and lunar eclipses within a given year or multi-year range. Returns type, date, and geographic visibility data.
[Group: Calendar & Cycles] [Endpoint: POST /v1/eclipses] [Required: year] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| yearsRange | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| eclipses | No |
TDQS
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 fully covered. The description adds useful operational context — the POST endpoint, that 'year' is required, and a cost of 100 credits (Tier 4) — but discloses no additional behavioral traits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences state purpose and return contents, followed by a compact bracketed metadata block for group, endpoint, required param, and cost. Little waste, though the return-content sentence is partly redundant given an output schema exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple lookup tool, the description covers endpoint, required parameter, cost tier, and output fields, with annotations carrying the safety profile and an output schema handling return structure. The main gap is the unexplained interaction between the 'year' and 'yearsRange' parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: the schema documents 'fields' and 'precision', but 'year' and 'yearsRange' are bare. The description's phrase 'year or multi-year range' hints at the year/yearsRange distinction but does not explain when one supersedes the other, so it only partially compensates for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find solar and lunar eclipses') plus scope ('within a given year or multi-year range'), and the response contents ('type, date, and geographic visibility data'). It is clear what the tool does, though it does not differentiate itself from the nearby sibling astroway_geo_eclipse_analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that eclipses can be found in 'a given year or multi-year range' but never states when to use this tool versus alternatives such as astroway_geo_eclipse_analysis or astroway_render_eclipse_path, and gives no exclusions or prerequisites. Usage must be entirely inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_calendar_housesHouse CuspsBRead-onlyIdempotentInspect
Standalone house calculation: 12 cusps + ascendant + MC + ARMC + vertex + co-asc + polar-asc. Supports Placidus, Koch, Regiomontanus, Campanus, Topocentric, Whole Sign, Equal, Porphyry, Morinus etc. Auto-fallback warning on |lat|>66.5° quadrant systems.
[Group: Calendar & Cycles] [Endpoint: POST /v1/houses] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| houses | No |
TDQS
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 real behavioral context beyond that: the auto-fallback behavior for quadrant systems above 66.5° latitude, plus cost (10 credits) and endpoint. It does not discuss precision/rounding behavior or any rate limits, but the fallback disclosure is meaningful value-add.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and outputs, followed by supported systems and the fallback caveat. The bracketed metadata block (group, endpoint, required, cost) is compact and scannable. Nothing is wasted, though the supported-systems list drifts slightly toward an unstructured enumeration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations cover the safety profile. However, for a 15-parameter tool with only 33% schema coverage, the agent is left guessing at several optional inputs (cosmogram, zodiacType, precision, fields). Adequate at the surface level but incomplete on configuration.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description should compensate, and it largely does not. It names house systems in prose (Placidus, Koch, Campanus...) which partly decodes the opaque houseSystem letter enum, but several parameters (city, name, cosmogram, zodiacType, ayanamsaId) remain undocumented in both places. Required inputs are listed, matching the schema, adding no new semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Standalone house calculation') and enumerates exactly what is produced (12 cusps + ascendant + MC + ARMC + vertex + co-asc + polar-asc), which is far more specific than the title 'House Cusps'. 'Standalone' implicitly separates it from full-chart siblings like astroway_western_chart, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is only implied by the word 'Standalone' — there is no explicit 'use this when you need only houses, use western_chart when you need planets too' routing. The one genuine usage caveat given is the auto-fallback warning at |lat|>66.5°, which tells the agent when results may degrade, but when-to-use vs alternatives 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_calendar_ingressesPlanet IngressesARead-onlyIdempotentInspect
Find all sign ingresses for a planet within a date range (including retrograde re-entries).
[Group: Calendar & Cycles] [Endpoint: POST /v1/ingresses] [Required: planetId, startDate, endDate] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| endDate | Yes | ||
| planetId | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| startDate | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ingresses | No |
TDQS
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 bar is lower. The description nonetheless adds real behavioral context beyond them: retrograde re-entries are included in results and the call costs 100 credits (Tier 4), which is a material resource constraint an agent should weigh.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and wastes nothing, and the bracketed metadata block (group, endpoint, required, cost) is scannable. Minor redundancy in re-listing required parameters that the schema already declares.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description supplies purpose, required inputs, endpoint and cost. The remaining gaps are sibling differentiation and planetId/date semantics, which are minor for a read-only lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%: planetId, startDate and endDate carry no descriptions, while fields and precision are documented in the schema. The description's '[Required: planetId, startDate, endDate]' merely restates the schema's required array and adds no format or semantic detail (e.g. planetId encoding), 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find all sign ingresses for a planet') with a scoping qualifier ('within a date range') and clarifies that retrograde re-entries are included. This is clear and distinguishable from the calendar family at a glance, though it never names a sibling (e.g. retrograde_periods) to sharpen the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the planet + date-range framing, so an agent can infer when the tool applies. However, there is no explicit when-to-use/when-not guidance and no routing to alternatives such as astroway_calendar_retrograde_periods or astroway_calendar_planetary_cycles, which are the closest overlapping siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_calendar_lunar_calendarLunar CalendarARead-onlyIdempotentInspect
Calculate a lunar calendar for a given month: Moon sign per day, lunar phases, void-of-course windows, and perigee/apogee.
[Group: Calendar & Cycles] [Endpoint: POST /v1/lunar-calendar] [Required: year, month] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | ||
| month | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| timezone | No | IANA zone, e.g. Europe/Kyiv. Wins over timezoneOffset and follows a DST change inside the month, day by day. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Hours east of UTC. The calendar days become local days: date, isVoC (at local noon), phase and ingress per local day, and the month range itself. Omitted with no timezone: days run in UT. |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | No | |
| month | No | |
| phases | No | |
| dailyInfo | No | |
| ingresses | No | |
| moonAspects | No | |
| voidPeriods | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is fully covered by structured data. The description's only genuinely additive behavioral fact is the cost (100 credits, Tier 4), which is useful for budget-aware planning but is metadata rather than behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose sentence, then a compact bracketed metadata block for group, endpoint, required params and cost. Efficient and scannable, though the endpoint and group lines add little for an agent selecting a tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 still names the four data categories the agent gets back. For a 6-parameter read tool with full annotation coverage, this is nearly complete; only the relationship to overlapping sibling tools is left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, with fields, precision, timezone and timezoneOffset well documented in the schema itself; only year/month lack descriptions, and the description merely repeats that they are required. No additional parameter meaning (formats, ranges, default timezone behavior) is contributed beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Calculate a lunar calendar for a given month') and enumerates the four output categories, which is more than a restatement of the title. It does not, however, distinguish itself from narrow siblings such as astroway_calendar_moon_phase or astroway_calendar_moon_voc, which cover single slices of this same data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the monthly scope and the enumeration of events, but there is no explicit when-to-use guidance and no routing to the cheaper single-purpose siblings (moon_phase, moon_voc, ingresses) that an agent might prefer. The 'Required: year, month' line states inputs, not usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_calendar_moon_aspectsMoon AspectsARead-onlyIdempotentInspect
Calculate all aspects the Moon makes within a date range (applying and separating), useful for electional and horary work.
[Group: Calendar & Cycles] [Endpoint: POST /v1/moon-aspects] [Required: year, month] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | ||
| month | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| events | No |
TDQS
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 fully covered and the description is not required to restate it. What it adds beyond structured data is modest: the applying/separating nature of the results and the cost tier (100 credits, Tier 4), which is genuinely decision-relevant for an agent budgeting calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence states purpose and use case, followed by compact bracketed metadata lines (group, endpoint, required params, cost) that are easy to scan. Nothing is padded, though the metadata block consumes space without adding semantic content to the core sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover safety and idempotency; the description supplies purpose, required inputs, use domain and cost. The remaining gap is inter-sibling routing against astroway_calendar_aspects, which an agent would have to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: fields and precision are documented in the schema, while year and month are only bounded integers. The description's "within a date range" plus the [Required: year, month] line confirms the two period parameters, but adds no meaning (e.g. whether month alone defaults to full-month granularity) beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — aspects the Moon makes within a date range — and adds the applying/separating detail, so the agent knows exactly what is computed. It does not, however, differentiate itself from the nearby astroway_calendar_aspects sibling (all bodies) or from the other Moon tools (moon_phase, moon_voc).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"useful for electional and horary work" gives a use-case context, which is more than nothing, but it never says when to prefer this over astroway_calendar_aspects or the other Moon-calendar tools, and gives no exclusions or prerequisites. Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_calendar_moon_phaseMoon PhaseBRead-onlyIdempotentInspect
Current moon phase at a given moment: illumination %, age in days, elongation, waxing/waning, sun + moon zodiac signs. Geocentric Sun-Moon elongation per Meeus Ch.48.
[Group: Calendar & Cycles] [Endpoint: POST /v1/moon-phase] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| phase | No | |
| waxing | No | |
| ageDays | No | |
| sunSign | No | |
| moonSign | No | |
| phaseName | No | |
| majorPhase | No | |
| sunLongitude | No | |
| elongationDeg | No | |
| moonLongitude | No | |
| illuminationPercent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, so the description is not required to restate safety. It adds genuinely new behavioral context: the credit cost and tier, the POST endpoint, the geocentric reference frame, and the specific ephemeris method (Meeus Ch.48). The word 'Current' is slightly imprecise next to the required date/time, but 'at a given moment' immediately corrects it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short lines, front-loaded with the purpose and outputs before the grouped metadata (group, endpoint, required, cost). Every line carries information; there is no filler or restated verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needed, and the annotations carry the safety profile. What is missing is guidance for a 15-parameter request: no note on which optional parameters meaningfully affect a moon-phase result, no mention of timezone/timezoneOffset interaction for a location-based calculation (though the schema itself covers that well), and no differentiation from the render sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 33% of the 15 parameters carry schema descriptions, so the description must compensate and largely does not. Its single parameter line merely restates the four required fields already declared in the schema's 'required' array, and adds no meaning for undocumented parameters such as city, name, cosmogram, zodiacType, houseSystem, or ayanamsaId — several of which look only tangentially relevant to a moon-phase calculation and would benefit from explanation or a usage note.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific computed resource (moon phase) and enumerates its outputs: illumination %, age in days, elongation, waxing/waning, and sun/moon zodiac signs, plus the computational basis (Meeus Ch.48, geocentric Sun-Moon elongation). An agent can tell exactly what this returns. It does not, however, name or differentiate itself from the close sibling astroway_render_moon_phase or astroway_calendar_lunar_calendar, which likely overlap in subject matter.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the output list and the '[Required: date, time, latitude, longitude]' line, but there is no explicit when-to-use statement, no exclusion, and no routing to alternatives such as the render or lunar-calendar siblings. The '[Cost: 10 credits (Tier 1)]' line gives useful context for choosing among tools but is not a usage rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_calendar_moon_vocMoon Void-of-CourseBRead-onlyIdempotentInspect
Find Moon void-of-course periods within a date range. The Moon is VOC from its last aspect until it enters the next sign.
[Group: Calendar & Cycles] [Endpoint: POST /v1/moon-voc] [Required: date, time] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| rangeDays | No | ||
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| periods | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, non-destructive, idempotent) and the description correctly doesn't contradict them. It adds the useful domain rule for what a VOC period is, but with 7 parameters (rangeDays, timezone, precision, fields, timezoneOffset) the description says nothing about range limits, timezone handling, or compact mode — leaving that entirely to schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences with the definition front-loaded and no wasted words. Metadata block (group/endpoint/required/cost) is boilerplate but useful for routing. Could be marginally improved only by naming a sibling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter, 10-credit query returning a range of periods, the description omits how far it can span, that rangeDays controls the window, and how timezone affects output. An output schema exists, so return format needn't be described, but the usage constraints (range limits, credit cost already noted) are only partially covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 57%, so the schema documents timezone, timezoneOffset, precision, and fields but leaves rangeDays (and both required date/time) undescribed. The description adds no parameter meaning at all, and doesn't compensate for the rangeDays gap. Baseline 3 is appropriate for this coverage level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Find) and resource (Moon void-of-course periods) plus the defining rule 'from last aspect until entry into the next sign.' Clear and distinguishable from siblings like astroway_calendar_moon_aspects, but doesn't explicitly name which sibling differs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no alternatives named, no exclusions. The agent must infer the tool's place among the many calendar_* siblings entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_calendar_planetary_cyclesPlanetary CyclesBRead-onlyIdempotentInspect
Find all conjunctions between two planets within a date range, defining the start of a new synodic cycle.
[Group: Calendar & Cycles] [Endpoint: POST /v1/planetary-cycles] [Required: planet1Id, planet2Id, startDate, endDate] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| endDate | Yes | ||
| planet1Id | Yes | ||
| planet2Id | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| startDate | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| conjunctions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is fully covered structurally. The description's genuine addition is the cost disclosure ('100 credits, Tier 4') and the endpoint, which help an agent reason about budget. It adds nothing about output granularity or volume of matches, so a 3 is warranted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and the bracketed metadata block is compact and scannable. Every line earns its place, with no redundancy or filler to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape need not be described, and annotations carry the safety profile. The description supplies endpoint, required params, and cost, which is sufficient for an agent to invoke it correctly. Only the distinction from sibling cycle tools is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (fields and precision are documented there, the four required ids/dates are not). The description compensates partly by naming the four required parameters and framing planet1Id/planet2Id as a conjunction pair, but adds no value for the undocumented precision/fields semantics, which the schema handles itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find all conjunctions between two planets within a date range') and adds the domain outcome ('defining the start of a new synodic cycle'). This is clear and self-contained, but it does not differentiate itself from close siblings like astroway_calendar_cyclic_index or astroway_calendar_planetary_phases, so the agent can't tell them apart 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.
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 metadata lists required parameters and a cost tier, but never says when this tool is preferred over the related cyclic_index or aspects calendar tools. Usage must be inferred entirely from the purpose sentence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_calendar_planetary_hoursPlanetary HoursARead-onlyIdempotentInspect
Chaldean planetary hours for a date and place: 12 from sunrise to sunset and 12 from sunset to sunrise, so an hour is rarely 60 minutes. startHour and endHour are decimal local hours. Send atLocalHour (decimal local time, e.g. 15.2 for 15:12) to have the hour containing it marked isCurrent; without it no hour carries the field, because the answer is cacheable and a flag from the server clock would be stale by the time it renders.
[Group: Calendar & Cycles] [Endpoint: POST /v1/planetary-hours] [Required: date, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| atLocalHour | No | Local time of day in decimal hours, e.g. 15.2 for 15:12. When sent, the hour containing it carries isCurrent: true and every other hour carries false. When omitted, no hour carries the field at all: it is not false, it is unasked. | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| date | No | |
| hours | No | |
| latitude | No | |
| sunTimes | No | |
| timezone | No | |
| dayOfWeek | No | |
| longitude | No | |
| dayRulerPlanetId | No | |
| dayRulerPlanetName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, closed-world, and non-destructive traits, so the bar is lower. The description still adds real context: the caching rationale for omitting isCurrent, and the precise 'not false, it is unasked' semantics, which the agent could not infer from annotations alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and the hour-count rule are front-loaded, and the atLocalHour rationale follows economically. The metadata block (group, endpoint, required, cost) is boilerplate but compact; there is no rambling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 document return values, and it correctly names startHour/endHour/isCurrent. Combined with annotations and the schema's timezone/timezoneOffset docs, an agent has enough to call this correctly, though no cross-tool routing is offered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 63%, with strong per-parameter docs for timezone, timezoneOffset, precision, and atLocalHour. The description largely restates the atLocalHour schema text and only adds the output-side names startHour/endHour, so it meets but does not exceed the baseline for partially documented params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and computation: Chaldean planetary hours for a date and place, with the defining rule that hours are 12 sunrise-to-sunset and 12 sunset-to-sunrise and are rarely 60 minutes. That framing clearly separates it from siblings like planetary_phases and planetary_cycles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear conditional guidance for atLocalHour (send it to get isCurrent, omit it for cacheable results), but never says when to choose this tool over siblings such as sun_times or lunar_calendar. Usage is implied by the topic rather than explicitly routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_calendar_planetary_phasesPlanetary PhasesBRead-onlyIdempotentInspect
Calculate the synodic phase of each planet relative to the Sun (new, crescent, first quarter, gibbous, full, disseminating, last quarter, balsamic).
[Group: Calendar & Cycles] [Endpoint: POST /v1/planetary-phases] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| phases | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful context beyond them: the endpoint, the four required inputs, and a 20-credit Tier 2 cost, which is a real operational constraint an agent should weigh before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and dense with useful detail, and the bracketed metadata block is scannable. The trailing metadata lines are somewhat boilerplate but cheap and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool the description is thin: it omits the sidereal/tropical and ayanamsa choices that materially change results, and does not clarify the relationship to sibling phase/cycle tools. An output schema exists, so return values need not be explained, which keeps this at an adequate rather than poor level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only 33% schema description coverage, the description carries real burden, yet it merely restates the four required fields already listed in the schema's required array. Eleven optional parameters (zodiacType, houseSystem, cosmogram, city, name, ayanamsaId, etc.) go unmentioned, and nothing explains why latitude/longitude matter for a phase calculation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (calculate) and resource (synodic phase of each planet relative to the Sun), and enumerates the eight phase names, so an agent knows exactly what is produced. It does not explicitly distinguish itself from close siblings like astroway_calendar_moon_phase or astroway_calendar_planetary_cycles, leaving the planetary-vs-lunar distinction to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to choose this tool over alternatives, nor does it exclude cases (e.g. single-planet phase vs moon phase). The bracketed metadata gives required inputs and a cost tier, which is operational context 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_calendar_retrograde_periodsRetrograde PeriodsARead-onlyIdempotentInspect
Retrograde periods of the planets in planetIds (default Mercury) within a date range: the two stations and their longitudes, plus shadowStart (the planet first reaches the longitude of its direct station) and shadowEnd (it regains the longitude of its retrograde station).
[Group: Calendar & Cycles] [Endpoint: POST /v1/retrograde-periods] [Required: startDate, endDate] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| endDate | Yes | ||
| planetIds | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| startDate | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| periods | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral context the annotations do not carry: endpoint, required params, and a cost of 50 credits (Tier 3), which materially affects tool selection. It omits any pagination/max-range behavior, hence not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the resource and semantics, followed by a compact structured metadata block. No filler prose, though the parenthetical shadow definitions make the opening sentence long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 (though shadow boundaries are helpfully clarified), and annotations cover the safety profile. Cost, endpoint, and required params round out selection-critical context; only pagination/max date-range behavior is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40%; `planetIds` and `startDate`/`endDate` lack schema descriptions. The description compensates partially by documenting the `planetIds` default (Mercury) and tying inputs to a date range, but says nothing about `fields`, `precision`, or input format beyond what the schema patterns show.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (retrograde periods) with scope (planets in `planetIds`, default Mercury, within a date range) and even lists the returned stations and shadow boundaries. An agent can distinguish this from siblings like moon_phase or ingresses. It stops short of naming a sibling alternative, so it is not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what it returns but gives no when-to-use guidance, no exclusions, and no pointer to a related sibling (e.g. solar/lunar phase tools). The only usage signal is the implied 'provide a date range', which is already dictated by the schema's required fields.
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 afflictionsBRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| time | No | ||
| year | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| includeMonthly | No | ||
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| animal | No | |
| palaces | No | |
| solarYear | No | |
| centreStar | No | |
| yearBranch | No | |
| afflictions | No |
TDQS
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.
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.
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.
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.
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.
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 AreasBRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| gender | Yes | ||
| language | No | ||
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| solarYear | No | ||
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| bagua | No | |
| group | No | |
| notes | No | |
| kuaNumber | No |
TDQS
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.
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.
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.
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.
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.
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)ARead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| facing | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| period | No | ||
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| occupiedDate | No | ||
| occupiedTime | No | ||
| facingMountain | No | ||
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| notes | No | |
| facing | No | |
| flight | No | |
| period | No | |
| palaces | No | |
| sitting | No | |
| patterns | No | |
| warnings | No | |
| chartType | No | |
| annualYear | No |
TDQS
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.
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.
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.
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.
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.
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 NumberBRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| gender | Yes | ||
| language | No | ||
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| solarYear | No | ||
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| group | No | |
| gender | No | |
| kuaNumber | No | |
| solarYear | No | |
| description | No |
TDQS
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.
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.
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.
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.
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.
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 DirectionsBRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| gender | Yes | ||
| language | No | ||
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| solarYear | No | ||
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| group | No | |
| lucky | No | |
| unlucky | No | |
| kuaNumber | No |
TDQS
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.
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.
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.
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.
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.
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 DateBRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lunar | No | |
| gregorianDate | No | |
| chineseNewYear | No |
TDQS
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.
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.
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.
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.
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.
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 (節氣)ARead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | No | |
| notes | No | |
| terms | No |
TDQS
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.
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.
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.
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.
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.
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 mansionBRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| date | No | |
| clash | No | |
| notes | No | |
| mansion | No | |
| officer | No | |
| dayPillar | No | |
| solarYear | No | |
| monthBranch | No |
TDQS
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.
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.
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.
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.
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.
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 selectionBRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ||
| from | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| activity | Yes | ||
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| avoidClashWith | No | ||
| includeNeutral | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| days | No | |
| dropped | No | |
| matched | No | |
| scanned | No | |
| activity | No |
TDQS
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.
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.
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.
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.
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.
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 timeBRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| timezone | No | 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. | |
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | Yes | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| note | No | |
| input | No | |
| source | No | |
| dayShift | No | |
| clockTime | No | |
| methodology | No | |
| trueSolarTime | No | |
| hourBranchNote | No | |
| equationOfTimeMinutes | No | |
| totalCorrectionMinutes | No | |
| longitudeCorrectionMinutes | No |
TDQS
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.
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.
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.
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.
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.
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 AnimalARead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| solarYear | No | ||
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| stem | No | |
| glyph | No | |
| animal | No | |
| branch | No | |
| pillar | No | |
| element | No | |
| yearEnd | No | |
| solarYear | No | |
| yearStart | No |
TDQS
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.
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.
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.
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.
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.
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 CompatibilityBRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| person1 | Yes | ||
| person2 | Yes | ||
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| person1 | No | |
| person2 | No | |
| compatibility | No |
TDQS
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.
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.
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.
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.
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.
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 ElementCRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| solarYear | No | ||
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| yin | No | |
| solarYear | No | |
| description | No | |
| fixedElement | No | |
| cyclingElement | No |
TDQS
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.
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.
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.
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.
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.
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)BRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| solarYear | No | ||
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| glyph | No | |
| description | No | |
| innerAnimal | No |
TDQS
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.
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.
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.
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.
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.
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)BRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| solarYear | No | ||
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| glyph | No | |
| description | No | |
| secretAnimal | No |
TDQS
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.
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.
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.
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.
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.
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_content_localization_translate_astroTranslate (astro-aware)ARead-onlyIdempotentInspect
Translate one text into any of 21 languages with astrology-domain glossary pinning. Source defaults to English; pass source_lang to override. Credits: 15 + ceil(chars/40). Max 3000 chars.
[Group: Content Localization] [Endpoint: POST /v1/translate/astro] [Required: text, target_lang] [Cost: 16 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| domain | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| source_lang | No | ||
| target_lang | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| chars | No | |
| domain | No | |
| credits | No | |
| provider | No | |
| translated | No | |
| source_lang | No | |
| target_lang | No |
TDQS
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 behavior beyond that: the credit formula (15 + ceil(chars/40)), the 3000-char cap, and the glossary-pinning behavior. Minor caveat: it says 21 languages while the schema enum lists 20, and the cost line contradicts its own formula.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded with the core purpose and constraints, and the bracketed metadata lines convey required params and cost compactly. No wasted prose, though the metadata block and the duplicate/internally-inconsistent cost figures add slight noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 supplies cost, length limits, and the source-language default. The main gap is the completely unexplained 'domain' parameter, which is central to the astro-glossary feature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description must compensate and only partly does: it clarifies source_lang defaulting to English and the text length cap. The 'domain' enum (vedic/western/tarot/etc.) is undocumented in both schema and description, leaving the glossary-selection parameter opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('Translate one text') with the distinguishing traits of the astro variant: astrology-domain glossary pinning and single-text scope. That implicitly separates it from the sibling translate_batch and translate_glossary_lang tools, though neither sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives the source-language default and how to override it ('pass source_lang'), which is a useful usage hint. However, it never says when to choose this over translate_batch or translate_glossary_lang, so the agent is left to infer routing from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_content_localization_translate_batchTranslate batchBRead-onlyIdempotentInspect
Translate up to 25 strings (≤2000 chars each, ≤20000 total) sharing one target language + domain. Credits: 15 + ceil(total_chars/40).
[Group: Content Localization] [Endpoint: POST /v1/translate/batch] [Required: items, target_lang] [Cost: 16 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| items | Yes | ||
| domain | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| source_lang | No | ||
| target_lang | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| chars | No | |
| count | No | |
| items | No | |
| domain | No | |
| credits | No | |
| source_lang | No | |
| target_lang | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety bar is covered. The description adds genuinely useful behavioral facts beyond that: per-item and total size ceilings (2000/20000 chars), the credit formula, and the rule that all items must share one target language and domain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and dense with the limits and pricing an agent needs. The trailing metadata block repeats information already in the schema ('Required: items, target_lang') and gives a flat '16 credits' figure that loosely duplicates the formula, but it stays short and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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/size limits are present. Missing for a batch operation: what happens on per-item failure, whether domain defaults, and how this tool relates to its translation siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (fields and precision), so the description carries partial burden. It clarifies items limits and the shared target_lang/domain constraint, which is meaningful, but says nothing about source_lang (auto-detect?) and leaves precision/fields entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Translate up to 25 strings') plus hard scope limits, so the batch nature is unambiguous. It does not, however, distinguish itself from the sibling translate tools (translate_astro, translate_glossary_lang, translate_languages), which an agent must infer 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The constraints ('sharing one target language + domain') hint at the intended input shape but the description never says when to pick this tool over the sibling translation tools or when to fall back to a single-string call. No exclusions, prerequisites, or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_content_localization_translate_glossary_langGlossary downloadCRead-onlyIdempotentInspect
Download the astrology glossary for a target language. Query: ?source= (default en), ?domain= (default generic). Free (0 credits).
[Group: Content Localization] [Endpoint: GET /v1/translate/glossary/{lang}] [Required: lang] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| lang | Yes | Target language code, one of the active locales. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| domain | No | |
| entries | No | |
| source_lang | No | |
| target_lang | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds cost information but then contradicts itself: "Free (0 credits)" versus "see your plan — endpoint not in the public credit manifest," which leaves the agent unable to state the cost reliably.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and tight, but the trailing metadata block is padded with redundant bracketed lines ([Required: lang] restates the schema, the endpoint line restates the name) and the self-contradictory cost note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, but the definition still leaves the agent with wrong parameter names and an unresolved cost question for what is otherwise a simple read endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description documents ?source and ?domain query parameters that do not exist in the input schema (which has only lang, fields, precision). This actively misleads the agent about the callable parameters, offsetting the otherwise complete schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Download the astrology glossary") scoped to a target language, so the agent knows what it fetches. It does not, however, distinguish itself from the sibling localization tools (translate_astro, translate_batch, translate_languages), leaving the agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no comparison to the three sibling localization endpoints. The only routing-adjacent information is default values (source=en, domain=generic), which does not tell 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_content_localization_translate_languagesSupported languagesBRead-onlyIdempotentInspect
List the 21 supported language codes + names. Free (0 credits).
[Group: Content Localization] [Endpoint: GET /v1/translate/languages] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| languages | No |
TDQS
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 cost context, but that context is self-contradictory: the header says "Free (0 credits)" while the trailing bracket says "see your plan — endpoint not in the public credit manifest." An agent cannot tell whether this call is free or metered, which undercuts the one behavioral fact the description tries to add.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is tight and front-loaded and is the only sentence that matters. The bracket block restates group and endpoint metadata the agent already has from the tool name and transport, and its cost line duplicates and contradicts the "Free (0 credits)" claim above it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-required-parameter reference endpoint with full annotations and an output schema, the description covers what is needed; the return shape is described by the schema, not the text. The only completeness blemish is the conflicting cost statements, which leave the agent uncertain about billing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (fields, precision compact-mode controls) are fully documented inline, so the baseline is 3. The description contributes nothing about these parameters, but it does not need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with an exact cardinality: "List the 21 supported language codes + names." An agent immediately knows this is a static reference lookup. It does not, however, explicitly distinguish itself from the nearby siblings translate_glossary_lang, translate_astro, and translate_batch, which are the tools an agent might realistically 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The "Free (0 credits)" note implies this is a cheap, safe discovery call to make before a translation tool. But there is no explicit when-to-use statement, no pointer to translate_astro/translate_batch as the follow-up, and no exclusions. Usage is implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_cosmogramCosmogram (90° Render Data)CRead-onlyIdempotentInspect
Ebertin cosmogram render data.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/cosmogram] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| points | No | |
| source | No | |
| aspects | No | |
| modulus | No | |
| methodology | No | |
| ringDegrees | No | |
| topPictures | No |
TDQS
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 does add genuinely useful behavioral context not present in annotations — the cost (10 credits, Tier 1) and the POST endpoint — but says nothing about authorizations, quotas beyond cost, or determinism across calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loaded, but four of five lines are bracketed boilerplate tags. [Required] duplicates the schema's required array, and [Endpoint] is a value the agent cannot act on. The one line carrying real content — purpose — is the least informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter tool with 31% schema coverage, the definition is thin. An output schema exists so return values need not be explained, but the agent still lacks any picture of what the cosmogram contains, how it differs from dial_90, or what the optional parameters change.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31% across 16 parameters, so the description must compensate and does not. It merely re-lists the four required parameters (date, time, latitude, longitude), which the schema's `required` array already states, and says nothing about the undocumented optional params (withTnp, cosmogram, zodiacType, houseSystem, ayanamsaId, name, city).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The body 'Ebertin cosmogram render data' essentially restates the name (astroway_cosmobiology_cosmogram) and title (Cosmogram (90° Render Data)) without adding a verb, output, or scope. It names the domain concept (Ebertin/Hamburg School) but gives no way to tell it apart from siblings like astroway_cosmobiology_dial_90 or astroway_cosmobiology_midpoint_pictures, which are also 90°-dial cosmobiology render tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative routing. The sibling list contains at least a dozen overlapping cosmobiology tools (dial_90, witte_formulas, midpoint_pictures, sensitive_points) and nothing here tells the agent which to pick. The [Required] line is an input constraint, 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_cosmobiology_dial_9090° DialCRead-onlyIdempotentInspect
All chart points in 90° cardinal modulus.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/dial-90] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| points | No | |
| source | No | |
| modulus | No | |
| methodology | No |
TDQS
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 adds the pricing tier ('10 credits, Tier 1'), which is genuinely useful context not present in structured fields, plus the HTTP endpoint. It adds no information about computation quirks or interpretation scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence plus four bracketed metadata lines; nothing is padded or redundant. The tag format is dense and easy to scan, though the cost/endpoint lines occupy half the space relative to very thin functional content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, but for a 16-parameter, interpretation-heavy astrological computation with weak schema coverage, the description omits flag semantics, zodiac/house-system selection guidance, and sibling differentiation. It is too thin for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31% across 16 parameters, so the description is expected to compensate — it does not. '[Required: date, time, latitude, longitude]' merely restates the schema's required array, and no guidance is given for houseSystem, zodiacType, withTnp, cosmogram, or the compact-mode fields/precision controls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and computation: 'All chart points in 90° cardinal modulus.' An agent can tell this produces a 90° dial listing of chart points, distinct from midpoint pictures or the cosmogram. It stops short of naming the sibling it competes with, and the jargon-heavy phrase 'cardinal modulus' carries most of the meaning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 explains when a 90° dial is preferable to astroway_cosmobiology_cosmogram, midpoint_pictures, or sensitive_points, despite a cluster of closely related cosmobiology siblings. The bracketed metadata block only lists groups, endpoint, and cost.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_eight_harmonic_aspects8H Aspect GridCRead-onlyIdempotentInspect
22.5° / 45° / 67.5° / 90° / 135° aspects.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/eight-harmonic-aspects] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| orb | No | |
| count | No | |
| angles | No | |
| source | No | |
| aspects | No | |
| aspectNames | No | |
| methodology | No |
TDQS
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 covered. The description usefully adds the cost (10 credits, Tier 1) and the endpoint/required-field summary, but says nothing about the size or shape of the grid, whether results are paginated, or what the withTnp/cosmogram toggles do behaviorally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content is short and the angle list is front-loaded, so it is efficient. But the bracketed metadata block is boilerplate rather than substance, and the definition is under-specified rather than truly concise for a 16-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 16-parameter tool with 31% schema coverage and no usage guidance, the description is not complete enough. An agent cannot tell from this text how the 8H grid differs from the 90° dial or cosmogram output, nor what the optional flags change.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31% across 16 parameters, so the description must compensate and does not. It restates the four required fields (date, time, latitude, longitude) that are already in the schema's required array, and leaves behaviorally significant options such as withTnp, cosmogram, houseSystem, zodiacType, fields and ayanamsaId unexplained in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (8H aspect grid) and enumerates the specific angular values (22.5°/45°/67.5°/90°/135°), which tells an agent what is being computed. However, it never supplies a verb such as 'compute' or 'list' and never differentiates itself from close siblings like astroway_cosmobiology_dial_90 or astroway_cosmobiology_cosmogram, leaving the agent to infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-routing guidance at all. The bracketed metadata lists group, endpoint, required fields and cost, but nothing tells the agent under what circumstances this tool should be chosen over the many other cosmobiology endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_lefeldt_extensionsLefeldt ExtensionsCRead-onlyIdempotentInspect
Lefeldt-Brummund 22.5° subdivisions.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/lefeldt-extensions] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| orb | No | |
| source | No | |
| octants | No | |
| branches | No | |
| methodology | No |
TDQS
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. The description adds genuinely useful operational context beyond that: the POST endpoint and the 10-credit Tier 1 cost, which affects whether an agent should spend a call. It says nothing about what is computed or returned, but with annotations carrying the safety profile a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The technique name is front-loaded and the bracketed metadata lines are compact and scannable. Every line carries some information, though the endpoint and required-params lines are largely restatements of already-structured data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter, niche cosmobiology tool surrounded by near-synonym siblings, the description gives no conceptual output overview and no selection criteria. With an output schema present it need not describe return values, but the missing usage disambiguation and parameter explanation leave an agent unable to confidently choose it over dial_90 or witte_formulas.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31% across 16 parameters, so the description bears real explanatory burden. It lists the four required fields (already in the schema's required array) but adds no meaning for ambiguous optional parameters like withTnp, cosmogram, zodiacType, houseSystem, or ayanamsaId, leaving most parameters undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific technique ("Lefeldt-Brummund 22.5° subdivisions") plus its family and endpoint, which is more than a tautology. But it uses unexplained jargon with no verb and no statement of what the output actually is, and it does not differentiate from several close siblings such as witte_formulas, dial_90, or midpoint_pictures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Required: date, time, latitude, longitude" is parameter metadata, not usage guidance, and it merely repeats the schema's required list. There is no when-to-use, no when-not-to-use, and no routing to any of the many sibling cosmobiology tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_midpoint_picturesMidpoint PicturesCRead-onlyIdempotentInspect
A=B/C structures with sentence form.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/midpoint-pictures] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| orb | No | |
| count | No | |
| source | No | |
| notation | No | |
| pictures | No |
TDQS
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), so the description is not required to explain mutation risk. It does add two useful operational facts beyond the annotations: the POST endpoint and the 10-credit Tier 1 cost, which matters for cost-aware agents. It says nothing about rate limits, payload size, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is tightly front-loaded: the domain concept leads, followed by bracketed metadata lines that are easy to scan. Nothing is padded, though the bracketed lines occupy space that could have carried the missing usage and parameter guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 this is a 16-parameter tool with three enums and a sophisticated sidereal/house-system surface, and the description provides no orientation to any of it. For a tool of this complexity, the bare required-parameter list and cost note are not enough for an agent to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31%, well under the threshold where the schema can carry the burden, so the description needs to compensate and does not. It merely restates the four required parameters already marked required in the schema, leaving the twelve optional parameters (houseSystem enum, withTnp, cosmogram, ayanamsa, zodiacType, fields, precision) unexplained anywhere except the schema's own text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"A=B/C structures with sentence form" names a domain-specific artifact and its output shape, which is slightly more than the title alone, but it never states the plain-language operation (compute midpoint pictures) or the subject of the computation. It also fails to distinguish itself from close siblings like astroway_cosmobiology_transit_midpoints or astroway_cosmobiology_cosmogram, whose names overlap heavily in this same group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists required inputs and a cost tier but gives no when-to-use guidance and no alternatives. An agent choosing among nine cosmobiology siblings gets no signal about which produces midpoint pictures versus dials, cosmograms, or transit midpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_personal_point_treePersonal Point TreeCRead-onlyIdempotentInspect
Tree per personal point.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/personal-point-tree] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| orb | No | |
| tree | No | |
| source | No | |
| methodology | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so safety is covered. The description usefully adds the credit cost (10 credits, Tier 1) and confirmed required inputs, but says nothing about output shape or any operational constraints beyond cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and the bracketed metadata is well-structured and front-loaded. However, the single content sentence is pure tautology and the rest is boilerplate, so brevity here reflects under-specification rather than efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter specialized astrology endpoint, the description omits what the tree output represents and how the optional flags modify it. An output schema exists so return values needn't be explained, but the operational and semantic gaps remain too large.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31% across 16 parameters, so the description must compensate and does not. It merely echoes the four required fields already in the schema and ignores ambiguous params like withTnp, cosmogram, and name entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The core sentence 'Tree per personal point' essentially restates the title 'Personal Point Tree' without stating what the tool actually computes or returns. The bracketed metadata gives group and endpoint but never defines what a 'personal point tree' is or how it differs from siblings like sensitive_points or midpoint_pictures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The [Required] line lists the inputs but gives no when-to-use context, no prerequisites, and no distinction from the many sibling cosmobiology tools. An agent is left to guess which of the 40+ siblings is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_sensitive_pointsSensitive PointsCRead-onlyIdempotentInspect
Ebertin's personal points midpoint hits.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/sensitive-points] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| orb | No | |
| source | No | |
| pictures | No | |
| methodology | No | |
| personalPoints | No |
TDQS
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 safety is covered. The description adds genuinely useful non-annotation context: the endpoint path and the cost of 10 credits (Tier 1). It says nothing about computational behavior or the effect of the domain-specific flags (withTnp, cosmogram), leaving that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loads the domain phrase, but the bracketed metadata blocks partly duplicate structured data (required params, group) rather than adding meaning. Every sentence technically 'earns its place' only in the cost and endpoint lines; the core prose is too thin to be efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter astrological calculation, the description omits what sensitive points are, how they differ from sibling midpoint tools, and how the non-obvious flags change results. An output schema exists so return values need no explanation, but that does not cover the usage and parameter gaps, which remain substantial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31% across 16 parameters, so the description must compensate and does not. It lists the four required params (date, time, latitude, longitude), which the schema already enforces, and says nothing about the many undocumented params: withTnp, cosmogram, zodiacType, houseSystem, ayanamsaId, name, city. No syntax, defaults, or interaction guidance is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The prose is a single noun phrase, 'Ebertin's personal points midpoint hits,' which names a domain-specific artifact but no verb or output. It does not distinguish this tool from close siblings such as astroway_cosmobiology_personal_point_tree, midpoint_pictures, or transit_midpoints. An agent outside Hamburg School astrology cannot infer what is computed or returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing appears anywhere. The '[Required: ...]' block merely restates the schema's required list and is not usage guidance. Nothing tells the agent why it would pick this over the other cosmobiology endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_transit_midpointsTransit MidpointsCRead-onlyIdempotentInspect
Transits hitting natal midpoints in 90° dial.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/transit-midpoints] [Required: date, time, latitude, longitude, targetDate] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| converse | No | ||
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| targetDate | Yes | ||
| targetTime | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| targetTzOffset | No | ||
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| orb | No | |
| hits | No | |
| count | No | |
| source | No | |
| targetDate | No | |
| methodology | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description usefully adds the cost (10 credits, Tier 1) and the concrete HTTP endpoint, which are beyond the annotations. It says nothing about date-range span behavior, output shape, or failure modes, so it adds only modest context on top of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in one line, followed by a scannable bracketed metadata block with no filler. Every line conveys something (group, endpoint, required inputs, cost). It is efficiently sized for a metadata-stub style description, though the block format substitutes for real explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 20-parameter tool with only 25% schema coverage, the description leaves most configuration semantics undocumented. An output schema exists, so return values need not be described, but the absence of usage context, sibling differentiation, and parameter meaning leaves real gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% across 20 parameters, so the description carries a heavy burden. It merely re-lists the five required parameters already captured in the schema's required array, adding no meaning. It never explains the relationship between date/time and targetDate/targetTime, nor the roles of the enums (zodiacType, houseSystem, ayanamsa) or dial-specific flags.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line states a specific verb+resource+method: transits computed against natal midpoints on a 90° dial. That distinguishes it reasonably well from cosmobiology siblings like dial_90, midpoint_pictures, and witte_formulas. However, it never explicitly names those siblings or contrasts its output with them, so an agent still has to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no alternatives. It notes only required params and cost, which are selection-relevant but not usage-directional. An agent cannot tell from this text when transit-midpoints is preferred over transit_calendar or dial_90.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_uranian_tnpsUranian TNPsCRead-onlyIdempotentInspect
8 Hamburg trans-Neptunian bodies.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/uranian-tnps] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| tnps | No | |
| count | No | |
| source | No | |
| methodology | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive behavior, so the safety profile is covered. The description usefully adds the endpoint, the 10-credit Tier 1 cost, and the required-field set, but says nothing about the response contents or precision/compact-mode behavior beyond what the schema carries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is compact and front-loads the one substantive phrase before the bracketed metadata. Each line carries information, though the result is so terse that brevity shades into under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with only 33% schema coverage, this is thin: the compact `fields`/`precision` options, sidereal vs tropical handling, and house system selection go unexplained. The output schema exists so return values need not be described, but the invocation surface is not covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description must compensate for a large set of undocumented parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId). It only restates the four required fields already marked in the schema's required array, adding no meaning for the eleven others or for the ayanamsa/ayanamsaId duality.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase "8 Hamburg trans-Neptunian bodies" names a specific resource, so the agent knows this is the Hamburg School TNP set rather than one of the sibling tools' outputs. But there is no verb (compute? list? ephemeris?) and nothing that distinguishes it from neighbours like astroway_cosmobiology_witte_formulas or lefeldt_extensions, leaving the purpose only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage signals are the "[Required: date, time, latitude, longitude]" and cost lines, which are constraints rather than guidance. It never says when to choose this over the other cosmobiology endpoints or what input conditions it expects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_witte_formulasWitte FormulasCRead-onlyIdempotentInspect
Witte planetary pictures A+B−C=D.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/witte-formulas] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| orb | No | |
| count | No | |
| source | No | |
| notation | No | |
| pictures | No | |
| methodology | No |
TDQS
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 operational context the annotations do not carry: the POST endpoint and the cost of 10 credits (Tier 1). It says nothing about response shape or any prerequisite beyond the four required fields, but with annotations doing the safety work a 3 is warranted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracket format is tidy and front-loads the formula, group, endpoint, requirements and cost with zero filler. However the lead line is cryptic notation rather than an informative opening, and the brevity reflects under-specification rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description still falls short for a 16-parameter cosmobiology computation. It gives no definition of what a Witte planetary picture is, no default assumptions (e.g. which zodiac or house system applies, forcing reliance on schema defaults like houseSystem=P), and no disambiguation from the many sibling tools, leaving an agent unable to call it confidently beyond the four required fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31% across 16 parameters, so the description is expected to compensate and does not. It merely repeats the four required fields that are already declared in the schema; undocumented parameters such as withTnp, cosmogram, zodiacType and houseSystem receive no explanation here, and the Witte-specific options are not tied to the A+B−C=D formula.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (Witte planetary pictures) and gives the formula pattern A+B−C=D, but never states what the tool actually produces (planetary picture list? sum/difference axes?). It is a domain label rather than a verb+resource statement, and it does nothing to separate itself from close siblings like astroway_cosmobiology_midpoint_pictures or astroway_cosmobiology_cosmogram.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 at all. With eight sibling cosmobiology tools in the same group (midpoint_pictures, dial_90, sensitive_points, lefeldt_extensions), an agent has no textual basis for choosing this one over an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cost_estimateCost EstimateARead-onlyIdempotentInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoints | Yes | Endpoint paths to estimate, e.g. ["/chart", "/synastry", "/reports/natal"]. Leading slash optional. |
TDQS
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.
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.
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.
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.
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.
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_destiny_matrix_ladiniDestiny Matrix: Ladini MethodARead-onlyIdempotentInspect
The core of the Destiny Matrix per Natalia Ladini's method from a birth date: the personal square (pointA day, pointB month, pointC year digits, pointD bottom = A+B+C, pointE centre = A+B+C+D), the ancestral square corners, the sky (B+D) and earth (A+C) lines and the personal purpose, each with its arcanum. Numbers above 22 are reduced by summing digits. karmicTail, loveLine and moneyLine give the three arcana of each chain read from the centre outward, with code ("3-7-22"); the love and money channels share the crossing point.
[Group: Destiny Matrix] [Endpoint: POST /v1/destiny-matrix/ladini] [Required: date] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| centre | No | |
| method | No | |
| pointA | No | |
| pointB | No | |
| pointC | No | |
| pointD | No | |
| pointE | No | |
| skyAxis | No | |
| ageScale | No | |
| loveLine | No | |
| ancestral | No | |
| earthAxis | No | |
| moneyLine | No | |
| disclaimer | No | |
| karmicTail | No | |
| loveLineNode | No | |
| karmicTailSum | No | |
| moneyLineNode | No | |
| personalPurpose | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only/idempotent/non-destructive profile, so the bar is lowered, and the description still adds real behavioral context: the >22 digit-sum reduction rule, the centre-outward reading of the arcana chains, and the `code` format ("3-7-22") plus the shared `crossing` point. It omits cost/permission behavior, but for a pure computation tool this is solidly above baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded and the two dense sentences are packed with substantive output semantics rather than filler. It is jargon-heavy and could be split for readability, but every phrase carries domain meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 does not need to explain return values, yet it usefully pre-frames the key response fields (karmicTail, loveLine, moneyLine, crossing). The one real gap is the absence of when-to-use guidance against the numerology siblings, which the rest of the package does not cover either.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% and both `fields` and `precision` already carry their own schema descriptions, so the structured data does most of the work. The description only implies the birth-date input and adds no syntax or format detail for any parameter, so baseline 3 is right.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (the Destiny Matrix per Natalia Ladini, computed from a birth date) and enumerates the concrete outputs (personal square points A-E, ancestral corners, sky/earth lines, karmic/love/money chains). An agent can distinguish this from the numerology siblings by name and method. It stops short of an explicit contrast with the numerology family, so it is not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to pick this tool over the many numerology chart siblings, nor prerequisites beyond the implicit required `date`. The Group/Endpoint/Cost tags in context signals supply administrative framing, but the description itself offers no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_dignities_almutenAlmuten FigurisARead-onlyIdempotentInspect
Calculate the Almuten Figuris: the planet with the highest essential dignity score across the key chart positions.
[Group: Dignities & Receptions] [Endpoint: POST /v1/almuten] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus optional custom terms and decans tables. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| chart | No | |
| almuten | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, and non-destructive behavior, so the safety profile is clear. The description adds the contextual detail that it computes a dignity score across key chart positions, but doesn't disclose behavioral traits beyond what annotations provide, such as response format or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the core purpose. The additional metadata (group, endpoint, cost) is useful context but slightly dilutes conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the annotations cover safety and idempotency, the schema is rich with 100% coverage, and an output schema exists, the description adequately defines the tool's purpose. It could be more complete with usage guidelines, but it's sufficient for an agent to understand what the tool does and how to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description doesn't add any parameter-level meaning beyond what's in the schema, which is expected given the high coverage, making a baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (Calculate) and names the exact astrological concept (Almuten Figuris), defining it as the planet with the highest essential dignity score across key chart positions. This clearly distinguishes it from siblings like astroway_dignities_essential_dignities and astroway_dignities_hyleg.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as essential_dignities or hyleg. While the concept definition implies its purpose, there are no explicit when-to-use or when-not-to-use statements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_dignities_disposition_chainsDisposition ChainsBRead-onlyIdempotentInspect
Calculate planetary disposition chains: the recursive sequence of sign rulers leading to the final dispositor.
[Group: Dignities & Receptions] [Endpoint: POST /v1/disposition-chains] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus the dispositor mode (rulership or detriment) and the ruler set (classical or modern). | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| mode | No | |
| rulerMode | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, non-destructive read, so the safety profile is covered. The description adds a conceptual definition of what a disposition chain is, which is useful, but it does not disclose the POST-with-body shape, that this is a computed result and not a stored resource, or anything about the cost tier beyond the bracketed metadata line.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is one efficient sentence, front-loaded with the action. The trailing bracketed metadata block (group/endpoint/cost) is structured and skimmable rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-purpose computed chart tool with a rich schema and an output schema, the definition is minimally adequate. It defines the concept, which is the main non-obvious piece, but omits any cue about when this is the right tool versus the sibling dignities endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema carries the parameter burden and the baseline of 3 applies. The description adds no parameter meaning beyond the one concept term ('sign rulers'), leaving mode/rulerMode semantics to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource — 'Calculate planetary disposition chains' — and defines the concept inline ('the recursive sequence of sign rulers leading to the final dispositor'). This clearly distinguishes it from sibling tools like astroway_dignities_almuten (a single almuten winner) and astroway_dignities_disposition_chains_layout (a rendering of the same chains).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use guidance, no prerequisites, and never names an alternative. An agent choosing among the many dignities siblings gets only the noun phrase to go on.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_dignities_disposition_chains_layoutDisposition Chains LayoutBRead-onlyIdempotentInspect
Return disposition chains with computed x/y layout coordinates for graph visualization.
[Group: Dignities & Receptions] [Endpoint: POST /v1/disposition-chains/layout] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus the dispositor mode (rulership or detriment) and the ruler set (classical or modern). | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| mode | No | |
| bounds | No | |
| layout | No | |
| rulerMode | No |
TDQS
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 fully covered. The description adds useful operational context the annotations lack: group, endpoint, and a 20-credit Tier 2 cost. It does not describe the coordinate space, units, or determinism of the layout, which would have been genuinely valuable for a layout-computing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence plus three compact bracketed metadata lines; the purpose is front-loaded and nothing is wasted. Slightly terse given the amount of schema complexity being invoked.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 params are fully documented in the schema. The cost/endpoint metadata is a plus. The main shortfall is that it never clarifies that the input is natal data plus a dispositor mode, leaving the agent to infer the call shape entirely from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 (timezone, ayanamsa, houseSystem, fields, precision). The description adds nothing about parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Return) and resource (disposition chains) plus the distinguishing output feature: computed x/y layout coordinates for graph visualization. This differentiates it from the sibling astroway_dignities_disposition_chains without naming it, since the layout-coordinate qualifier is the differentiator, but the separation is left implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing is given. The phrase 'for graph visualization' implies the intended consumption context, but the agent is not told when to pick this over the plain disposition-chains sibling or the render_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_dignities_essential_dignitiesEssential DignitiesARead-onlyIdempotentInspect
Calculate the five Ptolemaic essential dignities (rulership, exaltation, triplicity, term, face) and debilities for each planet.
[Group: Dignities & Receptions] [Endpoint: POST /v1/essential-dignities] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus optional custom terms and decans tables. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dignities | No | |
| totalScore | No |
TDQS
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 the cost (20 credits, Tier 2) and the endpoint, which is useful operational context. It does not describe what the response contains or whether the analysis is deterministic, but with annotations carrying safety the bar is lower.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core description is a single tight sentence that front-loads the verb and the exact output. The group/endpoint/cost metadata is compressed into bracketed lines. No wasted prose, though the description is quite short relative to the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not explain return values, and annotations cover safety. The cost and endpoint are disclosed. However, for a tool that sits among many sibling dignities tools, the description lacks differentiation guidance, and it does not mention that custom terms/decans tables can be supplied to override defaults, which is a meaningful capability present in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the body, fields, and precision parameters richly documented, including custom termsData and decansData tables. The description adds essentially no parameter-level detail beyond what the schema provides, but the schema already does the heavy lifting, so the baseline is high. It does not clarify which birth-data fields matter most for dignity calculation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (calculate) and resource (the five Ptolemaic essential dignities plus debilities) for each planet. It enumerates the five dignity types, which is more specific than most siblings. However, it does not differentiate itself from closely related siblings such as astroway_dignities_almuten or astroway_dignities_receptions, which an agent must distinguish among.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no stated alternative, and no conditions for choosing this over the sibling dignities tools. The grouping tag '[Group: Dignities & Receptions]' and endpoint line imply context but do not tell the agent which sibling to pick. Usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_dignities_hylegHyleg & AlcocodenBRead-onlyIdempotentInspect
Calculate the Hyleg (apheta, giver of life) and Alcocoden (indicator of lifespan) using traditional Hellenistic method.
[Group: Dignities & Receptions] [Endpoint: POST /v1/hyleg] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus the hyleg method and optional custom dignity tables. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| hyleg | No | |
| alcocoden | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuinely useful non-schema behavior: the endpoint path and a 20-credit Tier 2 cost, which lets an agent budget before calling. It still says nothing about auth or failure modes, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence carries the whole purpose, followed by short bracketed metadata lines for group, endpoint and cost. No filler or repetition, though the metadata block is largely boilerplate that could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 input schema is thorough. For a specialized Hellenistic calculation the description is minimally viable: it never notes what inputs are required for a valid Hyleg/Alcocoden determination or any limitations of the method, leaving that entirely to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested birth-data schema documents date/time/coordinates, timezone, houseSystem and the compact-mode fields in detail. The description contributes no parameter meaning of its own, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) plus two named resources (Hyleg/apheta, Alcocoden) with brief glosses of each, and pins the method to traditional Hellenistic practice. This clearly separates it from the other dignity siblings (almuten, essential dignities, receptions), 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no prerequisites, and no mention of alternatives among the many dignity/calculation siblings. The Group tag and POST endpoint imply context but give the agent nothing actionable about selecting this tool over astroway_dignities_almuten or astroway_dignities_essential_dignities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_dignities_receptionsMutual ReceptionsARead-onlyIdempotentInspect
Find mutual receptions between planets: pairs where each planet is in a sign ruled, exalted, or in the dignity of the other.
[Group: Dignities & Receptions] [Endpoint: POST /v1/receptions] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus optional custom terms and decans tables. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| mutual | No | |
| receptions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is covered structurally. The description adds genuinely new behavioral context beyond the annotations: the cost ('20 credits, Tier 2') and the transport endpoint (POST /v1/receptions), which affect whether an agent should call it. It does not describe latency or pagination, but neither is implied for a bounded two-planet-pair scan.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence of substance plus three short bracketed metadata lines (group, endpoint, cost). Nothing is repeated or padded, and the operative definition is front-loaded ahead of the metadata.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a computation over birth data; the input schema is exhaustively documented and an output schema exists, so return values need no explanation. What is missing is a note that required birth data (date, time, latitude, longitude) must be supplied and how this differs from the sibling dignity tools, but the definition is otherwise sufficient to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested body schema documents date, time, latitude, longitude, timezone, ayanamsa, houseSystem, plus the compact-mode fields/precision options in detail. The description contributes nothing about any parameter, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Find mutual receptions between planets') and then defines the astronomical condition precisely ('pairs where each planet is in a sign ruled, exalted, or in the dignity of the other'), so an agent knows exactly what output to expect. It does not name or contrast with close siblings such as astroway_dignities_essential_dignities or astroway_dignities_disposition_chains, which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The definition explains the underlying concept but never says to prefer this over essential dignities or disposition chains, and no trigger condition (e.g. 'use when the question concerns two planets exchanging sign rulership') is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_esoteric_angel_numbersAngel Numbers: CatalogueARead-onlyIdempotentInspect
Full angel number catalogue (singles, masters, repeating, mirror, sequential patterns) with short and full meanings, themes.
[Group: Esoteric] [Endpoint: GET /v1/esoteric/angel-numbers] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No |
TDQS
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 two genuinely useful operational facts — the GET endpoint and the 5-credit (Tier ½) cost — but says nothing about result size, pagination or how heavy a full catalogue response is, which matters for a browse-all endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence states the purpose, followed by compact bracketed metadata (group, endpoint, cost). Nothing is wasted or buried, though the metadata tags are structured fields that arguably belong outside the prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no required parameters and an output schema present, the description need not explain return values; it still states what the catalogue contains (patterns, short/full meanings, themes). It is sufficient for correct invocation, with sibling disambiguation the only real omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (fields, precision) are already documented in the schema, and neither is required. The description adds nothing about compact mode or precision, so the baseline 3 applies — the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (the full angel number catalogue) and enumerates its scope: singles, masters, repeating, mirror and sequential patterns, plus short/full meanings and themes. 'Full catalogue' usefully contrasts with the single-number siblings (astroway_esoteric_angel_numbers_number, _decode, _today, _by_life_path_n), though it never names one of them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use statement. Usage is only implied by the word 'catalogue' — an agent can infer this is the browse-everything variant versus the per-number lookups, but the description never routes between the four angel-number siblings, which is the main selection risk here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_esoteric_angel_numbers_by_life_path_nAngel Numbers for Life PathARead-onlyIdempotentInspect
Angel numbers aligned to a given life-path number (1-9, 11, 22, 33). Useful to identify recurring numerical signatures aligned with one's soul path.
[Group: Esoteric] [Endpoint: GET /v1/esoteric/angel-numbers/by-life-path/{n}] [Required: n] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | Life path number: 1-9, or the master numbers 11, 22, 33. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No | |
| lifePath | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful context beyond them: the GET endpoint path and a cost disclosure ("see your plan — endpoint not in the public credit manifest"), which warns the agent that billing cannot be pre-computed here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and range are front-loaded in the first sentence, with the metadata block (group, endpoint, required param, cost) cleanly separated. Slight redundancy in repeating the 1-9/11/22/33 range already present in the schema description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-required-param read tool with an output schema, annotations and full schema coverage, the description supplies what structured data does not: the endpoint, the cost caveat, and the interpretive intent. Nothing essential for a correct call is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the schema already defines `n` (including master numbers), `fields` (compact mode with example) and `precision`. The description only restates the range, so it adds no meaning beyond the structured fields. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: angel numbers aligned to a given life-path number, with the accepted range (1-9, 11, 22, 33) spelled out. It is distinguishable from the other angel-number siblings by the life-path scoping, though it never names those siblings (e.g. astroway_esoteric_angel_numbers_number) to disambiguate explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Useful to identify recurring numerical signatures aligned with one's soul path" implies when the tool is appropriate, but there is no explicit when-not guidance and no routing to alternatives among the many angel-number siblings. Usage is inferable but not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_esoteric_angel_numbers_decodeDecode Angel NumberBRead-onlyIdempotentInspect
Decode a numeric sequence in optional life context. Returns pattern classification, exact match, and reduced single-digit meaning.
[Group: Esoteric] [Endpoint: POST /v1/esoteric/angel-numbers/decode] [Required: sequence] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| context | No | ||
| sequence | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| context | No | |
| pattern | No | |
| sequence | No | |
| reducedTo | No | |
| exactMatch | No |
TDQS
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 the credit cost (10 credits, Tier 1) and the shape of the analysis, but does not disclose limits on sequence (max 8 digits), failure behavior, or any rate/auth constraints 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action in one sentence, with endpoint, required-parameter, and cost metadata bracketed separately and easy to scan. Every element earns its place; only the lack of any sibling-routing sentence leaves a small structural gap.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the return values need not be spelled out, and annotations cover the safety profile. The description adequately covers the two undocumented params and the required field, though the sibling-routing context within the angel-numbers family remains absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'fields' and 'precision' are documented in-schema, while 'context' and 'sequence' are not. The description partially compensates by implying 'numeric sequence' and 'optional life context', but adds no format, range, or semantics beyond the parameter names themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Decode a numeric sequence') and names the returned artifacts (pattern classification, exact match, reduced single-digit meaning). It does not differentiate itself from the close sibling astroway_esoteric_angel_numbers_number, leaving ambiguity about sequence vs single number.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in optional life context' hints at when the context parameter matters, but there is no explicit when-to-use, when-not-to-use, or routing to alternatives such as angel_numbers_number or angel_numbers_today. The agent gets no guidance on selecting among the four angel-number siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_esoteric_angel_numbers_numberAngel Number LookupARead-onlyIdempotentInspect
Look up the meaning of a specific angel number sequence. Falls back to numerological reduction if not in catalogue.
[Group: Esoteric] [Endpoint: GET /v1/esoteric/angel-numbers/{number}] [Required: number] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| number | Yes | Angel number, digits only. Unindexed numbers fall back to a pattern classification plus the reduced single digit. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| number | No | |
| themes | No | |
| matched | No | |
| pattern | No | |
| shortMeaning | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely new behavior: catalogue misses fall back to pattern classification plus reduced single digit, and it flags that the endpoint is absent from the public credit manifest (a cost-uncertainty signal). It stops short of describing response shape, but annotations carry the rest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The two prose sentences are front-loaded and waste-free, with the fallback behavior stated immediately after the core purpose. The bracketed metadata block (Group/Endpoint/Required/Cost) adds some length, though the cost caveat carries real signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not needed. Purpose, fallback behavior, and a cost caveat are present; the only meaningful gap is the absence of routing guidance among the several angel-number siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters (number, fields, precision) are documented in the schema, so the schema does the heavy lifting. The description echoes 'Required: number' without adding syntax or edge-case meaning beyond what the pattern already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Look up the meaning of a specific angel number sequence.' This is clearly a single-number lookup. However, it does not distinguish itself from close siblings like astroway_esoteric_angel_numbers_decode, _by_life_path_n, or the base astroway_esoteric_angel_numbers list tool, leaving the agent to infer the split from names alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (pass a specific number to get its meaning) but the description never says when to prefer this over _decode, _today, or _by_life_path_n, nor when the number is required vs. derivable. The fallback note is behavioral, not a routing rule, so no explicit alternative is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_esoteric_angel_numbers_todayDaily Angel NumberBRead-onlyIdempotentInspect
Compute today's personal angel number from date (digit-sum reduced to single digit). Optional ?date=YYYY-MM-DD query.
[Group: Esoteric] [Endpoint: GET /v1/esoteric/angel-numbers/today] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| meaning | No | |
| dailySum | No | |
| reducedTo | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description usefully adds cost ('5 credits, Tier ½') and the endpoint path, but says nothing about permissions, rate behavior, or how the date is resolved. With annotations carrying most of the load, a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action in the first sentence, with group/endpoint/cost metadata bracketed compactly. No filler, though the parameter detail in sentence two is the part that misfires rather than over-length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and the description covers purpose, endpoint, and cost for a simple zero-required-parameter read tool. The only gap is the mismatch between the described date query and the actual schema parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description introduces an 'Optional ?date=YYYY-MM-DD query' that does not appear among the two schema parameters (fields, precision). This phantom parameter can mislead an agent, and the actual schema parameters are never mentioned, so the description adds no useful meaning and introduces confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Compute today's personal angel number') and clarifies the derivation ('digit-sum reduced to single digit'), which separates it from the generic angel-number siblings. It does not explicitly name which sibling it differs from, keeping it below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'today's' – an agent can infer this is the daily-variant versus the by-life-path/by-number/decode siblings – but no explicit when-to-use, when-not, or named alternative is given. This is minimum-viable context 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_esoteric_crystalsCrystals: Full DirectoryARead-onlyIdempotentInspect
Reference list of crystals with chakra, zodiac, planet, element, hardness, and purpose tags. Returns chakra and purpose taxonomies for filtering.
[Group: Esoteric] [Endpoint: GET /v1/esoteric/crystals] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No | |
| chakras | No | |
| purposes | No |
TDQS
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 useful non-schema context: the tag dimensions present in each entry, the fact that chakra/purpose taxonomies are returned, and the 5-credit (Tier ½) cost. It stops short of describing pagination or result-size behavior for a 'full directory'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences state the resource and its return taxonomies with no filler, followed by compact bracket metadata for group, endpoint, and cost. Slightly more could be trimmed from the tag enumeration, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, annotations covering safety, and a fully documented 2-parameter schema, the definition only needs to orient the agent — which it does by naming the resource, its tag fields, and what taxonomies come back. The remaining gap is the lack of explicit routing to the filtered crystal siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both `fields` (dotted-path projection) and `precision` (decimal rounding) are fully documented in the schema, and baseline is 3. The description adds nothing about either parameter — notably it does not hint that `fields` can be used to trim this large directory response.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope: a 'reference list of crystals' with named tag dimensions (chakra, zodiac, planet, element, hardness, purpose), which is clearly distinguishable from the geomancy, runes, and Mayan siblings. It does not, however, name the closely related siblings (astroway_esoteric_crystals_by_chakra_chakra, _by_purpose_purpose, _by_zodiac_sign, _recommend) to explain how this differs from them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The line 'Returns chakra and purpose taxonomies for filtering' implies the intended pipeline: call this first to discover valid filter values, then use the filtered crystal endpoints. That is genuine but implied guidance — there is no explicit statement of when to prefer this over the by_chakra/by_purpose/by_zodiac variants, nor any exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_esoteric_crystals_by_chakra_chakraCrystals by ChakraBRead-onlyIdempotentInspect
Crystals indexed for a given chakra (Root / Sacral / Solar Plexus / Heart / Throat / Third Eye / Crown).
[Group: Esoteric] [Endpoint: GET /v1/esoteric/crystals/by-chakra/{chakra}] [Required: chakra] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| chakra | Yes | Chakra name, lowercase. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No | |
| chakra | No |
TDQS
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 useful non-annotation context: the HTTP endpoint path and a cost caveat that the endpoint is not in the public credit manifest, which is worth knowing before calling. It says nothing about result size, pagination, or unknown-chakra behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with the essential resource and its value domain, followed by a compact metadata block. No filler, though the bracketed metadata lines add bulk that could be tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 all three parameters are documented. The only meaningful gap is sibling disambiguation among the four other crystal tools, which an agent choosing between them would want.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description goes further by enumerating the accepted chakra names (Root through Crown), which the schema does not provide as an enum. It still leaves case/format expectations to the schema's 'lowercase' note.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb-and-resource pairing ('Crystals indexed for a given chakra') and enumerates the seven valid chakra values, so the agent knows exactly what it returns. It does not explicitly contrast itself with the sibling crystal endpoints (by_purpose, by_zodiac_sign, crystals_recommend), 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.
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 mention of when to prefer this over astroway_esoteric_crystals_by_zodiac_sign or astroway_esoteric_crystals_by_purpose_purpose. Usage is only implied by the 'given a chakra' phrasing and the enumerated values.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_esoteric_crystals_by_purpose_purposeCrystals by PurposeARead-onlyIdempotentInspect
Crystals indexed by intent keyword (love, prosperity, healing, protection, etc.). Substring-matches against purpose tags.
[Group: Esoteric] [Endpoint: GET /v1/esoteric/crystals/by-purpose/{purpose}] [Required: purpose] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| purpose | Yes | Purpose to match. Substring match against the indexed purposes, so `protect` finds `protection`. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No | |
| purpose | No |
TDQS
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 a genuinely useful non-schema detail — substring matching semantics (also mirrored in the schema) and a cost caveat that the endpoint is absent from the public credit manifest. It adds some value, but not rich behavioral detail 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence is front-loaded and waste-free, and the bracketed metadata block (group, endpoint, required param, cost note) is compact and scannable. Slight redundancy between the description's substring-matching mention and the schema's own note, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a 100%-covered schema, rich annotations, and an output schema handling return values, the description only needs to orient the agent — which it does. The one real gap is sibling differentiation against the other crystal endpoints, which a competent agent can partially recover from the tool name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters (purpose, fields, precision) are already documented, including the substring-match example. The description's phrase 'indexed by intent keyword' loosely maps to the purpose parameter but adds nothing the schema does not already say. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope: crystals indexed by intent keyword, with concrete examples (love, prosperity, healing, protection). This is clear enough to distinguish it from a generic crystal listing, but it never differentiates itself from the closely-named siblings (by_chakra, by_zodiac_sign, recommend), leaving that routing to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the examples and the 'match a purpose' framing, so an agent can infer this is the tool for intent-based crystal lookup. There is no explicit when-to-use or when-not guidance, and no mention of the by_chakra / by_zodiac alternatives that would be the natural confusion points.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_esoteric_crystals_by_zodiac_signCrystals by Zodiac SignBRead-onlyIdempotentInspect
Crystals indexed for a given zodiac sign (case-insensitive English name).
[Group: Esoteric] [Endpoint: GET /v1/esoteric/crystals/by-zodiac/{sign}] [Required: sign] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| sign | Yes | Zodiac sign, lowercase English name. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sign | No | |
| count | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered structurally. The description adds genuinely new context: the cost is plan-dependent and absent from the public credit manifest, and the input is case-insensitive. However it says nothing about response shape or rate limits, which is acceptable given the annotations and output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the actual purpose in one sentence, followed by compact bracketed metadata (group, endpoint, required param, cost). No wasted prose, though the bracket block is boilerplate that repeats schema-derivable facts like the required parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations, an output schema, and full schema coverage, the basics are covered. The main gap is the absence of any routing guidance among the four sibling crystals tools, which is the primary decision an agent faces here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's 'case-insensitive English name' note adds mild clarification, though it slightly diverges from the schema's 'lowercase English name' wording; it does nothing for the fields/precision compact-mode parameters, which the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (crystals) and the index dimension (zodiac sign), so an agent can distinguish it from the sibling 'by chakra' and 'by purpose' variants. It does not explicitly name those alternatives, but the purpose itself is unambiguous and specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance and never names the closely related crystals endpoints (astroway_esoteric_crystals, _by_chakra, _by_purpose, _recommend) that an agent must choose between. Only the mechanical [Required: sign] line is present, which is 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_esoteric_crystals_recommendCrystal RecommendationsBRead-onlyIdempotentInspect
Recommend crystals scored against natal sign placements (Sun/Moon/Asc) and intent keywords. Returns top-N matches with score.
[Group: Esoteric] [Endpoint: POST /v1/esoteric/crystals/recommend] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| intent | No | ||
| sunSign | No | ||
| moonSign | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ascendantSign | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| criteria | No | |
| recommendations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive and closed-world, so the safety profile is covered. The description usefully adds the return shape (top-N matches with score) and the cost metadata (10 credits, Tier 1), but says nothing about ranking mechanics, whether results are deterministic, or what happens when signs 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences that state function and return value with no filler, followed by compact group/endpoint/cost metadata. Efficient and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not required. However, for a 7-parameter tool with 0 required parameters, 29% schema coverage, and no usage guidance, the description leaves meaningful gaps about how to compose a call and when to prefer this over the sibling crystal tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29%, and the description compensates partially by naming the sign inputs (Sun/Moon/Asc) and intent keywords. It says nothing about limit, the fields compact-mode path syntax, or precision rounding, so the low-coverage parameters remain only partially explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (recommend) and resource (crystals) plus the scoring basis (natal Sun/Moon/Asc placements and intent keywords), which is more than a tautology. It does not explicitly contrast itself with the overlapping siblings astroway_esoteric_crystals_by_zodiac_sign and astroway_esoteric_crystals_by_purpose_purpose, so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The mention of natal placements and intent keywords implies when the tool applies, but there is no explicit when-to-use statement, no exclusions, and no pointer to the by-zodiac or by-purpose siblings that cover adjacent needs. Usage is inferable 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_esoteric_djamaspaDjamaspa (DEPRECATED: RED quality, sunset 2027-06-15)ARead-onlyIdempotentInspect
DEPRECATED: RED quality (oral Zoroastrian tradition, scattered manuscripts, no canonical reference). Still works until its 2027-06-15 sunset (12-month, per the /v1 stability policy), then will be removed. Migrate to broader /reference endpoints or remove the dependency. Calculate Djamaspa planetary positions for date.
[Group: Esoteric] [Endpoint: POST /v1/djamaspa] [Required: date] [Cost: 10 credits (Tier 1)] [⚠️ DEPRECATED — will be removed in a future API version. Avoid using.]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| day | No | |
| hour | No | |
| year | No | |
| month | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so safety is covered. The description goes further with lifecycle and cost context the annotations omit: RED data quality, sunset date, the 2017 stability-policy window, and a 10-credit Tier 1 cost. This is genuinely useful operational context beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose sentence is front-loaded after a deprecation preamble, which is the right ordering. However, the deprecation is stated twice – once as the "DEPRECATED: RED quality" prefix and again in the bracketed "[⚠️ DEPRECATED — will be removed...]" block – and the [Group]/[Endpoint]/[Required] boilerplate is largely redundant. Some trimming would earn more of its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained. The description covers purpose, deprecation timing, migration, required input, and cost – everything an agent needs to decide and invoke. The absence of a named successor endpoint is the only real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, and the schema already documents both `fields` and `precision` in detail with examples. The description only restates the required `date` ("for date") without adding format, range, or semantics beyond the schema's pattern. Baseline 3 is appropriate when the schema carries the detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Calculate Djamaspa planetary positions for date" gives a specific verb+resource and the input it needs. The esoteric/Djamaspa subject matter distinguishes it from the geomancy, runes, and mayan siblings, though it doesn't explicitly contrast with a near-neighbor tool. Clear enough for selection despite the deprecation noise surrounding it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent not to use it ("Avoid using", "DEPRECATED") and provides a migration route ("Migrate to broader /reference endpoints or remove the dependency") plus a hard sunset date. This is strong when/when-not guidance. It doesn't name a specific replacement endpoint, which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_esoteric_dreamsDream Symbol DictionaryBRead-onlyIdempotentInspect
Full dream symbol dictionary with category, element, archetype, common and shadow meanings, and recurring-dream readings.
[Group: Esoteric] [Endpoint: GET /v1/esoteric/dreams] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed-world scope, so the safety profile is fully covered without the description. The description adds cost (5 credits, Tier ½) and the endpoint, which is useful call context, but it does not disclose anything further about response size, pagination, or limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence describes the payload, followed by a compact metadata block (group, endpoint, cost). There is no filler, though the bracketed metadata is somewhat mechanical and could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity read tool, the essentials are present: annotations carry safety, a 100%-covered 2-param schema carries inputs, and an output schema exists so return values need no prose. The only real omission is routing guidance versus the four sibling dream tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both optional compact-mode parameters ('fields' and 'precision') fully documented in the schema itself. The description adds no parameter meaning, so the baseline 3 for schema-covered parameters applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource ('full dream symbol dictionary') and enumerates its contents (category, element, archetype, common/shadow meanings, recurring-dream readings), so an agent knows what it returns. The word 'Full' hints it is the complete dictionary rather than a lookup, but no sibling is named to make the distinction explicit, which keeps it at a 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement and no alternatives surfaced. Siblings such as astroway_esoteric_dreams_symbol_keyword, astroway_esoteric_dreams_decode, astroway_esoteric_dreams_by_element_element, and astroway_esoteric_dreams_recurring_themes overlap heavily, yet the description gives no rule for choosing among them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_esoteric_dreams_by_element_elementDream Symbols by ElementBRead-onlyIdempotentInspect
Dream symbols indexed by element (fire / earth / air / water / spirit).
[Group: Esoteric] [Endpoint: GET /v1/esoteric/dreams/by-element/{element}] [Required: element] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| element | Yes | Elemental grouping. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No | |
| element | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so safety is fully covered. The description adds one genuinely new behavioral fact — that this endpoint is not in the public credit manifest, so pricing must come from the plan — which is useful for cost-sensitive agents, but it says nothing about result size or depth of the symbol corpus.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single prose sentence followed by four bracketed metadata tags — group, endpoint, required param, cost. Nothing is padded, and the operative fact (what is indexed by what) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not describe return values; annotations cover the safety profile and the schema covers all three parameters. The only real gap is the absence of sibling routing, which keeps it out of the top band for a tool in a very crowded namespace.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the element enum is fully documented, so the schema carries the parameter burden. The description only repeats the enum values and adds no semantics about what 'spirit' contains versus the four classical elements, or about how fields/precision interact with this response.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and indexing dimension: dream symbols grouped by element, with the five valid groupings enumerated. An agent can tell this is a lookup/list tool rather than a decoder, but the description never contrasts it with nearby siblings like dreams_symbol_keyword, dreams_decode, or dreams_recurring_themes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. "[Required: element]" merely restates the schema's required field and does not explain when an agent should browse by element versus looking up a single symbol keyword or decoding a full dream.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_esoteric_dreams_decodeDecode Dream TextARead-onlyIdempotentInspect
Scan dream narrative text for known symbols. Returns matched symbols with their meanings (recurring or single-event).
[Group: Esoteric] [Endpoint: POST /v1/esoteric/dreams/decode] [Required: text] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| recurring | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| text | No | |
| symbols | No | |
| suggestion | No | |
| symbolsFound | No |
TDQS
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 bar is lower. The description adds genuinely new operational context not in structured fields: the POST endpoint and the 10-credit Tier 1 cost, which matters for an agent deciding whether to call it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, followed by a compact bracketed metadata block (group, endpoint, required, cost) with zero filler. Slightly terse on the behavioral sentence, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-text-input tool with an output schema present, the description needn't explain return values, and the cost/input-requirement disclosure covers the practical needs. The only real gap is not distinguishing this decoder from the sibling symbol-keyword lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'fields' and 'precision' carry their own descriptions, while 'text' and 'recurring' do not. The description partially compensates by flagging 'text' as required and gesturing at the recurring/single-event distinction, but never explains what the recurring toggle actually changes. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb+resource: 'Scan dream narrative text for known symbols,' then states the output shape (matched symbols with meanings). This clearly separates it from keyword-lookup siblings, though it never names an alternative like astroway_esoteric_dreams_symbol_keyword explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named, despite several close siblings (dreams_symbol_keyword, dreams_recurring_themes, dreams_by_element). The parenthetical '(recurring or single-event)' hints at a mode but does not tell the agent which one applies to a given request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_esoteric_dreams_recurring_themesRecurring Dream ThemesBRead-onlyIdempotentInspect
Catalogue of common recurring dream themes (falling, naked in public, losing teeth, being chased) with universal psychological meanings.
[Group: Esoteric] [Endpoint: GET /v1/esoteric/dreams/recurring-themes] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world behavior, so the safety profile is covered. The description adds genuinely useful non-schema context: the endpoint path and a cost of 5 credits (Tier ½), which an agent needs for budgeting. It says nothing about response size or shape, though an output schema exists to cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence that front-loads the resource and its examples, followed by clearly delineated bracketed metadata for group, endpoint, and cost. No filler prose; the metadata block is terse and skimmable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter, non-nested, read-only lookup with a 100%-covered schema and an output schema, the description supplies enough to call the tool correctly, and the cost hint covers a real decision factor. A brief note on what the catalogue returns per theme would make it fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (fields, precision) are already fully documented in the schema. The description adds no syntax, default, or usage detail beyond that, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (a catalogue of recurring dream themes) and illustrates it with four concrete examples plus the kind of content returned ('universal psychological meanings'). This is clearly distinguishable from siblings like astroway_esoteric_dreams_decode or astroway_esoteric_dreams_symbol_keyword by subject matter, but the description never explicitly contrasts itself with them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no condition that selects this tool over the many adjacent dream/divination siblings, and no prerequisites. The name and the phrase 'recurring themes' imply it is a reference lookup, but the agent must infer that entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_esoteric_dreams_symbol_keywordDream Symbol LookupARead-onlyIdempotentInspect
Look up a dream symbol by keyword. Exact match if available, otherwise partial substring matches.
[Group: Esoteric] [Endpoint: GET /v1/esoteric/dreams/symbol/{keyword}] [Required: keyword] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| keyword | Yes | Dream symbol to look up. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| keyword | No | |
| matched | No | |
| category | No | |
| archetype | No | |
| commonMeaning | No |
TDQS
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 bar is lower. The description adds real behavioral detail beyond them: exact match takes priority, falling back to partial substring matches, plus a cost caveat that the endpoint is absent from the public credit manifest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The behavioral sentence is front-loaded and the bracketed metadata lines are compact and scannable. The endpoint path line is redundant with the tool name, but nothing is bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is not required, and all three parameters are fully described in the schema. Matching behavior, required input, and cost uncertainty are covered; only sibling routing is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all three parameters are already documented in the schema, including the 'fields' compact-mode path syntax and 'precision' rounding. The description only restates the required 'keyword' and its match semantics, adding little beyond structured data; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Look up a dream symbol by keyword.' That is clearly distinct from the sibling decode/element/theme dream tools, which take different inputs. It stops short of naming those siblings to route the agent, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is about matching behavior, not about when to pick this tool over astroway_esoteric_dreams_decode or astroway_esoteric_dreams_by_element_element. No prerequisites, no exclusions, no alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_esoteric_ichingI Ching Hexagram (DEPRECATED: use /iching/throw-coins)ARead-onlyIdempotentInspect
DEPRECATED: legacy un-namespaced random hexagram cast. Superseded by the /iching/* namespace: /iching/throw-coins (seeded + reproducible), /iching/by-question, /iching/with-changing-lines, /iching/daily, /iching/lookup/{n}, all on the Wilhelm-Baynes hexagram set. Still works until its 2027-06-16 sunset, then removed. Casts a single I Ching hexagram (input ignored).
[Group: Esoteric] [Endpoint: POST /v1/iching] [Cost: 10 credits (Tier 1)] [⚠️ DEPRECATED — will be removed in a future API version. Avoid using.]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| lines | No | |
| number | No | |
| chinese | No | |
| trigrams | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds real context: 'input ignored' (the cast is not parameterized), the sunset date, and a 10-credit cost. It stops short of describing the random/seedless nature of the cast beyond the implicit contrast with the seeded replacement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The deprecation warning is front-loaded, which is correct, but it is repeated three times (title, description opener, and the trailing bracket block). Group/Endpoint/Cost metadata and the ⚠️ footer add bulk that competes with the routing message.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the deprecation, replacement routing, cost, and sunset are all stated. Nothing an agent needs in order to avoid or correctly invoke this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both params (fields, precision) are already documented as compact-mode output shapers. The description adds only the indirect note that input is ignored, which slightly conflicts in spirit with the presence of params, but no syntax or semantics are added beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Casts a single I Ching hexagram') and explicitly positions itself against the entire /iching/* sibling namespace, listing each replacement and its distinguishing trait. An agent can tell this apart from astroway_iching_throw_coins without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when NOT to use it (deprecated, sunset 2027-06-16, avoid) and names six concrete alternatives with their differing capabilities. Nothing is left to inference about routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_evolutionary_nodal_axis_detailNodal Axis DetailCRead-onlyIdempotentInspect
Full NN/SN with rulers + conjuncts.
[Group: Evolutionary Astrology] [Endpoint: POST /v1/evolutionary/nodal-axis-detail] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| northNode | No | |
| southNode | No | |
| disclaimer | No |
TDQS
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 adds genuinely useful operational facts (POST endpoint, 10-credit Tier 1 cost), but says nothing about what 'detail' contains or whether auth is required. With annotations carrying the safety burden, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-sentence body is terse to the point of under-specification rather than concision. The bracketed metadata blocks are front-loaded and scannable, but the machine-style tags consume most of the definition's length without adding explanatory value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter endpoint with 33% schema coverage and no usage guidance the description is far too thin. An agent lacks enough to select this tool confidently or fill in the undocumented parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate and does not. Its '[Required: date, time, latitude, longitude]' simply restates the schema's required list, leaving city, name, cosmogram, zodiacType, houseSystem and ayanamsaId unexplained in either place.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Full NN/SN with rulers + conjuncts' identifies a specific resource (nodal axis detail) but relies on unexplained abbreviations NN/SN and never uses a verb. It does not differentiate this tool from the other evolutionary-astrology siblings (pluto_natal_condition, skipped_steps, soul_types, yesterday_sky), so an agent must infer which one to pick 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.
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 named alternative. The bracketed metadata states required parameters and cost but gives no context for choosing this over sibling tools such as astroway_evolutionary_pluto_natal_condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_evolutionary_pluto_natal_conditionPluto Natal ConditionCRead-onlyIdempotentInspect
JWG: Pluto sign+house+ruler+hard aspects.
[Group: Evolutionary Astrology] [Endpoint: POST /v1/evolutionary/pluto-natal-condition] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| pluto | No | |
| ruler | No | |
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| hardAspects | No | |
| pastLifeSignificance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety and mutability are covered. The description adds genuinely useful non-schema facts: the endpoint, the group, and a 10-credit Tier 1 cost, which matters for call budgeting. It stops there, disclosing nothing about computation latency or output size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the content list, and uses bracketed metadata lines that are easy to scan. No sentence is padded, though the opaque 'JWG' prefix spends characters without informing the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return structure need not be explained, and the annotation set covers the safety profile. What is missing is the interpretive context a 10-credit specialized astrology call warrants: what 'ruler' and 'hard aspects' resolve to, and how this differs from the other evolutionary endpoints. Adequate but thin for a 15-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only 33% schema description coverage, the description must compensate, and it does not. Its [Required: date, time, latitude, longitude] line merely restates the schema's required array and adds no format, unit, or default guidance. Cryptic inputs like the single-letter houseSystem codes and the bare cosmogram boolean are left entirely undocumented by both the description and the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The string "Pluto sign+house+ruler+hard aspects" does name the resource and the four outputs produced, so the agent can infer this computes a natal Pluto condition. But there is no verb, and the leading "JWG" is unexplained jargon that carries no meaning for an agent unfamiliar with Jeffrey Wolf Green's school. Differentiation from evolutionary siblings (nodal_axis_detail, skipped_steps, soul_types) is only implicit via the word 'Pluto'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use, when-not-to-use, or alternative-tool guidance. Nothing tells the agent whether this Pluto condition should be requested alone or alongside the nodal axis / skipped steps calls in the same Evolutionary Astrology group. Only the group tag hints at context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_evolutionary_skipped_stepsSkipped StepsCRead-onlyIdempotentInspect
Planets squaring nodal axis = unfinished karma.
[Group: Evolutionary Astrology] [Endpoint: POST /v1/evolutionary/skipped-steps] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| count | No | |
| source | No | |
| doctrine | No | |
| nodalAxis | No | |
| disclaimer | No | |
| skippedSteps | No |
TDQS
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 description's job is to add operational context - and it does, disclosing the cost (10 credits, Tier 1), the HTTP endpoint and the required inputs. It stops short of describing rate limits, auth requirements or the shape of the result, hence not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely compact and front-loaded: the definitional line comes first, then grouped metadata. No filler sentences, though the bracketed boilerplate ('[Group: ...]') is administrative scaffolding rather than task-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with 33% schema coverage, the description omits the sidereal/tropical choice, house system, ayanamsa defaults and the compact-mode fields/precision options that materially change output. The existence of an output schema excuses it from explaining return values, but not from covering the invocation surface.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 4 of 15 parameters are echoed as 'required' and schema description coverage is 33%; the description adds no meaning for ayanamsa, zodiacType, houseSystem, precision, fields or timezone beyond what the schema already says. For a low-coverage schema the description should compensate, and it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the astrological rule the tool encodes ('Planets squaring nodal axis = unfinished karma') and the bracketed metadata supplies the endpoint (POST /v1/evolutionary/skipped-steps), so the domain purpose is inferable. However, it never says what the tool actually computes or returns, and it draws no line between itself and close siblings like astroway_evolutionary_nodal_axis_detail or astroway_evolutionary_pluto_natal_condition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternative evolutionary tools. The only routing signal is the required-parameter list, which tells the agent how to call it but not when it is the right choice over the four other evolutionary-astrology siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_evolutionary_soul_typesSoul TypesCRead-onlyIdempotentInspect
JWG's 4-type by Pluto house quadrant.
[Group: Evolutionary Astrology] [Endpoint: POST /v1/evolutionary/soul-types] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description usefully adds the cost (10 credits, Tier 1) and the endpoint, which are real behavioral facts not present in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is compact and front-loads the method description ahead of the metadata block. It is arguably under-specified rather than verbose, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with low schema coverage and many sibling tools, this is too thin. The output schema exists so return values need not be explained, but method interpretation and parameter guidance are both absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description would need to compensate. Instead it merely repeats the four required fields already listed in the schema's required array (date, time, latitude, longitude) and says nothing about the 11 optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'JWG's 4-type by Pluto house quadrant' does identify the computed output and the technique's origin, so an expert can infer what the tool returns. However, it uses unexplained jargon and gives no differentiation from closely related siblings such as astroway_evolutionary_pluto_natal_condition or astroway_evolutionary_nodal_axis_detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this tool over its evolutionary-astrology siblings or what question it answers. The only operational context given is required parameters and cost, which is 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_evolutionary_yesterday_skyYesterday's SkyCRead-onlyIdempotentInspect
Forrest 2008 past-life method.
[Group: Evolutionary Astrology] [Endpoint: POST /v1/evolutionary/yesterday-sky] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| narrative | No | |
| disclaimer | No | |
| pastLifeImprint | No | |
| luminaryContacts | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is covered. The description adds genuinely useful non-schema behavior: the endpoint path and a concrete credit cost (10 credits, Tier 1), which an agent needs to budget against astroway_cost_estimate. It does not describe what the method produces, but with annotations carrying the safety burden 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and the method name is front-loaded, with bracketed metadata that is scannable. But it is essentially a metadata tag block rather than a description, so conciseness here reflects absence of content rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 restated, and annotations cover safety. Still, a 15-parameter, 33%-documented tool with only a bare method name and cost is under-specified: an agent cannot tell what the past-life method yields or how it differs from evolutionary siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. It merely repeats the four required fields (date, time, latitude, longitude) already listed in the schema, adding no format, default, or interaction guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific methodology ("Forrest 2008 past-life method") and tags the group "Evolutionary Astrology", which helps distinguish it from the prognostics/cosmobiology siblings. However, it never states what the tool actually computes or returns for the user, so the purpose stays vague to anyone who doesn't already know the Forrest terminology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 naming of alternative siblings such as astroway_evolutionary_nodal_axis_detail or astroway_evolutionary_soul_types. The metadata block conveys required inputs and cost but nothing about selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_family_genogramGenogramCRead-onlyIdempotentInspect
Multi-generational family pattern map.
[Group: Family Astrology] [Endpoint: POST /v1/family/genogram] [Required: grandparent, parent, child] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| child | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| parent | Yes | Birth 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| grandparent | Yes | Birth 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | No | |
| disclaimer | No | |
| karmicLine | No | |
| generations | No | |
| moonInheritance | No | |
| outerPlanetEcho | No |
TDQS
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 is lower. The description usefully adds the billing trait (10 credits, Tier 1) and the endpoint, which are real behavioral context an agent cannot get from annotations. It adds nothing about latency, auth, or what the result contains, but no contradiction exists with POST + readOnlyHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single content sentence is front-loaded and waste-free, but the remaining four bracketed tag lines are metadata fragments (group, endpoint, required, cost) rather than prose, making the definition feel like a stub. Nothing is verbose, yet the brevity is under-specification rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a high-complexity tool: three nested birth-data objects with timezone, ayanamsa, house-system and precision options. Output schema exists so return values need not be explained, but the description never says what a genogram computes or how the three generations relate, leaving an agent guessing about the tool's actual output intent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including rich nested per-field docs (tz handling, houseSystem letters, rejected short forms), so the schema does the heavy lifting and baseline is 3. The description only restates the three required parameter names, adding no new semantics for grandparent/parent/child, fields, or precision.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Multi-generational family pattern map" names a resource but no verb — it does not say whether it computes charts, draws a diagram, or interprets patterns. It is also not distinguished from close siblings such as astroway_family_system_pattern, astroway_family_parent_child_deep, or astroway_family_sibling_dynamics. 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.
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 mention of alternatives, despite four sibling family tools that overlap conceptually. The bracketed [Required: grandparent, parent, child] is input requirements, not usage routing, and duplicates the schema's required array.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_family_parent_child_deepParent-Child DeepBRead-onlyIdempotentInspect
Deep parent-child synastry analysis.
[Group: Family Astrology] [Endpoint: POST /v1/family/parent-child-deep] [Required: parent, child] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| child | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| parent | Yes | Birth 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | No | |
| mcContact | No | |
| disclaimer | No | |
| interpretation | No | |
| luminaryAspects | No | |
| inheritanceScore | No | |
| saturnCrossCount | No | |
| parentalAxisOverlay | No |
TDQS
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 behavioral context not present in structured fields: the HTTP endpoint and the cost of 10 credits at Tier 1, which matters for budget-aware agents. It says nothing further about latency, output shape, or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence plus four compact metadata lines, front-loaded with the purpose. Nothing is padded, though the 'Required' line duplicates what the schema already enforces, so it is not quite maximally lean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-chart synastry tool with nested birth objects, an output schema, and many close siblings, the description is minimally adequate. Because an output schema exists, return values need not be explained, but the 'deep' qualifier is never contrasted with any shallower or alternative family analysis, leaving the agent without routing context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested birth-data objects carry extensive inline documentation (coordinate rules, timezone behavior, houseSystem letters). The description only repeats the two required parameter names already declared in the schema, adding no semantics of its own. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Deep parent-child synastry analysis.' Adding 'synastry' tells the agent this is a two-chart comparison rather than a single natal read, which is more than the name alone conveys. However, it does not distinguish this from sibling family tools such as astroway_family_system_pattern, astroway_family_sibling_dynamics, or the relational synastry tools, so the boundary 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only routing information is the bracketed metadata block: group, endpoint, required params, and cost. There is no statement of when to choose this over the other family or relational synastry tools, and no exclusions or prerequisites. The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_family_saturn_return_cyclesSaturn Return CyclesBRead-onlyIdempotentInspect
Saturn return timing across a family cohort.
[Group: Family Astrology] [Endpoint: POST /v1/family/saturn-return-cycles] [Required: members] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| members | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | No | |
| members | No | |
| disclaimer | No | |
| concurrentTransits | No | |
| familyPhaseSummary | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so safety is covered. The description adds genuinely useful non-schema context in the cost line (10 credits, Tier 1) and the transport shape (POST endpoint). It says nothing about cohort limits, processing behavior, or how many charts are computed, which a 10-credit multi-member call would warrant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence delivers the purpose, and the bracketed metadata lines are compact and scannable rather than prose padding. Nothing is wasted, though the metadata block is presented without any explanatory framing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 paid multi-chart family tool the description never explains what defines a cohort (2-8 members), why role assignments matter, or what the credit charge buys, leaving meaningful gaps an agent cannot resolve from structured fields alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% and the nested birth-data object is documented in exceptional depth, so the schema carries most of the burden. The description only restates '[Required: members]', adding no semantics for the fields or precision compact-mode parameters and no explanation of the members array's 2-8 size constraint or what the optional role enum means for output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Saturn return timing) and a specific scope (across a family cohort), which separates it from the individual-return sibling astroway_prognostics_planetary_return and from other family tools like genogram or sibling_dynamics. It stops short of naming any sibling explicitly, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 statement of when a family-cohort Saturn return is the right call versus a single-chart planetary return, the family genogram, or the family system-pattern tools. The bracketed metadata (endpoint, required param, credit cost) is operational context, 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_family_sibling_dynamicsSibling DynamicsCRead-onlyIdempotentInspect
Inter-sibling synastry and dynamics.
[Group: Family Astrology] [Endpoint: POST /v1/family/sibling-dynamics] [Required: sibling1, sibling2] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| parent | No | Birth 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. | |
| sibling1 | Yes | Birth 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. | |
| sibling2 | Yes | Birth 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | No | |
| disclaimer | No | |
| moonAspect | No | |
| siblingScore | No | |
| mercuryAspect | No | |
| interpretation | No | |
| sharedParentImprint | No | |
| siblingHouseOverlay | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered without the description. The description adds genuinely new operational context the annotations lack — the endpoint and the 10-credit (Tier 1) cost — but says nothing about what is computed, whether both siblings need full birth data, or what the analysis depends on.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short and front-loaded, with structured metadata that is easy to scan. It is efficient, though the one-line gloss is close to a restatement of the title "Sibling Dynamics."
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with nested birth-data objects and a parent chart option, a single noun phrase is thin. The output schema covers return values, but the description leaves open what the analysis yields, whether parent is optional, and why one would pick this over the other family or relational endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested birth-data schemas are heavily documented (timezone rules, houseSystem letters, rejected short forms), so the schema carries the load. The description only repeats the required sibling1/sibling2 fields and adds no semantics for parent, fields, or precision, which is the baseline-3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Inter-sibling synastry and dynamics" names the resource (synastry between siblings) but uses no verb and never says what is produced or how it differs from close siblings such as astroway_relational_synastry, astroway_family_genogram, or astroway_family_parent_child_deep. An agent can guess the domain but not the output or the boundary against the relational family of tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance at all. The bracketed block gives group, endpoint, required fields and cost, but nothing that helps an agent choose this tool over the many other synastry/relational endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_family_system_patternFamily System PatternCRead-onlyIdempotentInspect
System-level family astrological signatures.
[Group: Family Astrology] [Endpoint: POST /v1/family/system-pattern] [Required: members] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| members | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | No | |
| members | No | |
| disclaimer | No | |
| systemSummary | No | |
| excludedThemes | No | |
| generationalShadow | No | |
| luminaryGhostContacts | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, closed-world), so the description needn't restate safety. It adds the endpoint, the credit cost (10 credits, Tier 1) and the required-parameter flag, which are genuinely useful operational facts, but says nothing about what the computation returns or any constraints on the member set beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short bracketed lines, purpose front-loaded, no filler or repetition. It is appropriately sized, though the metadata-block style means very little substance is packed into that compact form.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 tool that takes 2–8 full natal charts and sits among four other family tools, the description omits what a 'system pattern' actually analyzes and how it differs from its family siblings, leaving a routing gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% and the nested member schema is unusually rich, documenting date/time formats, timezone handling, and house-system letters in detail. The description contributes only '[Required: members]', which the schema already encodes in its required array, so it adds essentially no parameter meaning beyond the structured fields. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'System-level family astrological signatures' gestures at the tool's domain but names no specific computation or output. It does not distinguish this tool from close siblings like astroway_family_genogram, astroway_family_sibling_dynamics, or astroway_family_parent_child_deep, so an agent cannot tell which family endpoint to pick from the purpose alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use guidance and no exclusions or alternatives. '[Required: members]' and the cost line are preconditions, not usage routing, so the agent is left to infer the tool's role entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_financial_career_money_styleCareer Money StyleCRead-onlyIdempotentInspect
Income / earning archetype by sign.
[Group: Financial Astrology] [Endpoint: POST /v1/financial/career-money-style] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| careerMoneyStyle | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely useful operational context beyond them: the POST endpoint, the 10-credit Tier 1 cost, and the four required inputs. What it does not add is anything about what the output contains or how the 'sign' is derived, which is the main behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose line is front-loaded and the bracketed metadata block is compact and scannable, with no filler prose. It is efficient, though the single purpose line is arguably too terse for a 15-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with an output schema, the description need not explain return values, but it should still resolve which inputs drive the result and how it differs from sibling financial tools. It leaves 'by sign' undefined and offers no scope or differentiation, so an agent cannot confidently pick this over the other financial endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. It restates the four required fields (already in the schema's required list) and says nothing about the eleven optional parameters such as ayanamsa, zodiacType, houseSystem, precision, or fields, several of which materially change the result.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Income / earning archetype by sign' identifies the resource (an earnings archetype) but is a noun fragment with no verb and an ambiguous qualifier ('by sign' leaves unclear whether this is Sun-sign based or needs full birth data). It does not distinguish itself from near siblings like astroway_financial_spending_style, astroway_financial_wealth_house, or astroway_financial_investor_archetype, which all sit in the same Financial Astrology group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing to alternatives. The [Group: Financial Astrology] tag implies a topical family but gives no condition for choosing this tool over its eight financial siblings. An agent is left to guess from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_financial_investor_archetypeInvestor ArchetypeCRead-onlyIdempotentInspect
Investor type + bias + strength + pitfall by sign.
[Group: Financial Astrology] [Endpoint: POST /v1/financial/investor-archetype] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| archetype | No |
TDQS
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 covered. The description usefully adds the credit cost (10 credits, Tier 1) and the endpoint, which is real behavioral context an agent needs for budgeting. It does not add anything about latency, caching, or output shape, but an output schema exists so return values are covered elsewhere.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: the one-line summary of outputs comes first, followed by compact bracketed metadata. Nothing is padded. The fragmented, telegraphic style costs a little readability but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with only 33% schema description coverage, the description is thin: it confirms required inputs and cost but leaves the optional chart-configuration parameters unexplained. The existence of an output schema excuses it from describing return values, but the gap around the ayanamsa, zodiacType, houseSystem, and compact-mode parameters is not covered anywhere the agent will look.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. It merely repeats the four required fields (date, time, latitude, longitude), which the schema's required array already states, and says nothing about the eleven optional parameters or how ayanamsa/zodiacType/houseSystem affect the result.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Investor type + bias + strength + pitfall by sign" names the output components of the resource, which goes slightly beyond restating the title, but it is a noun fragment with no verb and no statement of what input it derives from. It also does not differentiate itself from close siblings such as astroway_financial_risk_tolerance, astroway_financial_spending_style, or astroway_financial_career_money_style. An agent can guess the theme but not the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives, and no conditions under which this tool should be preferred over the many other financial-astrology siblings. The bracketed metadata gives group, endpoint, required params, and cost, but none of that tells the agent when to reach for this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_financial_lucky_dayLucky Day of WeekCRead-onlyIdempotentInspect
Days traditionally aligned with the sign.
[Group: Financial Astrology] [Endpoint: POST /v1/financial/lucky-day] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| luckyDays | No |
TDQS
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 operational context — the POST endpoint and the 10-credit (Tier 1) cost — but says nothing about what the result contains or any limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short and front-loads its one purpose sentence, but that sentence is under-specified while the bulk of the text is bracketed boilerplate. Every line is compact, but the substance-to-boilerplate ratio is poor.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, paid (10-credit) financial-astrology tool, the description leaves the core computation undefined, and with 33% schema coverage many parameters remain undocumented in both places. An output schema exists so return values need not be explained, but the agent still cannot tell what the tool actually produces.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate, yet it only re-lists the four required parameters already declared in the schema's required array and adds no meaning (e.g., which sign is used, how latitude/longitude affects the answer).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The one substantive line, 'Days traditionally aligned with the sign,' is a noun fragment with no verb and no clear object — it never says it computes which weekday is auspicious for a given birth chart. Combined with the title 'Lucky Day of Week' it largely restates rather than explains the tool, and it does not distinguish itself from financial siblings like astroway_financial_lucky_numbers or astroway_business_electional_day.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no stated preconditions, and no mention of alternative tools such as astroway_financial_lucky_numbers or astroway_business_electional_day. The only routing signal is the '[Group: Financial Astrology]' tag.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_financial_lucky_numbersLucky NumbersCRead-onlyIdempotentInspect
Gematria-style number set per sign.
[Group: Financial Astrology] [Endpoint: POST /v1/financial/lucky-numbers] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| luckyNumbers | No |
TDQS
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 covered. The description adds genuinely useful non-annotation facts: the HTTP endpoint, the 10-credit Tier 1 cost, and the required inputs. No contradiction with the read-only annotation (POST can be a non-mutating compute endpoint). It stops short of describing anything about the computation itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and the key phrase is front-loaded with metadata block after, so nothing is padded. However it is under-specified rather than genuinely economical — the bracketed tags function as boilerplate, and the brevity reflects missing content more than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with heavy astrological configuration options, this is thin. The output schema exists so return values need not be re-explained, but nothing tells the agent which optional parameters matter or how the four required inputs drive the result, leaving a large gap against the tool's actual complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate and does not. Its only parameter content is the required list (date, time, latitude, longitude), which merely repeats the schema's required array, while the meaningful optional controls (ayanamsa, zodiacType, houseSystem, timezone) get no explanation in either place.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'Gematria-style number set per sign' names a resource and a rough method, so an agent can tell this computes sign-linked numbers rather than a full chart. But it never states the operative verb explicitly and does nothing to separate it from the many adjacent financial siblings (astroway_financial_lucky_day) or the numerology/gematria family (astroway_kabbalah_gematria, astroway_numerology_*). Purpose is decipherable but vague at the edges.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative routing anywhere in the text. The only guidance is the '[Group: Financial Astrology]' tag and the required-parameter list, neither of which tells an agent why it should pick this tool over astroway_financial_lucky_day or the gematria tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_financial_market_timingMarket-Timing Caution WindowsBRead-onlyIdempotentInspect
Generic caution windows (Mercury Rx, eclipses, Mars Rx, major macro aspects).
[Group: Financial Astrology] [Endpoint: POST /v1/financial/market-timing] [Required: date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| note | No | |
| disclaimer | No | |
| cautionWindows | No |
TDQS
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 one useful behavioral qualifier — these are 'generic' windows rather than personalized ones — but says nothing about scope, granularity, or what a 'caution window' means in practice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence stating the deliverable, followed by compact bracketed metadata. Little waste, though the bracket block mainly restates group/endpoint/cost rather than enriching the prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a domain-specific timing tool the description never clarifies what a caution window contains (dates, severity, aspects) or how it should be applied, leaving it minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: fields and precision are self-documented, date carries a pattern but no prose. The description only restates '[Required: date]', adding no format or semantic detail beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific deliverable — caution windows for market timing — and enumerates the drivers (Mercury Rx, eclipses, Mars Rx, macro aspects), which separates it from siblings like financial_lucky_day or wealth_cycle. It lacks an explicit 'unlike X' routing statement, so it is clear but not differentiated by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus other financial tools (lucky_day, risk_tolerance, wealth_cycle), no prerequisites, and no exclusions. The agent must infer context from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_financial_risk_toleranceRisk ToleranceBRead-onlyIdempotentInspect
Element-based risk tolerance + suggested allocation buckets.
[Group: Financial Astrology] [Endpoint: POST /v1/financial/risk-tolerance] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| riskTolerance | No |
TDQS
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 does add one genuinely useful behavioral fact not in the annotations: a fixed cost of 10 credits (Tier 1). It reveals nothing else about what is computed or returned, so with the lower annotation-bar this lands at 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and tight: the purpose sentence comes first and the bracketed metadata is compact and scannable. It wastes little space, though the endpoint/group lines are boilerplate rather than decision-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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; that lowers the burden. Against 15 parameters and a specialized domain, however, the description is thin—it never explains what 'element-based' means or how the many astrology parameters influence the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description would need to compensate, and it does not. It restates the four required fields (date, time, latitude, longitude) verbatim from the schema and adds no meaning for the astrological controls (houseSystem, zodiacType, ayanamsa, fields) that actually shape the risk output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and output: an element-based risk-tolerance reading plus suggested allocation buckets. That is enough to tell it apart from vague siblings, but it never supplies a verb and does not distinguish itself from close neighbors like astroway_business_risk_profile or astroway_financial_investor_archetype.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, and no mention of alternatives among the many financial siblings. The bracketed metadata (group, endpoint, cost) is administrative, not usage direction, so an agent gets no help choosing this over astroway_financial_market_timing or astroway_financial_investor_archetype.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_financial_savings_tipsSavings TipsCRead-onlyIdempotentInspect
Element-based saving recommendations.
[Group: Financial Astrology] [Endpoint: POST /v1/financial/savings-tips] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| element | No | |
| sunSign | No | |
| disclaimer | No | |
| savingsTips | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety and caching behavior are covered. The description adds genuine non-annotation context: the POST endpoint and a 10-credit Tier 1 cost, which is actionable for budget-aware agents. It stops there, saying nothing about what the response contains or whether inputs are echoed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The four-line bracket block is compact and front-loads the one-line purpose, so there is no wasted prose. However, the brevity is under-specification rather than economy: the same number of characters could have stated what an element-based tip actually is.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter chart-based endpoint with no usage guidance, the definition is too thin. The output schema means return values need not be described, but the meaning of "element-based," the relationship to sibling financial tools, and the semantics of the non-required tuning parameters are all missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, well below the threshold where the schema can carry the load, and the description contributes nothing beyond repeating the four required names already listed in the schema's required array. Ten-plus parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId) are left undocumented by both sources.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Element-based saving recommendations" names the resource and hints at the astrological basis, and the Financial Astrology group tag separates it from the platform's other families. But "element-based" is unexplained jargon and there is no verb describing what the tool computes or returns, so the agent cannot say what distinguishes it from astroway_financial_spending_style or astroway_financial_wealth_house.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no condition selecting it over the many financial siblings, and no exclusions. The bracket block lists endpoint and cost but nothing about the situation that calls for savings tips rather than spending style or risk tolerance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_financial_spending_styleSpending StyleCRead-onlyIdempotentInspect
Sign-specific spending pattern.
[Group: Financial Astrology] [Endpoint: POST /v1/financial/spending-style] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| spendingStyle | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, non-destructive read, so the safety burden is lifted. The description does add non-annotation context — the endpoint, the 10-credit Tier 1 cost, and the required inputs — which is genuinely useful for planning. It says nothing, however, about return content, formatting, or any limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded and the bracketed metadata lines are scannable and consistent (group, endpoint, required, cost). It is efficient, though arguably under-specified rather than concise; nothing in it is wasted verbiage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not explain return values, and annotations cover the safety profile. It supplies endpoint, cost, and required inputs, but given the broad 15-parameter surface and low schema coverage, it leaves too much implied about what distinguishes this tool and how to drive its options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate, and it does not. Its '[Required: date, time, latitude, longitude]' line merely restates the schema's required array, adding no semantics for the many undocumented optional params (zodiacType, houseSystem, cosmogram, city, name, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The one-line phrase 'Sign-specific spending pattern' names the resource (spending pattern) and its basis (sign), which is more than a tautology of the name. However, it is vague about the verb — it never says the tool computes/derives this from birth data — and it does not distinguish itself from close siblings like astroway_financial_career_money_style, astroway_financial_savings_tips, or astroway_financial_risk_tolerance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing to alternatives among the nine financial_* siblings. The only conditional information is the bracketed required-parameter list, which is task setup rather than usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_financial_wealth_cycleWealth Cycle (long)CRead-onlyIdempotentInspect
Long-cycle archetype tied to Jupiter (~12y) and Saturn (~29y) returns.
[Group: Financial Astrology] [Endpoint: POST /v1/financial/wealth-cycle] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| note | No | |
| element | No | |
| sunSign | No | |
| archetype | No | |
| disclaimer | No |
TDQS
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 operation, so the safety profile is covered. The description usefully adds cost (10 credits, Tier 1), the group and the POST endpoint, but says nothing about rate limits, latency, or what the 'archetype' output actually contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-sentence description is front-loaded and the bracketed metadata is compact and scannable, with no filler. It is efficient, though the metadata block is boilerplate rather than explanatory content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 prose, but for a 15-parameter tool with only 33% schema coverage and no usage guidance, the description is too thin. An agent cannot tell from this text when the tool applies or how the many optional chart parameters affect the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate — and it does not. It merely restates the four required parameters already declared in the schema (date, time, latitude, longitude) and adds no meaning for the 11 optional ones (ayanamsa, zodiacType, houseSystem, fields, precision, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the resource (a long wealth cycle) and its basis (Jupiter ~12y and Saturn ~29y returns), which is more informative than the bare title. However, it is a noun phrase with no verb — it never states that the tool computes/returns a wealth-cycle forecast — and it does not distinguish itself from nearby siblings such as astroway_financial_wealth_house or astroway_family_saturn_return_cycles, which also involve Saturn returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus the many other financial and cycle tools (market_timing, wealth_house, planetary_cycles). The bracketed metadata gives group, endpoint, required fields and cost, but never a use case, trigger, or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_financial_wealth_house2nd & 8th HouseBRead-onlyIdempotentInspect
Personal money (2nd) and shared resources (8th) house cusps + signs.
[Group: Financial Astrology] [Endpoint: POST /v1/financial/wealth-house] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| house2 | No | |
| house8 | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds the cost tier and endpoint, which is useful. But it doesn't describe output format, precision behavior, or the compact-mode 'fields' parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: one sentence plus bracketed metadata lines. Front-loaded with the core purpose. The bracket tags are structured and scannable. Could be slightly more informative without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
15 parameters, only 33% schema coverage, no output schema description in the tool definition despite has_output_schema=true (though the description needn't explain returns if schema exists). The description doesn't explain the many optional parameters like ayanamsa, houseSystem, zodiacType, or precision that significantly affect results. For a complex astrological calculation tool, this is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so many parameters (city, name, fields, ayanamsa, timezone, precision, zodiacType, houseSystem, timezoneOffset) have no description. The description only lists required params (date, time, latitude, longitude) which are already in the schema's required array. Baseline 3 is appropriate given partial coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: computes the 2nd and 8th house cusps and signs, and clarifies what the 2nd (personal money) and 8th (shared resources) houses mean. However, it doesn't distinguish from siblings like astroway_financial_career_money_style or other house-based tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no alternatives mentioned, no prerequisites. The [Required] and [Cost] tags add logistical info but don't tell the agent when this tool is the right choice versus other financial astrology tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geo_acgAstrocartography (A*C*G)BRead-onlyIdempotentInspect
Calculate ACG lines for all planets: the geodetic map lines where each planet was on an angle at birth.
[Group: Astro-Geography] [Endpoint: POST /v1/acg] [Required: date, time, latitude, longitude] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lines | No |
TDQS
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 bar is lower. The description adds operational context the annotations do not: the endpoint (POST /v1/acg) and the 50-credit Tier 3 cost, which is decision-relevant for an agent managing budget. It says nothing further about result size or line output, but the output schema covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One substantive sentence, front-loaded with the action and scope, followed by compact bracketed metadata (group, endpoint, required params, cost). No filler and nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter calculation tool, the definition says almost nothing about the optional inputs that materially alter the result, nor which chart/coordinate conventions apply. The output schema excusably covers return values, but the description leaves an agent unable to configure the call beyond the bare required four fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries the burden of compensation and does not meet it. It merely repeats the four required fields already declared in the schema and never mentions the impactful optional inputs (zodiacType, houseSystem, ayanamsa, timezone/timezoneOffset) that change the computed lines.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate A*C*G lines for all planets') and glosses what those lines are, so the agent knows exactly what is produced. It does not, however, distinguish itself from nearby siblings such as astroway_geo_acg_line_report, astroway_geo_solar_acg, or astroway_geo_acg_best_places, which all operate in the same A*C*G space.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this tool over the other geo/ACG siblings, and no exclusions or prerequisites are given. The cost line ('50 credits, Tier 3') hints at a budget consideration but is 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_geo_acg_best_placesBest places for a life categoryBRead-onlyIdempotentInspect
Rank cities against the astrocartography lines of a chart for one of the 19 life categories. Distance to a line is computed from the body hour angle and altitude rather than against a discretised polyline, so it is exact: the distance to a horizon line IS the altitude in degrees of arc, and a meridian line offset is the hour angle times cos(latitude). Supportive and challenging totals are returned separately with every contributing line and its distance, so a strong-but-turbulent city is distinguishable from an average one. Bundled GeoNames set of 34,028 places above 15,000 people.
[Group: Astro-Geography] [Endpoint: POST /v1/acg/best-places] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data plus a life category. Birth coordinates are optional and unused for the ranking: astrocartography lines are a property of the birth moment, not of the birth place. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pool | No | |
| sort | No | |
| type | No | |
| count | No | |
| orbKm | No | |
| places | No | |
| dataset | No | |
| category | No | |
| attribution | No | |
| minSeparationKm | No | |
| suppressedAsTooClose | No | |
| maxPossibleSupportive | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish safety (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds real behavioural context: the bundled GeoNames set is 34,028 places above 15,000 people, and supportive and challenging totals are returned separately with each contributing line and its distance. It does not cover rate limits or auth, but the search-space scope is genuinely valuable and not derivable from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The leading sentence is well front-loaded, but the second sentence spends substantial length on spherical-geometry mechanics ('the distance to a horizon line IS the altitude in degrees of arc, and a meridian line offset is the hour angle times cos(latitude)') that does not help an agent decide to call the tool or how to invoke it. The dataset-size sentence does earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and the description still adds ranking semantics and dataset scope. Combined with a 100%-covered schema that points to GET /v1/acg/categories for valid category values, an agent has what it needs. Only the sibling differentiation gap keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 category, sort, orbKm, minSeparationKm, limit, countries and precision in detail. The description adds no parameter-level syntax or defaults beyond what the schema provides. Baseline 3 applies when structured fields carry the full parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource: 'Rank cities against the astrocartography lines of a chart for one of the 19 life categories.' An agent immediately knows this returns a ranked city list for an ACG life category. It does not, however, distinguish itself from the very similarly named sibling astroway_geo_acg_by_category, so the sibling differentiation half of the criterion is unmet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no mention of alternatives, despite several close siblings (astroway_geo_acg, astroway_geo_acg_by_category, astroway_geo_acg_zones). The 50-credit Tier 3 cost is disclosed, which is useful for budgeting, but nothing tells the agent whether to reach for this tool or a cheaper sibling. Usage is only inferable from the description of what gets returned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geo_acg_by_categoryA*C*G by Life CategoryBRead-onlyIdempotentInspect
ACG lines that govern one area of life, ranked by astrological weight and, when a point is supplied, by proximity to it. Returns curated interpretation text per line in 11 languages.
[Group: Astro-Geography] [Endpoint: POST /v1/acg/by-category] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| lines | No | |
| point | No | |
| category | No | |
| language | No | |
| polarity | No | |
| radiusDeg | No | |
| requestedLanguage | No |
TDQS
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 fully covered. The description adds genuine behavioral detail beyond that — ranking by astrological weight, proximity re-ranking when a point is given, and a 50-credit Tier 3 cost. However, it also claims '11 languages' while the schema enum exposes 21, which undermines trust in the stated behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences front-load the core behavior, followed by three compact metadata lines (group, endpoint, cost) that are scannable and earn their space. The inaccurate '11 languages' figure is a defect in content rather than length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return structure need not be explained, and the input schema carries the parameter burden. What remains missing is sibling disambiguation within a very large geo_acg cluster and accuracy on the language count, so the definition is adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 body, fields and precision in depth; baseline is 3. The description contributes only marginal meaning, implying that a point parameter toggles proximity ranking and that a language selection controls interpretation text, without naming or elaborating either.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete resource and scope: A*C*G lines narrowed to one life category, ranked by weight. That is a clear verb-plus-resource statement an agent can act on. It falls short of 5 because it never distinguishes this tool from the crowded geo_acg family (astroway_geo_acg, astroway_geo_acg_categories, astroway_geo_acg_best_places), all of which plausibly return similar lines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no sibling is named as an alternative. The clause 'when a point is supplied, by proximity to it' hints at how results change, but not at when an agent should prefer this tool over astroway_geo_acg or astroway_geo_acg_best_places.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geo_acg_categoriesA*C*G Life CategoriesARead-onlyIdempotentInspect
Reference taxonomy: 19 areas of life, each naming the planet-and-angle lines that govern it with a weight and a polarity. Free, cacheable, drives the two endpoints below.
[Group: Astro-Geography] [Endpoint: GET /v1/acg/categories] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| language | No | |
| categories | No | |
| requestedLanguage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world). The description adds real context beyond that: it is free, cacheable, and a static reference taxonomy. These traits are not encoded in annotations and help an agent decide caching/retry behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is one tight sentence that leads with the resource and its shape, followed by compact metadata blocks. No filler, though the bracketed metadata is a bit scattered rather than fully front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-param reference tool with a full output schema and complete schema descriptions, this covers the essentials. The cost note flags an unknown-billing caveat, which is useful, though it leaves the cost genuinely unresolved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both params (fields, precision) are fully documented in the schema. The description adds nothing about them, which is acceptable under the baseline-3 rule when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (reference taxonomy of 19 life categories with planet-and-angle line weights and polarity) and its role. It distinguishes itself as a reference lookup rather than the geo analysis endpoints, though it doesn't name its closest siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Says it 'drives the two endpoints below,' implying it's a lookup to call before or alongside acg_by_category/acg_best_places, but never explicitly states when to call this versus those. Usage is implied 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_geo_acg_countriesCountries available for rankingBRead-onlyIdempotentInspect
Which countries the bundled city list can rank, and how many qualifying cities each has. Asking for a country with two cities and getting two results should not look like a bug.
[Group: Astro-Geography] [Endpoint: GET /v1/acg/countries] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| dataset | No | |
| countries | No | |
| attribution | No | |
| totalCities | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive). The description adds a useful behavioral expectation, that sparse results are correct rather than broken, plus cost (5 credits, Tier 1/2), which is not in the annotations. That is real added value, but it stops short of describing pagination, ordering, or the shape of the qualifying-city data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and terse: two sentences of prose plus bracketed metadata for group, endpoint, and cost. Every element is at least potentially useful. The second sentence is slightly awkwardly phrased, but it is not padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is not required. With annotations covering safety and cost spelled out in the metadata block, the only real remaining gap is that the description never routes the agent to the ranking tools this lookup is meant to precede. Adequate but not fully closed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so fields and precision are fully documented in the schema itself. The description adds nothing about either compact-mode parameter, so baseline 3 for high-coverage schemas applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (which countries the bundled city list can rank) and a specific piece of returned data (qualifying city count per country). It is clear enough to distinguish from siblings like astroway_geo_acg_categories or astroway_geo_acg_zones, but it never names those alternatives, so differentiation is implied rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The second sentence ('asking for a country with two cities and getting two results should not look like a bug') hints at a pre-call validation use case, but it is framed as reassurance rather than an instruction to call this tool before ranking. An agent has to infer the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geo_acg_line_reportA*C*G Line ReportARead-onlyIdempotentInspect
One line in full: its geometry, every life area it touches with weight and polarity, and the interpretation text for that planet-and-angle pair. Rising and setting curves arrive as several disjoint segments; all of them are returned.
[Group: Astro-Geography] [Endpoint: POST /v1/acg/line-report] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| line | No | |
| language | No | |
| categories | No | |
| interpretation | No | |
| requestedLanguage | No |
TDQS
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 bar is lower; the description still adds real value by disclosing the credit cost (20 credits, Tier 2), the endpoint, and the non-obvious return behavior that rising/setting curves arrive as several disjoint segments and all are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences cover the payload, and the bracketed group/endpoint/cost block is compact and genuinely useful metadata rather than filler. No redundancy or wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-line report tool with a rich output schema, the description covers scope, response shape, the disjoint-segment caveat, and cost. The main missing piece is routing guidance relative to the overview sibling tools, which the description never addresses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the embedded schema is exceptionally detailed (timezone/offset semantics, houseSystem letters, field paths, precision). The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: it reports on a single A*C*G line, enumerating its geometry, the life areas it touches with weight and polarity, and the interpretation text for one planet-angle pair. This clearly distinguishes it from the whole-map sibling astroway_geo_acg by scope ('One line in full'), though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the phrase 'One line in full' suggests this is the drill-down for a single line after locating it, but there is no explicit when-to-use statement, no prerequisites (birth data + planet/angle are required), and no named alternative such as astroway_geo_acg for the overview case.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geo_acg_zonesA*C*G Lines Near a PointARead-onlyIdempotentInspect
ACG lines passing within radiusDeg of one location, with the angular distance to each. The "what runs over this city" lookup.
[Group: Astro-Geography] [Endpoint: POST /v1/acg-zones] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| point | No | |
| radiusDeg | No | |
| nearbyLines | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds the return content (angular distance to each line) and the operational cost (50 credits, Tier 3), which is useful context. It does not, however, describe result ordering, line-count limits, or what happens at the radius boundary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the scope constraint and return content front-loaded, followed by a compact metadata block. Nothing is wasted and the essential information comes first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape needn't be explained, and annotations cover safety. The definition is nearly complete for a read-only query tool; the remaining gap is sibling disambiguation within the crowded geo/ACG group, which the description leaves to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema carries the parameter documentation, including the detailed timezone/ayanamsa/houseSystem notes. The description only echoes radiusDeg without adding syntax, units, or default meaning. Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: A*C*G lines passing within radiusDeg of one location, plus the angular distance returned. The colloquial gloss "what runs over this city" pins the intent. However, it does not differentiate itself from the dense ACG sibling family (astroway_geo_acg, astroway_geo_acg_line_report, astroway_geo_acg_best_places), so an agent must infer which one to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the phrase "what runs over this city" and the presence of a radiusDeg bound. There is no explicit when-to-use vs. when-not, and no named alternative among the many ACG siblings. Adequate but with clear gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geo_ccg_analysisCCG AnalysisBRead-onlyIdempotentInspect
Analyse Cyclo-Carto-Graphy (CCG) lines: progressed ACG lines at a target date with mundane/local aspects and latitude crossings.
[Group: Astro-Geography] [Endpoint: POST /v1/ccg-analysis] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Wrapper { natal: ChartInput } used by endpoints that take a base natal plus extra parameters in flat fields. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | No | |
| mcShift | No | |
| mundaneAspects | No |
TDQS
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 adds genuinely new context by disclosing the cost (100 credits, Tier 4) and the POST endpoint, which is real pre-call information. It says nothing about latency, rate limits, or what the progressed calculation consumes, so it stays at a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence that front-loads the purpose, followed by three compact metadata lines (group, endpoint, cost). Nothing is padded, and the most important information comes first, though the Cost/Endpoint block is boilerplate rather than prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 deep input schema covers all three top-level parameters. What is missing is the relationship to the many sibling geo endpoints, which matters for an agent choosing among ~15 geo tools. Adequate but with a clear gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 natal, targetDate, orb, point/latitude and the compact-mode fields thoroughly. The description adds only loose framing ('at a target date', 'latitude crossings') and no syntax or format detail beyond the schema. Baseline 3 for a schema that does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Analyse Cyclo-Carto-Graphy (CCG) lines') and expands the acronym, then narrows it to 'progressed A*C*G lines at a target date with mundane/local aspects and latitude crossings.' That distinguishes it in substance from the natal-oriented astroway_geo_acg, though it never names a sibling outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use or when-not-to-use guidance and never points at a neighbouring geo tool (acg, acg_best_places, local_space, solar_acg, relocation). The only routing signal is the cost line, which is not a selection criterion. An agent must infer the CCG-vs-ACG choice on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geo_eclipse_analysisEclipse AnalysisBRead-onlyIdempotentInspect
Analyse the impact of upcoming eclipses on a natal chart: aspects to natal planets, house activations, and Saros series context.
[Group: Astro-Geography] [Endpoint: POST /v1/eclipse-analysis] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Wrapper { natal: ChartInput } used by endpoints that take a base natal plus extra parameters in flat fields. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| eclipses | No |
TDQS
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 the cost tier (100 credits, Tier 4) and endpoint, which is genuinely useful for an agent budgeting calls, but says nothing about invocation constraints, response size, or the practical distinction of a 100-credit calculation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence stating the analysis and its outputs, followed by terse structured metadata (group, endpoint, cost). Every line earns its place; only the absence of any routing sentence keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and full annotations present, the description need not explain return values, and the cost line adds useful context. It remains thin on routing and scope, however: the 'upcoming eclipses' framing is not reconciled with the year/yearsRange inputs, and the overlap with eclipse-listing and eclipse-rendering siblings is left unresolved.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so body, fields and precision are already fully documented, and the baseline is 3. The description adds no parameter-level information at all — notably it never hints that a location point and year are required alongside the natal data, leaving that entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Analyse the impact of upcoming eclipses on a natal chart') and enumerates the outputs (aspects to natal planets, house activations, Saros series context), so the agent knows exactly what it produces. It does not, however, name or distinguish itself from close siblings such as astroway_calendar_eclipses or astroway_render_eclipse_path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The natal-chart framing implies the usage context (interpreting eclipses for an individual chart rather than listing eclipse dates), but there is no explicit when-to-use, when-not-to-use, or named alternative. The agent must infer the boundary against calendar_eclipses on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geo_geodeticGeodetic EquivalentsBRead-onlyIdempotentInspect
Convert geographic coordinates to geodetic chart degrees (Sepharial method): each longitude maps to a zodiac degree on the Earth's surface.
[Group: Astro-Geography] [Endpoint: POST /v1/geodetic] [Required: latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| method | No | sepharial | |
| latitude | Yes | ||
| longitude | Yes | ||
| obliquity | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| geodeticMC | No | |
| geodeticAscendant | No | |
| zodiacalLongitude | No |
TDQS
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 and determinism profile is covered structurally. The description adds genuinely useful non-annotation context: the cost (10 credits, Tier 1), the endpoint, and the required inputs. It says nothing extra about behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence carries the meaning, followed by compact bracketed metadata (group, endpoint, required params, cost). Nothing is padded, though the bracket lines are mechanical rather than additive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a 7-parameter tool with low schema coverage and obscure domain output ('geodetic chart degrees'), the description leaves the agent without enough to pick the right method or parse the result relative to sibling geo tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29%, so the description is expected to compensate, but it explains only the method ('Sepharial method') and even then omits the alternative enum value 'johndro'. Parameters like obliquity, year, precision, and fields get no added meaning from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb+resource pair ('Convert geographic coordinates to geodetic chart degrees') and names the Sepharial method, so the agent knows what the tool computes. It does not, however, distinguish it from other coordinate-to-chart geo siblings such as astroway_geo_acg or astroway_geo_zenith, leaving the boundary between them to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It lists the required parameters and endpoint but gives no when-to-use guidance, no exclusions, and no mention of when to prefer this over other astro-geography tools. The agent must guess whether this is the right geo tool for a given request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geo_local_spaceLocal Space ChartCRead-onlyIdempotentInspect
Calculate local space chart: azimuth and altitude of each planet from a given geographic location at the birth moment.
[Group: Astro-Geography] [Endpoint: POST /v1/local-space] [Required: date, time, latitude, longitude] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| count | No | |
| lines | No | |
| birthplace | No |
TDQS
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's one genuine addition is the cost disclosure (50 credits, Tier 3), which is useful for an agent deciding whether to spend budget, but it says nothing about latency, accuracy, or result determinism beyond the idempotent annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and tightly structured; the bracketed group/endpoint/required/cost lines are compact and scannable. The [Required] line is redundant with the schema's required array, costing a little density.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter geo tool sitting among many overlapping siblings (ACG, zenith, relocation, local-space influence zone), the description gives no routing guidance and no domain context on when a local space chart is the right output. The existing output schema excuses it from explaining return values, but the selection and parameter gaps leave it under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a compensation burden it does not meet. It merely restates the four required parameters already declared in the schema and adds no meaning for the optional ayanamsa, houseSystem, zodiacType, cosmogram, or precision parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate') and resource ('local space chart') and even defines the output conceptually (azimuth and altitude of each planet from a geographic location at the birth moment), which implicitly separates it from geo_acg or geo_zenith. However, it never names or contrasts any sibling, so the agent must infer the distinction from domain knowledge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of alternatives such as astroway_geo_local_space_influence_zone or astroway_geo_relocation, which share the same geo-astrology space. The bracketed metadata lists required inputs and cost but nothing about selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geo_local_space_influence_zoneLocal Space Influence ZoneBRead-onlyIdempotentInspect
Calculate the local space influence zone lines for a chart relocated to a specific city: lines on the map showing planet directions from that location.
[Group: Astro-Geography] [Endpoint: POST /v1/local-space/influence-zone] [Required: latitude, longitude, azimuth] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| azimuth | Yes | ||
| latitude | Yes | ||
| halfAngle | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| maxDistDeg | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| polygon | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior, and the description adds genuinely new operational context: the POST endpoint and a 50-credit Tier 3 cost. That billing disclosure is meaningful for an agent deciding whether to invoke. It stops short of describing response shape or any rate limits, but the annotation baseline is already covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight explanatory sentence followed by compact structured metadata lines (group, endpoint, required, cost). Front-loaded and waste-free, though the bracketed metadata block is boilerplate rather than description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/endpoint are covered. However, for a 7-parameter compute tool with low schema coverage, the undefined geometric parameters (azimuth, halfAngle, maxDistDeg) leave an agent unable to call it correctly without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29% (2 of 7 parameters documented). The description restates that latitude, longitude, and azimuth are required but never explains what azimuth means, nor what halfAngle or maxDistDeg control — leaving three numeric tuning parameters entirely opaque in both schema and prose. It compensates only marginally for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (calculate) and resource (local space influence zone lines), plus scope (a chart relocated to a specific city, lines showing planet directions from that location). It is distinguishable from astroway_geo_local_space and astroway_geo_relocation, though it never names those siblings to sharpen the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a chart relocated to a specific city' implies the usage context, but there is no explicit when-to-use guidance, no when-not-to-use, and no reference to the nearby alternatives (astroway_geo_local_space, astroway_geo_relocation, astroway_geo_zenith). The agent must infer which geo tool fits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geomancy_acquisitioAcquisitio: GainCRead-onlyIdempotentInspect
Gain, profit, abundance.
[Group: Geomancy (Agrippa)] [Endpoint: POST /v1/geomancy/acquisitio] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| figure | No | |
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is fully covered without the description. The description adds genuinely new behavioral context — the endpoint and the 10-credit (Tier 1) cost — but says nothing about auth, rate limits, or response shape beyond what the output schema covers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely terse: a keyword fragment followed by three bracketed metadata tags. Nothing is wasted and the meaning is front-loaded, but for a tool that never states an action, the brevity shades into under-specification rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an entity that is read-only, idempotent, has no required parameters, fully documented parameters and an output schema, the description need not explain return values. What remains missing is the core statement of what the tool actually produces, so it is adequate-but-gapped rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both optional parameters (fields, precision), and their descriptions are detailed (dotted-path syntax, decimal rounding guidance). The description adds no parameter meaning, which is acceptable here since the schema carries the full burden; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a semantic gloss of the figure's name ("Gain, profit, abundance") rather than a statement of what the tool does. There is no verb and no statement of the resource returned; an agent must infer from the name and the endpoint tag that this returns a geomancy reading for the Acquisitio figure. It is closer to a restatement of the title than a purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus the 14 sibling geomancy figures (albus, amissio, puer, rubeus, etc.), no prerequisites, no exclusions. The only implicitly useful cue is the group tag placing it in the Geomancy family, which helps a little but gives no selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geomancy_albusAlbus: WhiteCRead-onlyIdempotentInspect
Wisdom, peace, clarity.
[Group: Geomancy (Agrippa)] [Endpoint: POST /v1/geomancy/albus] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| figure | No | |
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuinely new operational context that annotations do not carry: the POST endpoint and a cost of 10 credits (Tier 1), which matters for an agent budgeting calls. It says nothing about what is returned or the semantics of the reading, so it is useful but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The three-word lead and three bracketed metadata lines are free of filler and reasonably front-loaded (meaning first, then group/endpoint/cost). However, this is under-specification rather than true conciseness: for a tool with fifteen interchangeable siblings, a three-word semantic gloss does not earn its place as the whole description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering the safety profile, a 100%-covered schema, and an output schema handling return values, the description's remaining job is purpose and sibling routing — exactly what it omits. An agent cannot tell from this text what distinguishes Albus from coniunctio or puella, nor what the call produces conceptually. The cost/endpoint lines help but do not fill the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters are optional (fields, precision), so the schema fully documents them; baseline 3 applies. The description adds no extra meaning about compact mode, dotted-path syntax, or precision defaults, so it neither compensates nor detracts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives only three symbolic keywords ("Wisdom, peace, clarity") for the figure Albus; it never states a verb or says what the tool actually returns (a figure reading? an interpretation? a chart?). Against 15 near-identical sibling geomancy tools (coniunctio, puella, rubeus, etc.) nothing here distinguishes this endpoint from them. The bracketed group/endpoint lines hint at the domain, but the prose itself is closer to a title gloss than a purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, no when-not-to-use, and no mention of alternative geomancy figures or how to choose Albus over the other fifteen figure endpoints. The only usable signal is the implicit "this is a geomancy figure" from the group tag. No guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geomancy_amissioAmissio: LossBRead-onlyIdempotentInspect
Loss, letting go, slipping away.
[Group: Geomancy (Agrippa)] [Endpoint: POST /v1/geomancy/amissio] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| figure | No | |
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds genuine behavioral context the annotations lack: the POST /v1/geomancy/amissio endpoint and the cost of 10 credits (Tier 1), which lets an agent budget calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the figure's meaning, with endpoint and cost in bracketed tags at the end. It wastes no words, but it is under-specified rather than concise — there is no wasted text because there is barely any text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 100% schema coverage handles parameters. What is missing is the operational framing — what the call actually produces for a geomancy figure and when it is the right figure to request — leaving a simple lookup tool only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters (fields, precision) are fully documented in the schema itself. The description adds nothing about parameters, so the baseline 3 applies — the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives the figure's gloss ('Loss, letting go, slipping away') but never states the operation — there is no verb such as 'retrieve' or 'interpret'. An agent can infer this returns the Amissio geomancy figure's reading and can distinguish it from siblings like astroway_geomancy_acquisitio by the meaning gloss, but the purpose remains implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance anywhere in the description. With 15 sibling geomancy figure tools plus other divination systems, nothing tells the agent how to pick Amissio over the other figures.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geomancy_caput_draconisCaput DraconisCRead-onlyIdempotentInspect
Dragon's Head: beginnings, threshold.
[Group: Geomancy (Agrippa)] [Endpoint: POST /v1/geomancy/caput-draconis] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| figure | No | |
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world behavior. The description adds useful non-annotation context: endpoint, group, and a cost of 10 credits (Tier 1). However, it does not explain what the tool returns or any other behavioral traits beyond cost and endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loads the symbolic meaning before bracketed metadata. It avoids waste, though the content is minimal for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a rich schema, annotations, and an output schema, the description never states the tool's action or purpose. It supplies endpoint and cost metadata, but an agent still cannot tell from the description alone that this tool provides a geomancy reading for Caput Draconis.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input parameters (fields, precision) are fully documented in the schema. The description adds no parameter meaning, but the baseline is 3 when the schema carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives only the symbolic meaning of Caput Draconis ('Dragon's Head: beginnings, threshold') without a verb or resource indicating what the tool actually does. It effectively restates the title rather than specifying an action such as retrieving a geomancy interpretation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus its many geomancy siblings (e.g., cauda_draconis, puer, via). It provides no context, prerequisites, or exclusions that would help an agent choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geomancy_carcerCarcer: PrisonBRead-onlyIdempotentInspect
Restriction, confinement, isolation.
[Group: Geomancy (Agrippa)] [Endpoint: POST /v1/geomancy/carcer] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| figure | No | |
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, and closed-world behavior. The description adds useful operational context beyond annotations, chiefly the cost (10 credits, Tier 1), group, and endpoint, but does not cover auth, rate limits, or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is extremely concise and well structured: thematic meaning first, then bracketed group, endpoint, and cost. Every element earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the description need not explain return values. It supplies cost, endpoint, group, and thematic meaning, but still lacks explicit usage guidance and a clear statement of what the tool does operationally.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters ('fields', 'precision') are fully documented in the schema. The description adds no parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives thematic keywords ('Restriction, confinement, isolation') for the Carcer figure, but no verb or explicit statement of operation. The bracketed group and endpoint imply it is the Carcer geomancy endpoint, so the purpose is inferable rather than clearly stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no conditions, and no mention of alternatives among the many geomancy sibling tools. The thematic keywords faintly imply a use case, but nothing tells an agent when to select this over another figure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geomancy_cauda_draconisCauda DraconisCRead-onlyIdempotentInspect
Dragon's Tail: endings, exit.
[Group: Geomancy (Agrippa)] [Endpoint: POST /v1/geomancy/cauda-draconis] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| figure | No | |
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile: readOnlyHint=true, idempotentHint=true, openWorldHint=false, destructiveHint=false. The description adds useful operational context such as the POST endpoint and 10-credit cost, but it does not disclose auth needs, rate limits, or return behavior beyond what the output schema provides. The POST endpoint does not contradict the read-only annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise: one symbolic line followed by clearly structured metadata (group, endpoint, cost). It is front-loaded and wastes little space, though the main line is a fragment rather than a full operational statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-required-parameter tool with a rich output schema and safety annotations, the description plus structured fields is close to callable. However, it still omits what the operation actually does or returns, and it provides no selection context relative to sibling geomancy figures.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both optional parameters ('fields' and 'precision') are fully documented in the input schema. The description adds no additional parameter semantics, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific geomantic figure and gives its symbolic meaning, but it never states the operation the tool performs (e.g., returns/retrieves a Cauda Draconis reading). It is identifiable as a geomancy figure tool, yet the purpose remains vague at the action level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no mention of alternatives among the many geomancy sibling tools. 'Endings, exit' is symbolic meaning, not an instruction about when this tool should be selected.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geomancy_coniunctioConiunctio: ConjunctionCRead-onlyIdempotentInspect
Union, meeting, partnership.
[Group: Geomancy (Agrippa)] [Endpoint: POST /v1/geomancy/coniunctio] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| figure | No | |
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and closed-world, so the safety profile is covered. The description adds genuinely useful non-schema context — the POST endpoint and the 10-credit (Tier 1) cost per call — which helps an agent weigh invocation. It stops there, offering no notes on inputs needed, rate limits, or result characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded, with the metadata tags earning their place by conveying endpoint and cost. The opening keyword line is concise but semantically thin rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Structurally the gaps are small: an output schema exists so return values need no explanation, both parameters are documented, and annotations cover safety. What is missing is the semantic core — what a Coniunctio reading represents and when to request it instead of another figure — leaving the tool only minimally callable with confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: `fields` and `precision` are both fully documented in the schema, including compact-mode syntax and rounding guidance. The description adds nothing about parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a bare keyword list — "Union, meeting, partnership" — which is the symbolic meaning of the Coniunctio geomantic figure, not a statement of what the tool does. There is no verb and no indication that it returns a geomancy reading, so an agent must infer the operation from the name/title alone. It also does nothing to distinguish this from the 15 sibling geomancy figure tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of when to prefer this figure over siblings like astroway_geomancy_puella or astroway_geomancy_via. The only context given is group/endpoint/cost metadata.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geomancy_fortuna_majorFortuna MajorCRead-onlyIdempotentInspect
Greater Fortune: lasting success.
[Group: Geomancy (Agrippa)] [Endpoint: POST /v1/geomancy/fortuna-major] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| figure | No | |
| source | No |
TDQS
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 covered. The description usefully adds the endpoint path and cost (10 credits, Tier 1), which is real behavioral context an agent cannot get from annotations. It does not contradict anything, but discloses nothing further about behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and front-loads the figure's meaning, with metadata tags on separate lines. Nothing is padded, but the substantive description is a single clause followed by bookkeeping lines, so there is little structure to reward.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and rich annotations, the description need not explain returns or safety. It covers endpoint and cost but omits what the tool actually produces or when it should be chosen over sibling geomancy tools, leaving the core functional statement absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters (fields, precision) have 100% schema description coverage with detailed usage notes. The description adds nothing about them, but that is acceptable since the schema already does the work — the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is essentially a restatement of the title: 'Fortuna Major' is glossed as 'Greater Fortune: lasting success.' It gives the figure's divinatory meaning but never states a verb or what the tool actually does (e.g., return a geomancy reading for the Fortuna Major figure). An agent must infer the function from the name and the '[Group: Geomancy]' tag.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus alternatives such as astroway_geomancy_fortuna_minor or the other fifteen geomancy figure tools. The group tag hints at a category but provides no selection criteria or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geomancy_fortuna_minorFortuna MinorCRead-onlyIdempotentInspect
Lesser Fortune: quick gains.
[Group: Geomancy (Agrippa)] [Endpoint: POST /v1/geomancy/fortuna-minor] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| figure | No | |
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and a closed world, so the safety profile is covered. The description adds genuinely useful operational context the annotations lack: the endpoint, the '10 credits (Tier 1)' cost, and the group. It does not, however, describe the nature of the result beyond flavor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and the metadata block is tidy and scannable, but the front-loaded sentence carries no functional information, so the leading real estate is spent on flavor rather than purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and full annotations, return values and safety need not be restated. What is missing is the core fact an agent needs — that this returns the 'Fortuna Minor' geomantic figure reading — making it hard to pick against the crowd of sibling geomancy tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both optional params (fields, precision) are fully documented in the schema. The description adds nothing about them, which is the correct baseline when the schema already does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with flavor text ('Lesser Fortune: quick gains') that essentially restates the title 'Fortuna Minor' without stating a verb or what the tool returns — presumably a geomantic figure reading. Nothing distinguishes it functionally from its many geomancy siblings such as astroway_geomancy_fortuna_major; only the group/endpoint metadata hints at context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, and no reference to alternatives despite ~14 sibling geomancy figure tools. The cost tier is metadata, 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_geomancy_laetitiaLaetitia: JoyCRead-onlyIdempotentInspect
Happiness, optimism, healing.
[Group: Geomancy (Agrippa)] [Endpoint: POST /v1/geomancy/laetitia] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| figure | No | |
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a safe, idempotent, non-destructive, closed-world read, so the safety profile is covered. The description does add genuine behavioral context beyond annotations: a cost of '10 credits (Tier 1)' and the endpoint POST /v1/geomancy/laetitia. It says nothing about auth, rate limits, or what the reading contains, but the cost disclosure is real added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is tight and front-loaded: the thematic keywords come first, then compact bracketed metadata. Every line earns its place (group, endpoint, cost), though the keyword-only opening leaves the core purpose underspecified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no parameters are required, so the calling mechanics are adequately covered by structured data. However, the description never conveys what the tool actually produces or when to reach for it, leaving a gap 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (fields, precision) are fully documented in the schema. The description adds no parameter meaning at all, so the baseline 3 for schema-driven param documentation is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a bare keyword list ('Happiness, optimism, healing') with no verb stating what the tool does. The Group tag '[Group: Geomancy (Agrippa)]' and the name/title make it inferable that this returns the Laetitia geomancy figure, but the description itself never states the action or resource explicitly. It distinguishes the figure from siblings only via the name, not the description text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no condition for selecting Laetitia over the other fifteen geomancy figures, and no mention of alternatives. The agent is left to infer everything from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geomancy_populusPopulus: The PeopleCRead-onlyIdempotentInspect
Crowd, gathering, public.
[Group: Geomancy (Agrippa)] [Endpoint: POST /v1/geomancy/populus] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| figure | No | |
| source | No |
TDQS
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 covered. The description adds genuinely useful operational context the annotations do not: the endpoint (POST /v1/geomancy/populus) and the cost (10 credits, Tier 1). It says nothing about what the reading contains or whether any prerequisites apply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded with no filler prose, and the bracketed metadata block is easy to scan. However, the brevity comes from under-specification rather than discipline — the keyword list occupies the place where purpose should be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and annotations cover the safety profile. But for a divination endpoint whose entire value is the meaning of the Populus figure, the description gives no indication of what a caller receives or how this figure's reading differs from its many siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (fields, precision) are documented there with examples and rationale. The description adds no parameter meaning of its own, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a bare keyword gloss of the figure's meaning ("Crowd, gathering, public") and simply restates the name and title. It never states a verb or what invoking the tool actually returns — a reading, an interpretation, a cast figure — so an agent cannot tell what the tool does beyond the word 'Populus'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no differentiation from the 15 sibling geomancy figures (Puer, Puella, Via, Rubeus, etc.) that share the identical pattern. An agent has no signal for choosing Populus over Albus or Coniunctio.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geomancy_puellaPuella: GirlCRead-onlyIdempotentInspect
Beauty, harmony, love.
[Group: Geomancy (Agrippa)] [Endpoint: POST /v1/geomancy/puella] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| figure | No | |
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed world, so the safety profile is covered. The description adds genuinely useful non-schema context – the group, the POST endpoint, and the cost (10 credits, Tier 1) – but says nothing about what the reading contains or any constraints on invocation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and front-loaded, but the brevity stems from under-specification rather than disciplined concision: the theme phrase carries no operational information, and the bracketed metadata is the only concrete content. It is neither wasteful nor adequately informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, annotations covering safety, zero required parameters, and full schema coverage, much of the burden is carried elsewhere, so the definition is not grossly incomplete. However, for a tool embedded among 16 near-identical geomancy siblings, the absence of any statement about what a reading returns or when this figure applies leaves a real selection gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both optional parameters (`fields`, `precision`) are fully documented in the schema itself; the description adds nothing about them. Per the baseline rule, a 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives only the divinatory keywords "Beauty, harmony, love" – the symbolic meaning of the Puella figure – with no verb or statement of what calling the tool actually does (e.g. returns a geomancy reading for this figure). It does not distinguish the tool from the 15 sibling geomancy figure tools beyond the figure name already present in the tool name. This is keyword association rather than a purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no indication of what input/question triggers this figure versus Puer, Albus, or any other geomancy sibling, and no prerequisites. The agent is left to infer everything from the one-word theme.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geomancy_puerPuer: BoyCRead-onlyIdempotentInspect
Young man, energy, impulse.
[Group: Geomancy (Agrippa)] [Endpoint: POST /v1/geomancy/puer] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| figure | No | |
| source | No |
TDQS
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 the endpoint and a 10-credit Tier 1 cost, which is genuinely useful billing context, but says nothing about what the invocation returns or whether any inputs beyond formatting matter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short and front-loaded, with no filler sentences. However, the one prose sentence conveys symbolic flavor rather than operational information, so brevity comes at the cost of substance rather than being efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 described, and the params are self-documenting. Still, the description never confirms what the tool produces (a geomancy figure reading) or how its output differs from the other figure endpoints, leaving an agent to guess from naming convention.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters (fields, precision) are fully documented in the schema at 100% coverage, so the baseline is 3. The description adds no parameter meaning of its own, which is acceptable here since the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Young man, energy, impulse' restates the symbolic meaning of the Puer figure rather than stating what the tool does. It never says it computes or returns a geomancy figure/reading, so an agent must infer the operation from the name and title alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 differentiation from the ~15 sibling geomancy figure tools (puella, rubeus, albus, etc.). The mystical keywords imply a divinatory context but give no condition for choosing this figure over another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geomancy_rubeusRubeus: RedCRead-onlyIdempotentInspect
Passion, anger, blood: ill omen.
[Group: Geomancy (Agrippa)] [Endpoint: POST /v1/geomancy/rubeus] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| figure | No | |
| source | No |
TDQS
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 genuinely useful context beyond annotations — the endpoint (POST /v1/geomancy/rubeus) and a concrete cost of 10 credits (Tier 1) — but says nothing about what the response contains or any limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The semantic line is front-loaded and the bracketed metadata (group, endpoint, cost) is compact and scannable with zero filler. It is arguably too sparse rather than bloated, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 spelled out, and annotations cover safety. Still, for a zero-required-param divination endpoint in a large sibling family, the description leaves the core behavior (that it yields the Rubeus figure's reading) implicit and gives no selection criteria.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both optional params (fields, precision) are fully documented in the schema with examples. The description adds no parameter detail, which is acceptable given the schema does the heavy lifting — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description conveys the specific figure's symbolism ('Passion, anger, blood: ill omen') and the endpoint/group identify it as the Rubeus geomancy figure, distinguishing it from the other 15 geomancy siblings by name. However, it never states what the tool actually does or returns — no verb like 'returns' or 'retrieves' — so the purpose is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no explanation of how to choose Rubeus over Acquisitio, Puella, or the other geomancy figures, and no prerequisites stated. The agent must infer everything from the figure's meaning alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geomancy_tristitiaTristitia: SorrowCRead-onlyIdempotentInspect
Sadness, depression, melancholy.
[Group: Geomancy (Agrippa)] [Endpoint: POST /v1/geomancy/tristitia] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| figure | No | |
| source | No |
TDQS
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. The description adds useful cost and endpoint context, but does not disclose return format, auth needs, or rate limits. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is very concise and front-loads the thematic keywords before structured metadata. The first sentence is arguably redundant with the title, but overall it wastes little space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return-value details are not required, but the description still fails to state what the tool produces (e.g., a Tristitia geomancy reading). For a tool with many similar siblings, this leaves a critical purpose gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both optional parameters (fields, precision) are fully documented in the schema. The description adds no parameter information, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Sadness, depression, melancholy" restates the title and gives thematic keywords, but never states a verb or what the tool actually does. It does not distinguish this geomancy figure from any of the dozens of sibling geomancy tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use guidance, no alternatives, and no prerequisites. Only metadata (group, endpoint, cost) is present, so an agent cannot tell when to select Tristitia over Laetitia or other figures.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geomancy_viaVia: The WayCRead-onlyIdempotentInspect
Movement, change, journey.
[Group: Geomancy (Agrippa)] [Endpoint: POST /v1/geomancy/via] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| figure | No | |
| source | No |
TDQS
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 fully covered elsewhere. The description's only added disclosure is the endpoint path and the 10-credit cost, which is mildly useful but says nothing about behavior, permissions, or result shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but the brevity reflects under-specification rather than economy: the single content sentence is a keyword list and the rest is bracketed metadata. There is nothing front-loaded that helps an agent decide or invoke.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 schema documents parameters fully. What remains missing is the tool's actual function and its relationship to the many sibling geomancy figures, which is the core information an agent needs here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (fields, precision) are thoroughly documented in the schema itself. The description adds no parameter meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Movement, change, journey" is a keyword gloss on the geomantic figure Via, not a statement of what the tool does or returns. It never uses a verb or names a resource, so an agent cannot tell whether this computes a chart, looks up a figure, or returns a reading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative guidance at all, despite 16 sibling geomancy tools (acquisitio, albus, puer, etc.) that an agent must choose between. Nothing routes the agent to or away from this figure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geo_paransParansCRead-onlyIdempotentInspect
Crossing points of two ACG lines: the places where two planets were simultaneously angular. Returns every planet-to-planet crossing with its coordinates.
[Group: Astro-Geography] [Endpoint: POST /v1/parans] [Required: date, time, latitude, longitude] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| count | No | |
| parans | No |
TDQS
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 the annotations lack: it returns every planet-to-planet crossing, and it is a Tier 3 endpoint costing 50 credits. It says nothing about result size, ordering, or how the location affects the crossing set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight clauses front-load the definition before the metadata block, and nothing is redundant. The bracketed group/endpoint/required/cost lines are structured and scannable. It is close to the right length for a low-coverage tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter geolocation/astrology tool with 33% schema coverage the definition is thin. It omits the when-to-use decision against astroway_geo_parans_star and any explanation of the settings that drive the computation, leaving core behavior for the agent to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. It merely restates the four required parameters (date, time, latitude, longitude) found in the schema, and gives no meaning for the many optional settings (zodiacType, ayanamsa, houseSystem, fields, precision, cosmogram) that materially change the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description defines the resource precisely: crossing points of two A*C*G lines where two planets were simultaneously angular, and states what the tool returns (every planet-to-planet crossing with coordinates). An agent can tell this is a parans/crossing-lines tool rather than a general ACG tool. It does not, however, distinguish itself from the close sibling astroway_geo_parans_star.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of the astroway_geo_parans_star alternative or any other geo sibling. The only routing help is the bracketed required-params and cost metadata, which tells the agent about inputs and price but not 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_geo_parans_starStar-planet parans (Brady)ARead-onlyIdempotentInspect
Latitudes where a fixed star and a planet are angular at the same moment, which is how Brady tabulates a paran: not a place, a latitude. Twelve event pairs per star and planet (rise, set, culminate, anticulminate, minus meridian against meridian, which is a shared right ascension rather than a paran). Each row carries the houses of the technique in plain form: which body does what, the latitude, and the meridian where it happens at this chart moment. Solved on hour angles rather than by intersecting map polylines, so the latitude is exact rather than quantised to the polyline step.
[Group: Astro-Geography] [Endpoint: POST /v1/parans/star] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for star-planet parans. Coordinates are not used: a paran is a latitude, and which latitudes exist depends on the moment, not on where the native was born. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| gmst | No | |
| note | No | |
| type | No | |
| count | No | |
| stars | No | |
| parans | No | |
| horizon | No | |
| julianDay | No | |
| obliquity | No | |
| latitudeLimit | No | |
| starsWithNoParans | No | |
| requestedStarsNotFound | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so safety is covered; the description instead adds genuinely non-obvious behaviour — twelve event pairs per star-planet combination, exactness because it is solved on hour angles rather than quantised to a polyline step, and the row contents (which body does what, latitude, meridian). It does not mention credit cost or rate behaviour, but those appear in the endpoint context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core definition is front-loaded and every sentence carries information, but the prose is dense and jargon-laden in places ('minus meridian against meridian', 'equator mirror') and could be tightened without loss. It is appropriately sized for a conceptually unusual tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 enumerated, and the description still sketches the row shape. Combined with annotations covering safety and a fully described input schema, an agent has enough to call the tool correctly; only the sibling-routing condition is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including rich text on timezone, ayanamsa, and the star/planet/horizon/latitudeLimit sub-fields, so the schema already does the heavy lifting. The tool description itself adds only the note that birth coordinates are unused for parans, which duplicates the body-schema text rather than extending it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening clause states precisely what is computed — 'Latitudes where a fixed star and a planet are angular at the same moment' — and immediately clarifies the output class ('not a place, a latitude'), which separates it from the ACG/polyline map tools in the sibling set. It also pre-empts a likely confusion by noting that 'minus meridian against meridian' is a shared right ascension, not a paran.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than routed: an agent can infer this is the tool for star-planet paran latitudes, and the contrast with polyline intersection hints at when not to use map-based tools. However, it never names the obvious alternative (astroway_geo_parans) or states the conditions that select between them, so the agent must infer the boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geo_phase_returnPhase ReturnBRead-onlyIdempotentInspect
Find dates when a planet returns to its same synodic phase relative to the Sun (e.g. next Venus heliacal rising, next Mars retrograde station).
[Group: Astro-Geography] [Endpoint: POST /v1/phase-return] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| phase | No | |
| planet | No | |
| returns | No |
TDQS
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 genuinely useful cost context (100 credits, Tier 4) plus the endpoint, but says nothing about latency, result granularity, or the fact that a natal chart must be supplied at all.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, purpose and examples front-loaded, followed by compact bracketed metadata. Nothing is wasted, though the [Group]/[Endpoint] boilerplate is low-value filler for an agent that already has annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, the description omits a key operational fact baked into the schema: the call requires full birth data (date, time, latitude, longitude) plus a year range, and it never says why an observer location matters for a phase-return search.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already carries the parameter documentation and the baseline of 3 applies. The description adds nothing beyond it, and it notably never explains how the target planet/phase is identified or that startYear/endYear bound the search window.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: "Find dates when a planet returns to its same synodic phase relative to the Sun," backed by two concrete examples (Venus heliacal rising, Mars retrograde station). That is enough for an agent to distinguish it from generic ephemeris siblings. It does not, however, explicitly contrast itself with close cousins like astroway_calendar_planetary_cycles or astroway_calendar_planetary_phases.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The two examples imply when the tool is useful (finding the next occurrence of a phase event), which is better than nothing. But there is no explicit when-to-use statement, no exclusions, and no named alternative for adjacent cases like retrograde period listings or planetary cycles.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geo_relocationRelocation ChartARead-onlyIdempotentInspect
Recalculate a natal chart for a new geographic location (same birth moment, different lat/lng). Returns new houses and planet house positions.
[Group: Astro-Geography] [Endpoint: POST /v1/relocation] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Wrapper { natal: ChartInput } used by endpoints that take a base natal plus extra parameters in flat fields. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| delta | No | |
| natal | No | |
| relocated | No |
TDQS
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 fully covered by structured data. The description adds that it returns new houses and planet house positions, plus a cost tier, which is modest extra context; with an output schema present, return-value disclosure is not strictly required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences lead with the core action and follow with the return content, and the metadata block (group, endpoint, cost) is compact and useful. No filler, though the sentence could be slightly more front-loaded on the 'what changes'.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema, complete annotations, and 100% schema coverage, the description only needs to convey purpose and scope, which it does. The main shortfall is the lack of sibling differentiation within a very crowded geo_* namespace.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the natal/target structure, the timezoneOffset semantics, and the houseSystem letters. The description only loosely implies the target coordinates ('different lat/lng') and adds nothing the schema does not already state, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Recalculate a natal chart') and pins down the exact operation ('same birth moment, different lat/lng'), so the agent understands this is a relocation, not a fresh chart. It does not, however, name or contrast any sibling such as astroway_geo_local_space or astroway_geo_geodetic, which an agent scanning the large geo_* family would need.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'same birth moment, different lat/lng' implies the usage scenario, but there is no explicit when-to-use or when-not-to-use guidance and no named alternative. With ~15 sibling geo tools, the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_geo_solar_acgSolar A*C*GARead-onlyIdempotentInspect
Astrocartography for the solar return of a given year: the ACG map of the moment the Sun comes back to its natal longitude. Planet names carry an SR suffix.
[Group: Astro-Geography] [Endpoint: POST /v1/solar-acg] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | No | |
| lines | No |
TDQS
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 outside annotations: the 100-credit Tier 4 cost, the POST endpoint, and the SR suffix convention for planet names. It stops short of describing any constraints on the year (range, validity) or the impactful solar-return computation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences front-load the core definition before the SR suffix detail, followed by three short metadata lines. No sentence is wasted; slightly denser formatting (bracketed metadata lines) is acceptable but not maximally clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the input schema is exhaustively annotated, so the description need not explain return values or parameters. It supplies the domain concept (solar-return ACG) and the SR naming convention, which is the key interpretive detail. The main gap is the absence of routing guidance against sibling geo tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the body fields, timezone handling, ayanamsa, houseSystem letters, fields/precision compact mode, and the required year. The description adds nothing about parameters. Baseline 3 is appropriate when the schema carries the full parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (A*C*G map) and a precise scope: the solar return of a given year, defined as the moment the Sun returns to its natal longitude. It also flags the SR planet-name suffix, which helps an agent interpret output. It does not explicitly distinguish itself from the sibling astroway_geo_acg (natal ACG), leaving the agent to infer the difference from 'solar return'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'for the solar return of a given year' — an agent can infer this is the tool for a solar-return ACG rather than a natal one. However, there is no explicit when-to-use statement, no mention of the natal ACG alternative, 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_geo_zenithZenithCRead-onlyIdempotentInspect
Find all geographic locations where a given planet is exactly at the zenith (MC) at the birth moment.
[Group: Astro-Geography] [Endpoint: POST /v1/zenith] [Required: date, time, latitude, longitude] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| count | No | |
| points | No |
TDQS
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 adds genuinely new behavioral facts absent from the annotations: the POST endpoint and the 50-credit Tier 3 cost, which an agent needs for budget decisions. It stops there, offering no note on compute weight or result size, though the presence of an output schema lowers the need for return-shape detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The output is short, front-loaded with the core sentence, and the bracketed metadata block is scannable rather than wasteful. Nothing is padded, though the bracketed lines repeat information (required parameters) that the schema already provides.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter endpoint with one-third schema coverage, a single sentence plus four bracketed metadata lines leaves substantial gaps: which planet, how the geography is returned, and how it relates to the sibling geo tools. The existence of an output schema excuses it from describing return values, but not from the input and selection gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries real burden here and does not meet it. It contributes nothing about date/time format, latitude/longitude semantics, ayanamsa, house system, or the compact-mode fields/precision controls. Worse, it references 'a given planet' as an input while no planet parameter exists in the schema, which can send an agent looking for a field that isn't there.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Find all geographic locations where a given planet is exactly at the zenith (MC) at the birth moment.' That is far more informative than the bare title 'Zenith' and lets an agent place it in the geo/astrocartography family. It does not, however, distinguish itself from the many similar siblings (astroway_geo_acg, astroway_geo_local_space, astroway_geo_parans), so an agent still has to guess which geo variant to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternative among the numerous geo siblings. The phrase 'at the birth moment' weakly implies a natal-chart context, but nothing tells the agent when zenith lines are preferable to ACG, local space, or paran output.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hd_circuitryHD Circuitry AnalysisBRead-onlyIdempotentInspect
Analyze which of the 3 Circuits (Tribal, Individual, Collective) and 6 Sub-circuits are activated in a Human Design chart based on defined channels.
[Group: Human Design] [Endpoint: POST /v1/hd/circuitry] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| circuits | No | |
| totalActive | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful context beyond that: the POST endpoint, credit cost (20 credits, Tier 2), and grouping, letting the agent reason about budget and scope. It does not describe computation nuances, but the output schema covers return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded single sentence stating the purpose, followed by compact metadata lines (group, endpoint, required, cost). Nothing is padded, though the bracketed metadata is boilerplate rather than description prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 15 parameters and low schema description coverage, a complex HD computation tool, and many sibling tools, the description is thin: it omits which optional parameters matter, how chart inputs interact, and how this output relates to other HD endpoints. The existing output schema and annotations cover returns and safety, but the parameter and routing gaps leave it under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate. Instead it merely restates the four required parameters (date, time, latitude, longitude) that the schema already marks required, adding no meaning for the 11 optional parameters (ayanamsa, timezone, fields, precision, houseSystem, zodiacType, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Analyze') and resource ('Circuits and Sub-circuits activated in a Human Design chart'), including the enumeration of 3 circuits and 6 sub-circuits and the basis ('defined channels'). It is distinguishable from related HD siblings, though it does not name which sibling reads the underlying channels/hologenetic data, so the boundary is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no statement of when this is preferable to siblings such as astroway_hd_hologenetic or astroway_hd_human_design, and no prerequisites or exclusions. The only situational information is the required-parameter and cost metadata, which is 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_hd_design_dateHD Design DateCRead-onlyIdempotentInspect
Find the Design date (the moment 88° of solar arc before birth) for a given birth moment, the unconscious imprinting point.
[Group: Human Design] [Endpoint: POST /v1/hd/design-date] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| birthJd | No | |
| designJd | No | |
| designDate | No |
TDQS
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), so the description is not carrying that burden. It adds the credit cost (10 credits, Tier 1) and the HTTP endpoint, which are genuinely useful decision inputs not present in structured fields. It does not describe latency, failure modes, or what the returned date/body looks like.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The concept is front-loaded in one dense, well-formed sentence, followed by a compact bracketed metadata block. There is little wasted text, though the required-parameters line duplicates the schema's required array and adds no information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 15 parameters, three enums of non-obvious values, and only 33% schema coverage, the definition is thin for a tool of this complexity. An output schema exists, so return values need not be explained, but the description never clarifies how the many optional configuration parameters affect the computed Design date, nor whether they matter for this endpoint at all.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description must compensate, and it does not. It merely repeats the four required parameters already declared in the schema's required array, leaving cryptic optional inputs such as houseSystem (single-letter enum values P, K, R...), zodiacType, cosmogram, ayanamsaId and fields unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Find) plus a precisely defined resource: the Design date, explicitly glossed as 'the moment 88° of solar arc before birth' and 'the unconscious imprinting point'. That is far more than a restatement of the name. It does not, however, distinguish this from siblings such as astroway_hd_human_design, which likely also surfaces a Design date.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 HD siblings, nor any prerequisites or exclusions. The bracketed block lists required params and cost, which is operational metadata rather than usage guidance. An agent must infer the use case entirely from the concept definition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hd_dream_raveDream RaveBRead-onlyIdempotentInspect
Calculate the Dream Rave chart: sleep type, active gates in lower centers (Sacral, Solar Plexus, Root), and dream themes.
[Group: Human Design] [Endpoint: POST /v1/hd/dream-rave] [Required: date, time, latitude, longitude] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| type | No | |
| centers | No | |
| channels | No | |
| weakPoints | No | |
| activeGates | No | |
| activePortals | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false, closed world), so the bar is lower. The description adds genuinely useful non-annotation context: the POST endpoint, the credit cost (50 credits, Tier 3), and which inputs are mandatory, which matters for budgeting and for a metered API.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-sentence purpose is front-loaded and followed by compact bracketed metadata; nothing is padded. The metadata lines are terse and skimmable, though they could be folded more tightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a 15-parameter metered tool at 33% schema coverage, the definition leaves the agent without guidance on which optional parameters matter for a Dream Rave computation or when this chart is the right call, making it minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate. It only restates the four required fields, which the schema's own 'required' array already conveys, and says nothing about timezone/timezoneOffset handling, ayanamsa, houseSystem, fields, or precision for this chart type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate the Dream Rave chart') and enumerates the distinctive outputs (sleep type, active gates in lower centers, dream themes), which separates it from neighboring HD tools like astroway_hd_human_design or astroway_hd_hologenetic. It stops short of explicitly naming when a sibling is the better choice, so it is clear-but-not-disambiguating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only operational guidance is the [Required] and [Cost] metadata lines; there is no statement of when to reach for Dream Rave versus other HD charts, no prerequisites, and no exclusions. The '[Group: Human Design]' tag groups it but does not route the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hd_group_overlayHD Group OverlayBRead-onlyIdempotentInspect
Calculate a combined HD group overlay chart for 2 or more people, showing collectively defined centers and channels.
[Group: Human Design] [Endpoint: POST /v1/hd/group-overlay] [Required: inputs] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| inputs | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| openCenters | No | |
| definedCenters | No | |
| definedChannels | No |
TDQS
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 covered. The description adds genuinely useful non-schema facts—endpoint, credit cost of 100 (Tier 4)—but says nothing about auth, rate limits, or how the collective overlay is derived from the inputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence followed by a compact metadata block (group, endpoint, required, cost) that earns its space by carrying cost and routing information. No filler or restated boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is not required, and cost/endpoint are covered. What is missing is the decision context for a tool that sits among several multi-person HD tools: no trigger conditions, no contrast with compatibility or penta, and only a vague hand-wave at what 'collectively defined centers and channels' means in the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the nested birth-data object is documented in depth by the schema itself. The description contributes only '2 or more people', which matches the array's minItems: 2, and '[Required: inputs]'; it explains nothing about fields, precision, or the per-person parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Calculate a combined HD group overlay chart') and scopes it to '2 or more people, showing collectively defined centers and channels', which is enough to separate it from single-chart siblings. It does not explicitly name the nearest alternatives (compatibility, penta), so sibling differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to pick this over astroway_hd_human_design_compatibility, astroway_hd_penta, or astroway_hd_hologenetic for a multi-person reading. The only adjacent guidance is the bracketed '[Required: inputs]' and cost tag, which are prerequisites, not usage conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hd_hologeneticHologenetic ProfileARead-onlyIdempotentInspect
Calculate the Gene Keys hologenetic profile (Activation Sequence, Venus Sequence, Pearl Sequence) from HD gate activations.
[Group: Human Design] [Endpoint: POST /v1/hd/hologenetic] [Required: date, time, latitude, longitude] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| spheres | No | |
| pearlSequence | No | |
| venusSequence | No | |
| activationSequence | No |
TDQS
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 adds genuinely non-derived operational context: the endpoint, the credit cost (50 credits, Tier 3), and the mandatory inputs — the cost tier in particular is a real selection signal an agent would not otherwise have.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: purpose first, structured metadata second. Zero filler. The bracket block is dense but each line (group, endpoint, required, cost) carries information, so nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, high-complexity domain calculation, the description covers purpose and cost but leaves the parameter space largely unexplained and gives no guidance on how the hologenetic profile relates to the other HD tools. An output schema exists, so return-shape detail is fairly excused, but the usage and parameter gaps keep this at minimum-viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, and the description compensates only by restating the four required fields that the schema already marks required. It adds nothing about ayanamsa, zodiacType, houseSystem, fields, precision, or the timezone vs timezoneOffset tradeoff, which are the parameters most likely to be misused.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate the Gene Keys hologenetic profile') and names the concrete sub-outputs (Activation, Venus, Pearl Sequence) and the input basis (HD gate activations). An agent can tell this apart from astroway_hd_human_design or astroway_hd_circuitry 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no conditions or prerequisites, and no explicit routing to or away from any of the many sibling HD tools. The bracketed block lists required inputs and cost, which are facts about invocation rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hd_human_designHuman Design ChartBRead-onlyIdempotentInspect
Calculate a full Human Design BodyGraph chart: type, strategy, authority, profile, definition, incarnation cross, centers, channels, and gate activations. Centre identifiers are PascalCase with no separator and are stable: Head, Ajna, Throat, G, Heart, SolarPlexus, Spleen, Sacral, Root. channels[].centerA and centerB use the same nine. These identifiers are English and have no localised twin yet, unlike the sign and planet names on /public/moon-phase.
[Group: Human Design] [Endpoint: POST /v1/human-design] [Required: date, time, latitude, longitude] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| type | No | |
| cross | No | |
| input | No | |
| centers | No | |
| profile | No | |
| channels | No | |
| designJd | No | |
| strategy | No | |
| authority | No | |
| definition | No | |
| activations | No | |
| notSelfTheme | No | |
| personalityJd | No | |
| designActivations | No | |
| personalityActivations | No |
TDQS
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), but the description adds genuinely new operational context: cost (50 credits, Tier 3), the POST endpoint, the required inputs, and a stability guarantee for the centre identifiers. The identifier-stability promise in particular is behavior the schema cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is correctly front-loaded in the first sentence, but the second and third sentences spend most of the budget on output identifier spelling and a tangent about localised names on an unrelated /public/moon-phase endpoint, which does not help an agent invoke this tool. The bracketed metadata block is dense but useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not explain return values, yet it largely re-explains them (centre names) instead of covering the gaps: sibling routing and the semantics of the 11 undocumented optional inputs. Required parameters and cost are covered, so it is adequate but not complete for a 15-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate and it does not. It documents output identifiers rather than inputs, saying nothing about ayanamsa, ayanamsaId, zodiacType, houseSystem, precision, fields, cosmogram, timezone vs timezoneOffset precedence, or name/city defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate a full Human Design BodyGraph chart') and then enumerates the exact outputs: type, strategy, authority, profile, definition, incarnation cross, centers, channels, gate activations. An agent can distinguish this from the focused siblings (circuitry, incarnation cross, compatibility) without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'full' weakly implies this is the comprehensive base chart versus the narrower hd_* siblings, but there is no explicit when-to-use statement, no named alternative, and no exclusion. With 14+ sibling tools in the same Human Design family, the agent is left to infer routing entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hd_human_design_compatibilityHD CompatibilityARead-onlyIdempotentInspect
Calculate Human Design connection chart (compatibility) between two people: electromagnetic connections, compromise, dominance, and companionship channels.
[Group: Human Design] [Endpoint: POST /v1/human-design/compatibility] [Required: chart1, chart2] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| chart1 | No | |
| chart2 | No | |
| dominance | No | |
| compromise | No | |
| connections | No | |
| companionship | No | |
| attractionScore | No | |
| electromagnetic | No | |
| combinedDefinition | No | |
| combinedDefinedCenters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely useful operational context not in annotations: the HTTP endpoint and a credit cost (100 credits, Tier 4). It does not add anything about latency, rate limits, or failure modes, so it falls short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and dense with specifics, and the bracketed metadata lines are short and scannable rather than prose filler. Slightly more framing than strictly necessary, but nothing wastes the agent's attention.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich input schema, an output schema (so return values need no explanation), and full annotations, the description only needs to establish purpose, cost, and endpoint — which it does. The main remaining gap is routing guidance relative to sibling HD tools, which is what keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, including very rich nested descriptions for chart1/chart2 (date/time formats, lat/lon, timezone handling, houseSystem letters) plus fields and precision. The description only restates the two required params, adding no meaning beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (calculate), a specific artifact (Human Design connection chart), and the exact scope (between two people), then enumerates the four channel types returned. This distinguishes it clearly from sibling overlay/group tools such as astroway_hd_group_overlay and astroway_hd_penta, which are not pairwise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternative. The description tells the agent what the tool computes but leaves it to infer that this is the pairwise-compatibility tool rather than, say, a group overlay, and says nothing about prerequisites beyond the required-params note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hd_human_design_transitsHD TransitsARead-onlyIdempotentInspect
Calculate current Human Design transit activations. Optionally overlay on natal chart to show combined defined centers and channels.
[Group: Human Design] [Endpoint: POST /v1/human-design/transits] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Transit moment plus an optional natal date, time and offset to overlay the activations on. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| combinedCenters | No | |
| combinedChannels | No | |
| transitActivations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful operational context the annotations cannot: the cost (50 credits, Tier 3) and the underlying endpoint. It still says nothing about latency, size of the returned activation set, or whether the transit moment defaults to now.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences carry the whole functional story, with the optional overlay stated second. The bracketed metadata lines are compact and each adds information (group, endpoint, cost) rather than restating the name, so nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich nested input schema at 100% coverage, an output schema for return values, and annotations covering the safety profile, the description only needed to state purpose, optional overlay, and cost — which it does. It is marginally thin on when the tool should be preferred over the adjacent HD tools, but nothing required to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 date/time/lat/lon, timezone handling, ayanamsa, houseSystem and the natal overlay fields. The description only echoes the overlay capability and adds no syntax, format, or defaulting detail beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate ... Human Design transit activations') and adds scope ('optionally overlay on natal chart to show combined defined centers and channels'), which separates the overlay mode from a plain transit read. It does not name any sibling such as astroway_hd_design_date or astroway_hd_group_overlay, so an agent must infer the boundary itself. The word 'current' is also slightly at odds with a tool whose body requires an explicit date and time.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Optionally overlay on natal chart' implies the two modes of use, so the agent can infer when to supply natalDate/natalTime. However, there is no explicit when-to-use guidance, no exclusion (e.g. group vs single-chart overlays), and no pointer to the sibling tools that cover adjacent Human Design operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hd_incarnation_crossIncarnation CrossARead-onlyIdempotentInspect
Return the Incarnation Cross from birth data (or directly from gate numbers). Includes cross name, type, and theme description. With gate numbers, personalitySunLine and designSunLine decide the angle: lines 1-3 and profile 4/6 are right angle, 4/1 juxtaposition, 5 and 6 left angle.
[Group: Human Design] [Endpoint: POST /v1/hd/incarnation-cross] [Required: date, time, latitude, longitude] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| type | No | |
| gates | No | |
| lines | No | |
| theme | No |
TDQS
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 earns credit for adding operational facts beyond them: the 50-credit Tier 3 cost, the POST endpoint, and the deterministic line/profile rule that decides right-angle vs juxtaposition vs left-angle. It does not describe failure modes or what happens when conflicting inputs (birth data plus gates) are supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences front-load the outcome, the input modes, and the returned components, followed by a compact bracketed metadata block for group, endpoint, required fields, and cost. Nothing is padded or repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 15 parameters and low schema description coverage, this is thin, but the presence of an output schema removes the obligation to explain return values, and the metadata block supplies cost/endpoint/required fields. The gate-number input path mentioned in prose but absent from the schema is a real completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description would need to carry weight, and it does not — it names the four required fields and nothing else. Worse, it references inputs ('gate numbers', 'personalitySunLine', 'designSunLine') that do not appear anywhere in the input schema, which risks confusing an agent about how to trigger the alternate mode.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb and resource ('Return the Incarnation Cross') and names the two input modes (birth data or gate numbers), plus what the result contains (name, type, theme). It does not explicitly differentiate itself from nearby siblings such as astroway_hd_human_design or astroway_hd_hologenetic, which presumably also derive from birth data, but the resource itself is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies two usage paths ('from birth data (or directly from gate numbers)'), which is a useful fork, but never states when to prefer this tool over the other Human Design endpoints or any exclusions/preconditions. Usage has to be inferred from the domain.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hd_pentaPenta ChartARead-onlyIdempotentInspect
Calculate the Penta (group) chart for 3–5 people: combined BodyGraph showing group dynamics and collective conditioning.
[Group: Human Design] [Endpoint: POST /v1/hd/penta] [Required: inputs] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| inputs | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| role | No | |
| size | No | |
| channels | No | |
| definedCenters | No | |
| pentaAuthority | No |
TDQS
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 safety is covered. The description adds behaviorally relevant metadata the annotations do not carry: the credit cost (100 credits, Tier 4), the POST endpoint, and the required parameter set, all of which help an agent decide whether the call is worth making.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and wastes no words, and the bracketed metadata lines are compact and skimmable. The bracketed block is somewhat boilerplate-heavy, but it does not bury the functional description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description covers scope, cost, endpoint and required input adequately for a computation tool. The remaining gap is sibling disambiguation against the other group/overlay tools, which leaves an agent to infer the boundary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% and the nested input-object schema is unusually detailed (timezone vs timezoneOffset semantics, houseSystem letter codes, whitespace/alias rejections). The description only restates that inputs is required and that the list holds 3–5 people, both already encoded in required/minItems/maxItems, so it adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Calculate the Penta (group) chart") plus a concrete scope constraint ("3–5 people") and what it produces ("combined BodyGraph showing group dynamics and collective conditioning"). It stops short of differentiating itself from close siblings like astroway_hd_group_overlay, which an agent could easily confuse with a group-chart tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 3–5 person constraint implicitly tells the agent when this tool is applicable, but there is no explicit when-to-use guidance, no exclusions, and no routing to alternatives such as astroway_hd_group_overlay or astroway_hd_human_design_compatibility, which also handle multiple people.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hd_rave_new_yearsRave New YearsARead-onlyIdempotentInspect
Calculate Rave New Year dates (exact moment Sun enters Gate 41) for a range of years. Max range: 50 years.
[Group: Human Design] [Endpoint: POST /v1/hd/rave-new-years] [Required: startYear, endYear] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| endYear | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| startYear | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| years | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful context beyond that: the 50-year range limit, the credit cost (10 credits, Tier 1), and the endpoint. It stops short of describing failure behavior for out-of-range requests, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose sentence, then uses a compact bracketed metadata block for group, endpoint, required fields, and cost. No wasted prose. Slightly fragmentary but every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. The description supplies purpose, cost, range constraint, and required inputs, leaving only year-input semantics unstated. Complete enough for correct invocation of a simple two-parameter range calculator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: fields and precision are documented in the schema, while startYear/endYear carry no field-level description. The description names them as required and ties them to the 50-year range cap, but adds no format or boundary semantics (accepted year range, BC handling, ordering). Adequate but does not fully compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Calculate") and resource ("Rave New Year dates"), then pins the concept precisely as "the exact moment Sun enters Gate 41". That definition clearly distinguishes it from sibling design-date and transit tools without needing to name them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The "Max range: 50 years" constraint gives a usable boundary, but there is no explicit when-to-use or when-not-to-use guidance relative to siblings like astroway_hd_design_date or astroway_hd_dream_rave. Usage is only implied by the distinctive purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hd_sensitivityHD Time SensitivityBRead-onlyIdempotentInspect
Analyze how sensitive the HD chart type/authority is to birth time changes. Returns windows where the chart is stable vs. in transition.
[Group: Human Design] [Endpoint: POST /v1/hd/sensitivity] [Required: date, time, latitude, longitude] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| confidence | No | |
| transitions | No | |
| stableWindow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the bar is low; the description adds the useful facts that the result is a stability/transition window analysis and that the call costs 50 credits (Tier 3) at POST /v1/hd/sensitivity. It stops short of saying how the perturbation is performed (step size, range of minutes), which is the one behavior an agent would want to know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the purpose front-loaded, followed by compact metadata lines for group, endpoint, required fields and cost. The required-fields line duplicates the schema's required array, a minor redundancy, but nothing else is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needed, and the safety profile is covered by annotations. However, for a 15-parameter tool at 33% schema coverage, the description leaves the agent unable to tell which optional parameters matter for an HD-type sensitivity run, and it never defines what a 'window' or 'transition' means quantitatively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
15 parameters with only 33% schema description coverage, and the description adds no parameter meaning at all beyond restating the four required fields already declared in the schema's required array. The many optional astrology parameters (zodiacType, houseSystem, ayanamsa/ayanamsaId, cosmogram, precision, fields) are left undocumented here, and the description gives no hint which of them actually influence an HD sensitivity result.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource: analyzing HD chart type/authority sensitivity to birth-time changes, and even previews the return shape ('windows where the chart is stable vs. in transition'). It is clearly distinct from sibling chart-computation tools like astroway_hd_human_design, though it never names an alternative to differentiate against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: an agent can infer this is for validating whether a known birth time is precise enough to fix HD type/authority, but there is no explicit when-to-use, when-not-to-use, or pointer to a sibling when sensitivity is irrelevant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_helb_bonifications_maltreatmentsBonifications/MaltreatmentsBRead-onlyIdempotentInspect
Planet conditions per Valens: 9 categories.
[Group: Hellenistic: Brennan tradition] [Endpoint: POST /v1/hellenistic/brennan/bonifications-maltreatments] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_brennan_bonifications_maltreatments.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| sect | No | |
| source | No | |
| doctrine | No | |
| conditions | No | |
| disclaimer | No | |
| perPlanetSummary | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description usefully adds the cost (10 credits, Tier 1) and the endpoint, but says nothing about the nature of the nine categories or any rate/usage constraints beyond cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the one-line purpose and then packs group, endpoint, required params, cost, and alias into tight bracketed lines. Efficient; the redundancy of restating the four required params is the only minor waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 alias/endpoint/cost framing is complete for an alias tool. However, with 15 params at 33% schema coverage and a domain term ('9 categories') left unexplained, the description is only marginally adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% across 15 parameters, so the description carries the burden of compensating — but it merely repeats the four required params (date, time, latitude, longitude) already listed in the schema and says nothing about the ayanamsa, timezone, houseSystem, fields, precision, or zodiacType options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource and scope ('Planet conditions per Valens: 9 categories') and explicitly identifies itself as a Cursor-friendly alias for the canonical `astroway_hellenistic_brennan_bonifications_maltreatments`, which helps distinguish it from the many HB siblings. The intent is somewhat jargon-dependent ('bonifications/maltreatments'), but an agent can place it in the Hellenistic/Brennan family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The required inputs, endpoint, and credit cost are given, and the alias relationship implies when it is interchangeable with the canonical tool. There is no explicit when-to-use-vs-alternatives guidance against the other Brennan/Hellenistic tools (e.g. joys_of_planets, lots_15).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_helb_profections_detailProfections DetailCRead-onlyIdempotentInspect
Annual profection year-lord with full classical condition.
[Group: Hellenistic: Brennan tradition] [Endpoint: POST /v1/hellenistic/brennan/profections-detail] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_brennan_profections_detail.)
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | No | |
| ageYear | No | |
| doctrine | No | |
| yearLord | No | |
| disclaimer | No | |
| yearEndDate | No | |
| profectedSign | No | |
| yearStartDate | No | |
| monthlyProfections | No | |
| yearLordNatalContext | No | |
| profectedHouseFromAsc | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds only metadata (group, endpoint, cost) but nothing about behavioral traits such as what the response contains, pagination, or error conditions. For a read/compute tool with annotations in place, this is thin but not contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the key concept. The bracketed metadata block (group, endpoint, cost) adds operational utility without bloat. It's efficient, though the core sentence could be more action-oriented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return-value explanation isn't required. The description covers group, endpoint, cost, and alias relationship, but omits what the tool actually computes and when to use it relative to the many profection/time-lord siblings. Adequate but with notable gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents parameters including timezoneOffset, houseSystem, targetAge, and fields/precision. The description adds no parameter meaning beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description reads 'Annual profection year-lord with full classical condition,' which tells the agent what the output is but not what the tool does as an action. It's close to a restatement of the title/name rather than a verb+resource statement. It does not distinguish itself from siblings like astroway_prognostics_profections or astroway_hellenistic_brennan_time_lord_stack.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use guidance, no alternatives, and no exclusions. The only routing hint is the note that it is a 'Cursor-friendly alias' for astroway_hellenistic_brennan_profections_detail, which is about naming, not usage selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_helb_triplicity_rulersTriplicity RulersBRead-onlyIdempotentInspect
Dorothean triplicity rulers (day/night/common).
[Group: Hellenistic: Brennan tradition] [Endpoint: POST /v1/hellenistic/brennan/triplicity-rulers] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_brennan_triplicity_rulers.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| sect | No | |
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint, idempotentHint, non-destructive, closed-world), so the description is not the main carrier here. It does add genuinely useful operational context in the cost (10 credits, Tier 1) and the required-parameter list, but says nothing about output shape or computation limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in one line, followed by compact bracketed metadata (group, endpoint, required, cost) and a short alias note. Nothing is padded, though the bracketed blocks are metadata rather than explanatory content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 endpoint/cost/required blocks cover the minimum needed to invoke the call. However, for a 15-parameter tool with low schema description coverage, the description does not do enough to round out the missing parameter meaning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% and 15 parameters exist, so the description is expected to compensate but does not. It lists the four required parameters (date, time, latitude, longitude), which merely repeats the schema's required array, and leaves the remaining eleven parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific technique (Dorothean triplicity rulers) and its scope variants (day/night/common), which is a concrete astrological resource rather than a tautology. It also explicitly identifies itself as an alias of a named sibling, aiding disambiguation, though it does not explain how it differs from other Hellenistic triplicity-family tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 selection criteria against alternatives. The alias note tells the agent this is interchangeable with one sibling, but nothing indicates the context in which a caller should reach for this technique.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_helb_zodiacal_releasing_fortuneZR from FortuneBRead-onlyIdempotentInspect
Zodiacal Releasing from Lot of Fortune: body/livelihood periods.
[Group: Hellenistic: Brennan tradition] [Endpoint: POST /v1/hellenistic/brennan/zodiacal-releasing-fortune] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_brennan_zodiacal_releasing_fortune.)
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | No | |
| summary | No | |
| doctrine | No | |
| disclaimer | No | |
| l1Sequence | No | |
| lotOfFortune | No |
TDQS
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 genuinely useful non-schema facts — the 10-credit cost tier, the POST endpoint, and the Brennan-tradition grouping. It does not describe what a "body/livelihood period" output looks like (decade/peak structure), but with full annotations and an output schema that gap is tolerable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the technique and its meaning in the first line, followed by tightly packed metadata blocks. Every element is short, though the alias/endpoint/cost boilerplate is administrative rather than task-guiding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 plus a 100%-covered input schema carry the parameter and safety burden. The description supplies the remaining context an agent needs (cost, endpoint, tradition, alias mapping), leaving little missing for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the rich nested birth-data schema documents date/time/latitude/longitude, timezone handling and the fields/precision compact-mode params in detail. The description adds no parameter meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific Hellenistic technique (Zodiacal Releasing from the Lot of Fortune) and its subject matter (body/livelihood periods), which is enough to separate it from the sibling ZR-from-Spirit tool. It stops short of explicitly contrasting itself with that sibling, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of the sibling astroway_helb_zodiacal_releasing_spirit or astroway_hellenistic_brennan_zodiacal_releasing_fortune. An agent has to infer from the name alone which releasing technique to pick and when Fortune rather than Spirit is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_helb_zodiacal_releasing_spiritZR from SpiritARead-onlyIdempotentInspect
Zodiacal Releasing from Lot of Spirit: career/action periods.
[Group: Hellenistic: Brennan tradition] [Endpoint: POST /v1/hellenistic/brennan/zodiacal-releasing-spirit] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_brennan_zodiacal_releasing_spirit.)
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | No | |
| summary | No | |
| doctrine | No | |
| disclaimer | No | |
| l1Sequence | No | |
| lotOfSpirit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds useful non-annotation context: cost (10 credits, Tier 1) and the exact endpoint. It says nothing about the response shape or computation depth, but with an output schema present that omission is minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then tightly bracketed metadata for group, endpoint, and cost, ending with the alias note. Every element earns its place, though the bracketed lines are more structural boilerplate than prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich output schema, the description need not explain return values; it complements the schema with cost and endpoint. The only real gap is the absence of any routing guidance against the Fortune/Loosing-of-Bond siblings in this crowded Hellenistic family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested body schema is thoroughly documented (date/time formats, timezone behavior, house system letters). The description adds no parameter meaning beyond this, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific technique and object ('Zodiacal Releasing from Lot of Spirit') plus the interpretive domain ('career/action periods'). It implicitly distinguishes from the sibling 'zodiacal_releasing_fortune' by naming the Lot of Spirit, but it never explicitly contrasts the two, leaving that inference to the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by 'career/action periods'; there is no explicit when-to-use, when-not, or pointer to the Fortune counterpart. The alias note helpfully clarifies it is a duplicate of the canonical brennan tool, which is a genuine usage signal, but no comparative 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_helb_zr_loosing_of_bondZR Loosing of BondBRead-onlyIdempotentInspect
Loosing of Bond detection within ZR sequence.
[Group: Hellenistic: Brennan tradition] [Endpoint: POST /v1/hellenistic/brennan/zr-loosing-of-bond] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_brennan_zr_loosing_of_bond.)
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| source | No | |
| fromLot | No | |
| lotInfo | No | |
| doctrine | No | |
| disclaimer | No | |
| loosingOfBondEvents | No |
TDQS
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 covered. The description's genuine additions are cost (10 credits, Tier 1) and the canonical endpoint, which an agent can use for budgeting and auditing. It still says nothing about response behavior, pagination or the years window's effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose line followed by short bracketed metadata tags; nothing is padded or repeated. The tags earn their place as cost/group/alias signals.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich output schema, full parameter documentation and safety annotations, the definition is serviceable for invocation. The remaining gap is that an agent cannot tell from this text what the technique means or when it should be preferred over the sibling ZR tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested body schema is unusually well documented (formats, timezone handling, houseSystem casing). The description adds no parameter meaning of its own, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific technique and scope ('Loosing of Bond detection within ZR sequence') and pins it to the Hellenistic: Brennan tradition, which lets an agent place it in the right family. It falls short of 5 because the jargon is never unpacked and it doesn't distinguish itself from near siblings such as zr_peak_periods or zodiacal_releasing_fortune/spirit. The alias note does usefully resolve it against astroway_hellenistic_brennan_zr_loosing_of_bond.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 other ZR or zodiacal-releasing siblings, and no prerequisites or exclusions. The only routing information is endpoint, group and cost metadata.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_helg_antiscia_hellenisticAntiscia (Hellenistic)BRead-onlyIdempotentInspect
Solstitial antiscia per Hellenistic conventions.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/antiscia-hellenistic] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_greenbaum_antiscia_hellenistic.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No | |
| antiscionContacts | No |
TDQS
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 usefully adds the credit cost (10, Tier 1) and the underlying endpoint, but says nothing about what the computation returns or any limits beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence followed by compact bracketed metadata; no sentence is wasted. The bracket-block style is terse and machine-oriented rather than prose, but it is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. Still, for a 15-parameter, 10-credit calculation tool the description leaves optional-parameter behavior and result content entirely to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% across 15 parameters, so the description must compensate; it merely repeats the four required fields already marked as required in the schema. The many optional parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId) get no elucidation from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific technique (solstitial antiscia) with a named tradition (Hellenistic conventions), which separates it from the general astroway_aspects_antiscia and from astroway_helg_contra_antiscia. The alias note also identifies the Greenbaum-lineage sibling it duplicates, aiding disambiguation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The alias line tells the agent this is interchangeable with astroway_hellenistic_greenbaum_antiscia_hellenistic, which is a useful routing hint. However there is no stated condition for choosing antiscia over contra-antiscia or the aspects variant, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_helg_contra_antisciaContra-AntisciaBRead-onlyIdempotentInspect
Equinoctial contra-antiscia.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/contra-antiscia] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_greenbaum_contra_antiscia.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No | |
| contraAntiscionContacts | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely non-schema information: the credit cost (10 credits, Tier 1) and the fact that this is a duplicate alias of another endpoint, which helps an agent avoid double-billing for the same computation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded domain term followed by bracketed structured metadata (group, endpoint, required, cost, alias). No filler sentences, though the body is arguably too terse to be self-sufficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter astrological computation with only 33% schema description coverage, the description leaves the caller without an explanation of the technique, the effect of ayanamsa/houseSystem/zodiacType, or how results are shaped.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, with 15 parameters including enums for ayanamsa, zodiacType and houseSystem. The description merely restates the four required fields already declared in the schema's required list and adds no syntax, defaults, or meaning for the undocumented parameters, so it neither compensates for the gap nor adds value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the deliverable ('equinoctial contra-antiscia') and, via the alias note, distinguishes itself from the canonical sibling astroway_hellenistic_greenbaum_contra_antiscia. However, it never states what the tool actually computes or returns (positions? aspect pairs?) – it is a bare domain noun phrase with no verb, opaque to anyone not already versed in Greenbaum Hellenistic technique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 guidance. The alias note ('Cursor-friendly alias for ...') implicitly tells the agent either name works, which is marginally useful, but nothing explains when contra-antiscia analysis is the right choice versus siblings like astroway_helg_antiscia_hellenistic or astroway_hellenistic_greenbaum_dodekatemoria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_helg_daimon_tyche_axisDaimon-Tyche AxisCRead-onlyIdempotentInspect
Spirit-Fortune axis as primary chart spine.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/daimon-tyche-axis] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_greenbaum_daimon_tyche_axis.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| axis | No | |
| basis | No | |
| source | No | |
| spirit | No | |
| fortune | No | |
| doctrine | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely new operational context - the 10-credit Tier 1 cost and the required parameter set - but says nothing about authentication needs, rate limits, or what the response actually contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, bracket-structured, and front-loads the key facts (group, endpoint, required params, cost). The opening phrase 'as primary chart spine' is interpretive filler, but the remainder is dense and earns its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a 15-parameter sidereal-capable calculation in a family with many near-identical Hellenistic siblings, the description omits what distinguishes this axis output from related Greenbaum tools and how the timezone/zodiac options affect the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only 33% schema description coverage, the description is expected to compensate, and it does not. It merely repeats the four already-required fields (date, time, latitude, longitude) that the schema marks as required, leaving timezone vs timezoneOffset, ayanamsa/ayanamsaId, zodiacType, and houseSystem semantics entirely unexplained in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (Spirit-Fortune / Daimon-Tyche axis) but never states what the tool actually does with it - no verb like 'computes' or 'returns'. It does provide sibling differentiation by explicitly identifying itself as the Cursor-friendly alias of `astroway_hellenistic_greenbaum_daimon_tyche_axis`, which is genuinely useful among hundreds of siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance: nothing says when a practitioner should request the Daimon-Tyche axis versus zodiacal releasing, lots, or any other Hellenistic technique. The only routing cue is the alias note, which tells the agent this is interchangeable with the canonical name rather than when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_helg_lot_of_eros_detailLot of Eros DetailBRead-onlyIdempotentInspect
Eros calculation with conditions analysis.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/lot-of-eros-detail] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_greenbaum_lot_of_eros_detail.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| eros | No | |
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| venusContact | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false, and destructiveHint=false. The description usefully adds the credit cost (10 credits, Tier 1) and discloses that it is a cursor-friendly alias of the canonical tool, but it omits auth prerequisites, rate limits, and any other operational caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five short lines with the purpose front-loaded and metadata in scannable bracket tags. The alias note is mildly redundant with the tool-name suffix, but there is no wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter specialized Hellenistic tool that does have an output schema, the description supplies tradition, endpoint, cost, and required inputs, which covers the basics. However, it leaves the 11 non-required parameters and all usage context unaddressed, so an agent can invoke it but has little help choosing or configuring it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only 33% schema description coverage, the description only restates the four required fields (date, time, latitude, longitude) that the schema's required array already declares. It says nothing about fields, ayanamsa, timezone, precision, timezoneOffset, or the other optional parameters, so it fails to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a calculation of the Lot of Eros plus 'conditions analysis', and the group tag frames it as the Greenbaum Hellenistic tradition. It is clearer than a bare name restatement, but it never clarifies what 'conditions analysis' comprises and does not distinguish this alias from the canonical `astroway_hellenistic_greenbaum_lot_of_eros_detail` other than noting they are the same.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no named alternatives, and no exclusions. The bracket block only lists required inputs and credit cost, so an agent gets no signal on when this detail variant is preferable to the broader lots or Hellenistic tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_helg_quality_of_timeQuality of TimeCRead-onlyIdempotentInspect
Synchronistic quality of a moment.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/quality-of-time] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_greenbaum_quality_of_time.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| qualityOfTime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only, idempotent, non-destructive profile, so the bar is low. The description adds genuinely useful context: the 10-credit Tier 1 cost and the note that it is a cursor-friendly alias of astroway_hellenistic_greenbaum_quality_of_time, which signals duplication. No auth or 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense and front-loaded: one purpose line followed by compact bracketed tags for group, endpoint, required inputs, and cost. Little waste, though the opening line carries almost no functional information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with 33% schema coverage, the description omits guidance on the optional configuration params that distinguish Hellenistic variants. An output schema exists, so return values are excused, but the input-side complexity is largely unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (15 params), so the description must compensate, but it merely repeats the four required params already marked required in the schema. Nothing is added about the eleven optional params (houseSystem, zodiacType, ayanamsa, fields, precision, timezone), which materially affect a Hellenistic calculation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Synchronistic quality of a moment" is close to a restatement of the name/title and does not say what the tool actually computes. However, the bracketed metadata names the tradition (Hellenistic: Greenbaum) and endpoint, which does differentiate it from the Brennan/Schmidt/Hand siblings in the same family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, and no named alternatives (e.g., vs. astroway_hellenistic_brennan_quality_of_time or other timing tools). The cost tag is the only decision-relevant hint provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_helg_sphaera_barbaricaSphaera BarbaricaCRead-onlyIdempotentInspect
Constellations beyond the zodiac.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/sphaera-barbarica] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_greenbaum_sphaera_barbarica.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| notes | No | |
| angles | No | |
| source | No | |
| doctrine | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorld=false, so the safety profile is covered. The description adds genuinely useful context beyond the annotations — the cost (10 credits, Tier 1) and the endpoint — but it says nothing about what computation is performed or what the caller should expect, so the value is moderate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is tight and front-loads the one descriptive phrase before bracketed metadata, with no filler sentences. The bracketed block is machine-oriented rather than prose, but it is compact and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter calculation tool the description omits the conceptual result, any usage context, and all optional-parameter meaning, leaving the agent without enough to invoke it purposefully beyond the four required fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, and the description's '[Required: date, time, latitude, longitude]' merely restates the schema's required array. The optional parameters (ayanamsa, timezone, houseSystem, fields, precision, cosmogram) get no explanation in the description, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific technique ('Constellations beyond the zodiac', Hellenistic Greenbaum tradition) and disambiguates itself as a cursor-friendly alias of astroway_hellenistic_greenbaum_sphaera_barbarica. However, it never states what the tool actually does or returns — no verb like 'compute' or 'derive the Sphaera Barbarica placements for a chart' — so the agent knows the topic but not the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives named. The bracketed metadata lists required inputs and cost but says nothing about the conditions under which this technique is appropriate, nor how it differs in use from related Hellenistic siblings (decans, dodekatemoria, temple doctrine).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_helg_temple_doctrineTemple DoctrineCRead-onlyIdempotentInspect
Temple-house assignments per Greenbaum.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/temple-doctrine] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_greenbaum_temple_doctrine.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| temples | No | |
| doctrine | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered. The description usefully adds non-annotation context: cost (10 credits, Tier 1) and the POST endpoint. However it says nothing about response shape, latency, or failure modes beyond what annotations give, so it sits at the baseline-plus level.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracket-tag layout is front-loaded and scannable, with the technique name first and metadata after. No prose padding, though the alias line is the only content that isn't derivable from structured fields or the endpoint path.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 15 parameters, 33% schema coverage, and no parameter explanation in the description, the definition is thin for the tool's complexity. The output schema handles return values and annotations handle safety, but the large block of undocumented parameters leaves the agent guessing about inputs like ayanamsa, house system, and compact mode.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a heavier burden. It merely restates the four required params (date, time, latitude, longitude) already flagged as required in the schema, and adds nothing about the undocumented params (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId). 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific named technique (temple-house assignments) and attributes it to the Greenbaum tradition, which distinguishes it from the Brennan/Hand/Schmidt Hellenistic siblings. The parenthetical alias note clarifies its relationship to `astroway_hellenistic_greenbaum_temple_doctrine`, preventing duplicate calls. It stops short of saying what the output actually contains, but the purpose is identifiable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to reach for this technique versus other Hellenistic tools (dodekatemoria, zodiacal decans, quality of time). The alias note implies 'either this or the canonical name', but that is routing hygiene, not usage guidance. An agent gets no condition that selects this tool over its many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_helg_zodiacal_decansZodiacal DecansCRead-onlyIdempotentInspect
Zodiacal decans with attributions.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/zodiacal-decans] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_greenbaum_zodiacal_decans.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is fully covered. The description contributes the credit cost (10 credits, Tier 1) and the fact that this is a cursor-friendly alias of astroway_hellenistic_greenbaum_zodiacal_decans, which is genuinely useful, but the remaining bracket lines (endpoint, required fields) are operational metadata rather than tool-specific behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short and front-loads the subject before the bracketed metadata, with no padding sentences. The structure is scannable, though the opening line carries very little information relative to the space the bracket block occupies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a 15-parameter endpoint with 33% schema coverage, the description supplies no explanation of what 'attributions' means, no usage context, and no disambiguation from the many adjacent Hellenistic decan/zodiacal tools, leaving real gaps an agent would face.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, with 15 parameters and no explanation of city, name, cosmogram, zodiacType, ayanamsaId, or houseSystem beyond bare enums/defaults. The description's only parameter content is '[Required: date, time, latitude, longitude],' which merely repeats what the schema's required array already states, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (zodiacal decans) and adds 'with attributions,' but it has no verb and largely restates the title 'Zodiacal Decans.' It does nothing to distinguish this Greenbaum decans endpoint from close siblings such as astroway_hellenistic_hand_decanic_rulers or astroway_hellenistic_greenbaum_dodekatemoria.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this tool versus alternatives, and no named sibling for disambiguation. The '[Required: ...]' and '[Cost: ...]' brackets convey invocation mechanics, not usage guidance, so an agent gets no help deciding whether this or a neighboring Hellenistic technique fits.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_brennan_bonifications_maltreatmentsBonifications/MaltreatmentsCRead-onlyIdempotentInspect
Planet conditions per Valens: 9 categories.
[Group: Hellenistic: Brennan tradition] [Endpoint: POST /v1/hellenistic/brennan/bonifications-maltreatments] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| sect | No | |
| source | No | |
| doctrine | No | |
| conditions | No | |
| disclaimer | No | |
| perPlanetSummary | No |
TDQS
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 covered by structured data. The description usefully adds operational context the annotations do not carry — the 10-credit cost and the required input set — but says nothing about authentication, output shape, or what the "9 categories" actually contain. With annotations doing the heavy lifting, this is an adequate 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The statement is front-loaded and free of filler, and the bracketed metadata is compact. However, the terse phrasing tips into under-specification: the description is short because it omits information, not because it is economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter tool with weak schema coverage the description should do far more. It gives no usage context, no disambiguation from the sibling helb_bonifications_maltreatments, and no explanation of the nine categories, leaving an agent under-informed for a non-trivial chart calculation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries real burden — but it merely restates the four required parameters, which are already listed in the schema's required array, and adds no semantic meaning. Undocumented parameters such as cosmogram, zodiacType, and ayanamsaId receive no clarification here, so the coverage gap is left unfilled.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a bare statement of what is computed ("Planet conditions per Valens: 9 categories"), which is enough to recognize the Hellenistic bonification/maltreatment concept but not a specific verb+resource framing. It does not distinguish itself from near-identical siblings such as astroway_helb_bonifications_maltreatments or astroway_dignities_essential_dignities, leaving the agent to guess which variant to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance anywhere in the description. The only routing-like content is a group tag and endpoint path, which tell the agent where the tool lives but not when to choose it over the highly similar helb_ and hand_ Hellenistic tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_brennan_joys_of_planetsJoys of PlanetsBRead-onlyIdempotentInspect
Classical planetary joys (Sun-Leo-9th, etc.).
[Group: Hellenistic: Brennan tradition] [Endpoint: POST /v1/hellenistic/brennan/joys-of-planets] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| evaluations | No | |
| planetsInJoy | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, closed-world and non-destructive behavior, so the safety profile is covered. The description adds two genuinely useful facts beyond annotations — the credit cost (10, Tier 1) and the required parameter set. It does not disclose how timezone/ayanamsa defaults affect results, which matters for a chart tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded: the meaning sentence comes first, followed by terse bracketed metadata. No meandering prose. The bracket fields are dense but each carries operational value, so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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; required inputs and cost are given. However, for a 15-parameter chart tool the absence of any guidance on zodiac/house/ayanamsa options leaves the definition only minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description must compensate, but it only restates the four required parameters already marked required in the schema. It says nothing about behavior-affecting optional params (zodiacType, houseSystem, ayanamsa, timezone vs timezoneOffset) that materially change the output, leaving those enums unexplained in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific astrological resource ('Classical planetary joys') and anchors it with a concrete example ('Sun-Leo-9th'), so an agent can tell what domain it computes. The '[Group: Hellenistic: Brennan tradition]' tag distinguishes it from the many other Hellenistic sibling tools. It lacks an explicit verb (e.g. 'returns/computes'), keeping 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.
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, no prerequisite context (it needs a full birth moment), and no routing to related tools such as lots_15 or bonifications_maltreatments. The only usage signal is the machine-readable bracket metadata listing required params and cost.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_brennan_lots_1515 Hermetic LotsBRead-onlyIdempotentInspect
All 15 Hermetic Lots per Brennan §11.
[Group: Hellenistic: Brennan tradition] [Endpoint: POST /v1/hellenistic/brennan/lots-15] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lots | No | |
| sect | No | |
| count | No | |
| source | No | |
| doctrine | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is covered. The description adds genuinely new operational context the annotations do not carry: the credit cost and tier (10 credits, Tier 1) and the exact required input set, which is comparable to disclosing rate/cost constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose, then terse bracketed metadata with no filler sentences. The endpoint URL is the only arguably redundant element, and the whole definition is short enough to scan instantly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 required inputs plus cost are stated. However, for a 15-parameter tool at 33% schema coverage sitting in a dense cluster of near-identical Hellenistic lot tools, the definition does not explain the optional parameters or justify choosing it over its siblings, leaving real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries the burden of compensating — and it does not. It repeats the four required fields already listed in the schema's 'required' array and says nothing about the meaningful optional inputs (fields compact mode, ayanamsa/sidereal school, timezone vs timezoneOffset, zodiacType, houseSystem, precision).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('All 15 Hermetic Lots per Brennan §11') and scopes it to a named author/tradition, which separates it from the Greenbaum, Hand and Schmidt lot tools in the sibling list. It never states an explicit verb (compute/derive), and the differentiation from other lot endpoints is carried by the '[Group: Hellenistic: Brennan tradition]' tag rather than prose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the agent must infer that this is the tool for the 15-lot Brennan set specifically. There is no statement of when to prefer this over astroway_hellenistic_hand_lots_of_seven or the Greenbaum lot endpoints, and no prerequisites beyond the required-field list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_brennan_profections_detailProfections DetailBRead-onlyIdempotentInspect
Annual profection year-lord with full classical condition.
[Group: Hellenistic: Brennan tradition] [Endpoint: POST /v1/hellenistic/brennan/profections-detail] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | No | |
| ageYear | No | |
| doctrine | No | |
| yearLord | No | |
| disclaimer | No | |
| yearEndDate | No | |
| profectedSign | No | |
| yearStartDate | No | |
| monthlyProfections | No | |
| yearLordNatalContext | No | |
| profectedHouseFromAsc | No |
TDQS
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 real context beyond that – a cost of 10 credits (Tier 1) and the POST endpoint – which an agent budgeting calls needs, but says nothing about result shape or cost-sensitive behavior beyond the flat price.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short lines with the purpose front-loaded and only machine-relevant metadata (group, endpoint, cost) following. No sentence is padded; the only mild inefficiency is that the bracket metadata is structured like tags rather than prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich input schema, an output schema, and full annotations, the description's omission of return-value detail is acceptable. The remaining gap is routing: in a namespace containing astroway_prognostics_profections and astroway_helb_profections_detail it never says what 'detail' adds or when this Brennan variant is the right choice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the embedded birth-data object is documented in exhaustive detail, so the baseline of 3 applies. The description contributes nothing about parameters, notably not explaining targetAge, the single required key that actually distinguishes this call from a plain natal chart.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Annual profection year-lord with full classical condition' names a specific astrological computation and its scope ('full classical condition'), and the [Hellenistic: Brennan tradition] group tag separates it from greenbaum/schmidt/helb profection siblings. It is however a noun phrase with no verb, and it does not explicitly contrast with astroway_prognostics_profections or astroway_helb_profections_detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 statement of when to prefer this over the other profection tools in the namespace. The 'annual' phrasing implies a yearly time-lord context but nothing tells the agent which sibling to pick for a non-Brennan or non-detail request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_brennan_time_lord_stackTime-Lord StackCRead-onlyIdempotentInspect
Combined stack of profection + ZR + decennials for a date.
[Group: Hellenistic: Brennan tradition] [Endpoint: POST /v1/hellenistic/brennan/time-lord-stack] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| stack | No | |
| source | No | |
| ageYear | No | |
| doctrine | No | |
| yearStart | No | |
| disclaimer | No |
TDQS
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 lower. The description adds genuinely useful business context the annotations do not carry: the endpoint and a per-call cost of 10 credits (Tier 1). It says nothing about pagination, response shape, or how the combined output interleaves the three systems, but against annotations it is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence plus bracketed metadata; nothing is padded. It is arguably too terse, but every element present earns its place and the core purpose leads.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 combined time-lord synthesis tool, the description leaves open what the stack actually reports and how targetAge interacts with the birth date, which is exactly the context an agent needs to call it instead of the three single-technique siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested birth-data schema is unusually detailed (timezone vs timezoneOffset rules, houseSystem letters, rejected short forms). The description adds nothing about parameters and does not explain the relationship between date and targetAge. Baseline 3 is correct when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names the three techniques it merges (profection, ZR, decennials) and the input it works from (a date), so the general function is inferable. However, 'ZR' is an unexpanded abbreviation and the description never distinguishes this aggregate from the sibling tools that each deliver one of these techniques individually (profections_detail, zodiacal_releasing_*, hand_decennials). It states a purpose but does not let an agent cleanly separate it from its neighbours.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 individual profection/ZR/decennial tools as alternatives. An agent receiving this has to guess whether the combined stack or the single-technique 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_hellenistic_brennan_triplicity_rulersTriplicity RulersBRead-onlyIdempotentInspect
Dorothean triplicity rulers (day/night/common).
[Group: Hellenistic: Brennan tradition] [Endpoint: POST /v1/hellenistic/brennan/triplicity-rulers] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| sect | No | |
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No |
TDQS
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 covered. The description adds two genuinely useful behavioral facts not in the annotations: the credit cost (10 credits, Tier 1) and the exact set of required inputs. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is terse and front-loaded: the substantive sentence comes first and the bracketed metadata follows in scannable lines. Every line carries information (cost, endpoint, required inputs), though the body sentence is arguably under-specified rather than merely concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/required inputs are covered. However, for a 15-parameter calculation endpoint with only 33% schema coverage, the description leaves key optional parameters and the distinction from the near-identical helb sibling undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate, but it merely re-lists the four required parameters (date, time, latitude, longitude) that the schema already marks required. It adds no meaning for the 11 optional parameters such as houseSystem, zodiacType, ayanamsa, or the compact-mode fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (triplicity rulers) with its tradition flavor (Dorothean) and the three rulership categories it returns (day/night/common), which is more informative than a bare name restatement. It does not, however, distinguish itself from the very similar sibling astroway_helb_triplicity_rulers, leaving the agent to infer the difference 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains no when-to-use guidance, no prerequisites, and no mention of alternatives such as astroway_helb_triplicity_rulers or astroway_dignities_almuten. Only the template metadata (required params, cost) hints at anything operational.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_brennan_zodiacal_releasing_fortuneZR from FortuneBRead-onlyIdempotentInspect
Zodiacal Releasing from Lot of Fortune: body/livelihood periods.
[Group: Hellenistic: Brennan tradition] [Endpoint: POST /v1/hellenistic/brennan/zodiacal-releasing-fortune] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | No | |
| summary | No | |
| doctrine | No | |
| disclaimer | No | |
| l1Sequence | No | |
| lotOfFortune | No |
TDQS
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 fully covered. The description adds genuinely useful operational context absent from annotations: the cost tier (10 credits) and the endpoint/group membership. It does not explain computation behavior or how the periods are derived, but the annotation bar is met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in a single clause, followed by bracketed metadata (group, endpoint, cost) that is compact and scannable. Nothing is wasted, though the body is arguably too thin to be ideal for a tool in such a crowded namespace.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return-format explanation is not required, and the input schema is comprehensive. The gaps are around disambiguation from the many ZR siblings and any sense of what the result is used for, which leaves the definition merely adequate for a specialized computation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the birth-data schema is extremely well documented (formats, tz handling, houseSystem letters, rejection of short forms). The description adds no parameter-level information, so the baseline 3 for fully-covered schemas is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific technique (Zodiacal Releasing) and its source point (Lot of Fortune), and adds the derived subject matter ('body/livelihood periods'), which is enough to distinguish it conceptually from the Spirit-based sibling. However, it never names the near-duplicate siblings (e.g. astroway_helb_zodiacal_releasing_fortune, astroway_hellenistic_brennan_zodiacal_releasing_spirit), so an agent cannot separate the Brennan variant from the helb variant on the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 Spirit variant, the peak-periods sibling, or the helb duplicate. The description gives no context on what question the output answers or what prerequisites apply. Only the technique name implies usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_brennan_zodiacal_releasing_spiritZR from SpiritARead-onlyIdempotentInspect
Zodiacal Releasing from Lot of Spirit: career/action periods.
[Group: Hellenistic: Brennan tradition] [Endpoint: POST /v1/hellenistic/brennan/zodiacal-releasing-spirit] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | No | |
| summary | No | |
| doctrine | No | |
| disclaimer | No | |
| l1Sequence | No | |
| lotOfSpirit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly/idempotent/non-destructive safety, so the bar is lower; the description adds genuinely useful behavioral facts not in any structured field — the credit cost (10 credits, Tier 1), the group/tradition, and the exact endpoint. It still says nothing about how long the computation spans or how ageing periods are resolved, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The technique and its domain are front-loaded in the first line, with metadata confined to bracketed lines. There is no filler prose, though the three metadata lines are boilerplate shared across the whole tool family rather than content specific to this tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 schema coverage, return values and parameters need no further explanation. However, for a specialised time-lord technique with several near-identical ZR siblings, an agent is given no cue for choosing this one over the fortune/peak-period variants — the one gap that matters here is left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds no parameter meaning whatsoever — nothing about the required birth data, the optional 'years' horizon (default 80), or the compact-mode 'fields'/'precision' controls. Baseline 3 is the correct score when the schema carries the entire parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact Hellenistic technique ('Zodiacal Releasing from Lot of Spirit') and the domain it covers ('career/action periods'), which is a specific resource, not a tautology. The 'Spirit' qualifier implicitly separates it from the sibling zodiacal_releasing_fortune and zr_peak_periods tools, but the description never makes that contrast explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'career/action periods' implies the use case (career timing questions) but there is no explicit when-to-use/when-not guidance and no mention of the alternative ZR tools (fortune, loosing of bond, peak periods) that share nearly identical input signatures. Usage 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_hellenistic_brennan_zr_loosing_of_bondZR Loosing of BondCRead-onlyIdempotentInspect
Loosing of Bond detection within ZR sequence.
[Group: Hellenistic: Brennan tradition] [Endpoint: POST /v1/hellenistic/brennan/zr-loosing-of-bond] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| source | No | |
| fromLot | No | |
| lotInfo | No | |
| doctrine | No | |
| disclaimer | No | |
| loosingOfBondEvents | No |
TDQS
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 without the description. The description does add real value beyond the annotations by disclosing the cost (10 credits, Tier 1) and the transport endpoint, which the structured fields do not carry. It says nothing, however, about prerequisites (e.g. that a natal chart with a ZR sequence is required) or any rate/size constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short, front-loaded with the core action, and contains no filler or repetition. The three bracketed metadata lines are compact and each carries distinct information, so nothing meaningful is wasted for the size given.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is an obscure Hellenistic technique paired with a bare one-line label; without any definition of Loosing of Bond or of the ZR (Zodiacal Releasing) sequence, an agent cannot know what the result signifies or when it is the right tool. An output schema does exist, so return values need not be explained, but the conceptual gap and the inability to separate it from the 'helb' twin remain serious omissions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the nested body schema already documents date, time, latitude, longitude, timezone and houseSystem in unusual depth. The description adds nothing about the parameters (including the meaning of the 'years' field for ZR span), so the baseline 3 for fully documented schema applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names an action and resource ('Loosing of Bond detection within ZR sequence'), which is more specific than a tautology, but 'ZR' and 'Loosing of Bond' are unexplained jargon and the phrasing is close to restating the title. Critically, it makes no attempt to distinguish itself from near-identical siblings such as astroway_helb_zr_loosing_of_bond or astroway_hellenistic_brennan_zr_peak_periods, so an agent cannot route between them 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance anywhere in the description. The bracketed Group/Endpoint/Cost lines are operational metadata, not usage guidance. An agent must infer selection purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_brennan_zr_peak_periodsZR Peak PeriodsCRead-onlyIdempotentInspect
Peak periods in ZR (angular signs from Lot).
[Group: Hellenistic: Brennan tradition] [Endpoint: POST /v1/hellenistic/brennan/zr-peak-periods] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| source | No | |
| fromLot | No | |
| doctrine | No | |
| disclaimer | No | |
| peakPeriods | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavioral context — a 10-credit Tier 1 cost and the POST endpoint — but says nothing about what is computed, the technique's assumptions, or rate/limit behavior. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: the resource line comes first, followed by structured metadata tags. Nothing is padded, though the metadata lines contribute more routing/tooling value than descriptive value, and the core sentence is doing minimal work.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a specialized Hellenistic timing technique the description leaves the core question unanswered — what a peak period is, what the Lot-based angular-sign calculation yields, and how it relates to the ZR fortune/spirit/loosing-of-bond siblings. Input richness cannot compensate for an opaque purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema is unusually rich (timezone, timezoneOffset, houseSystem letters, field names are all documented inline), so the schema carries the parameter burden. The description adds nothing about parameters — notably it never mentions the `years` span (20-120, default 80) that shapes peak-period output. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ("Peak periods") and glosses the abbreviation ZR as "angular signs from Lot", which is slightly more than the bare title. But it never states a verb (compute/return/derive) and never explains what a "peak period" actually is in this technique, so an agent cannot tell what it produces. It also fails to distinguish itself from the many ZR-adjacent siblings (zodiacal_releasing_fortune, zodiacal_releasing_spirit, zr_loosing_of_bond).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no prerequisites, and no mention of alternatives among the ZR siblings. The only routing-adjacent information is the [Group: Hellenistic: Brennan tradition] tag and the endpoint/cost metadata, which give context but 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_hellenistic_greenbaum_antiscia_hellenisticAntiscia (Hellenistic)CRead-onlyIdempotentInspect
Solstitial antiscia per Hellenistic conventions.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/antiscia-hellenistic] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No | |
| antiscionContacts | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world behavior, so the safety profile is covered. The description adds genuinely useful non-annotation facts: the exact endpoint and a 10-credit cost. It does not disclose the response shape, but an output schema exists so that burden is reduced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One-line summary followed by dense, front-loaded bracket metadata; nothing is wasted. The format is terse and scannable, though the summary line itself is quite thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the description need not explain return values, and it does note cost and endpoint. Still, for a 15-parameter calculation tool with three enums and low schema coverage, it leaves the optional parameters and the distinction from sibling antiscia tools unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description needs to compensate. Instead it merely repeats the four required parameters already declared in the schema and adds nothing about the eleven optional ones (houseSystem, zodiacType, fields, precision, ayanamsa, etc.). It adds no semantic value beyond structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific astrological technique (solstitial antiscia) within a named tradition (Hellenistic/Greenbaum), which is more specific than a tautology. However, it supplies no verb describing what is computed or returned, and it does not distinguish itself from near-identical siblings such as astroway_helg_antiscia_hellenistic or astroway_aspects_antiscia. Purpose is identifiable but underspecified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 antiscia-related siblings (astroway_aspects_antiscia, astroway_helg_antiscia_hellenistic, astroway_hellenistic_greenbaum_contra_antiscia). The bracket metadata gives operational facts (required params, cost, endpoint) but nothing about selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_greenbaum_contra_antisciaContra-AntisciaCRead-onlyIdempotentInspect
Equinoctial contra-antiscia.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/contra-antiscia] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No | |
| contraAntiscionContacts | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world scope, so safety is covered. The description does add genuinely useful operational context the annotations lack: an explicit 10-credit Tier 1 cost and the POST endpoint. It says nothing about precision of results or what the computation covers, though.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata format is compact and front-loads the tool term, and the cost line is worth its space. However, the '[Required: ...]' line is pure duplication of the schema and the block contains no explanatory prose at all, so brevity here is achieved by omission rather than by tight writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 in the description. Even accounting for that, a 15-parameter astrological computation tool with no statement of what it computes, no differentiation from near-identical siblings, and undocumented optional parameters is not complete enough for reliable selection or invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only the four required parameters are listed, which merely repeats the schema's 'required' array. With 15 parameters and 33% schema description coverage, the description needed to explain the optional parameters such as cosmogram, zodiacType, houseSystem and the compact-mode fields, and it explains none of them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is essentially a restatement of the name and title: 'Equinoctial contra-antiscia' names no verb, no output, and no scope of computation. The one distinguishing word, 'equinoctial', is left unexplained, so an agent cannot tell what is actually being calculated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 reference to alternatives, despite siblings like astroway_helg_contra_antiscia, astroway_helg_antiscia_hellenistic, and astroway_aspects_antiscia that an agent must choose between. The '[Group: Hellenistic: Greenbaum tradition]' tag gives weak routing context but no selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_greenbaum_daimon_tyche_axisDaimon-Tyche AxisCRead-onlyIdempotentInspect
Spirit-Fortune axis as primary chart spine.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/daimon-tyche-axis] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| axis | No | |
| basis | No | |
| source | No | |
| spirit | No | |
| fortune | No | |
| doctrine | No | |
| disclaimer | No |
TDQS
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's genuinely additive facts are the credit cost (10 credits, Tier 1) and the HTTP endpoint, which help an agent judge expense. It says nothing about sect handling, computational prerequisites, or whether ayanamsa/zodiacType materially change the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short, front-loaded with the purpose line, and the bracketed metadata lines are scannable rather than prose padding. Slightly over-reliant on a structured block instead of explanatory sentences, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter computation with an output schema present (so return values need no explanation), the description is still too thin: it never explains what the Daimon/Tyche axis is used for astrologically, how it relates to the duplicative sibling, or which of the many optional parameters actually matter. An agent has the mechanics but not the judgment needed to invoke it well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries real burden — yet it only restates the four required fields already declared in the schema's required array. The eleven optional parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId, etc.) receive no clarification, and the sidereal/tropical distinction is especially relevant for a Hellenistic tool and goes unmentioned.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Spirit-Fortune axis as primary chart spine" names a recognizable astrological construct, so the resource is identifiable, but there is no verb describing what is produced (compute? list? interpret?) and no indication of what the axis output means for the agent. It also fails to distinguish itself from the near-identical sibling astroway_helg_daimon_tyche_axis, which carries the same title-ish concept under a different prefix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The bracketed block states required inputs and cost but gives no when-to-use guidance, no prerequisites, and no routing advice relative to the many other Hellenistic lot/spine tools in the sibling list. An agent cannot tell from this text why it would pick this over astroway_helg_daimon_tyche_axis or the Greenbaum lots tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_greenbaum_dodekatemoriaDodekatemoriaCRead-onlyIdempotentInspect
Dodecatemoria sub-divisions of zodiac.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/dodekatemoria] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No |
TDQS
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 safety behavior is covered. The description adds genuinely useful context beyond that — the POST endpoint, the four required inputs, and the 10-credit (Tier 1) cost — but says nothing about what the calculation produces or any preconditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and cleanly front-loaded, with the bracket block giving a scannable structure and no filler sentences. However, the brevity crosses into under-specification rather than tight writing, so it is efficient without being informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter Hellenistic calculation with sidereal/house-system options and an output schema, an agent needs to know what is being computed and under which frame; the description supplies none of that. The existence of an output schema excuses it from describing return values, but it is still too thin for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% across 15 parameters, so the description should compensate, but all it offers is '[Required: date, time, latitude, longitude]', which merely restates the schema's own required array. It adds no meaning for the eleven optional parameters (zodiacType, houseSystem, ayanamsa/ayanamsaId, precision, cosmogram, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The text 'Dodecatemoria sub-divisions of zodiac' essentially restates the tool name/title with a dictionary gloss; it contains no verb and never says what the tool actually computes or returns (e.g. dodekatemoria placements for a chart). It also does nothing to distinguish this from near-neighbor siblings like astroway_hellenistic_greenbaum_duodecima or astroway_helg_zodiacal_decans.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use statement and no named alternative or exclusion. The only context is the bracket metadata (group/endpoint/required/cost), which is operational plumbing rather than guidance about when this tool is the right choice over its several Hellenistic subdivisions siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_greenbaum_duodecimaDuodecimaCRead-onlyIdempotentInspect
Duodecima: 2.5° micro-sign per planet.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/duodecima] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No |
TDQS
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 adds genuinely new operational facts — cost of 10 credits (Tier 1) and the endpoint — but says nothing about return shape, edge cases, or what a call produces beyond the concept label. Modest added value over annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The concept is front-loaded in the first line and the bracketed metadata block is scannable with zero filler. It is tight, though arguably too terse for a 15-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 15-parameter tool with three enum sets and a close sibling, the description is far too thin: no usage context, no differentiation, no parameter explanation. An output schema exists so return values need not be described, but the input-side and selection-side gaps remain substantial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a heavy burden and does not meet it. It merely restates the four required fields already listed in the schema, and explains none of ayanamsa, zodiacType, houseSystem, timezone, fields, or precision.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment 'Duodecima: 2.5° micro-sign per planet' names the technique and its output granularity but contains no verb describing the operation and relies on specialized jargon. It fails to distinguish itself from the sibling astroway_hellenistic_greenbaum_dodekatemoria, which the agent will likely confuse with it. Purpose is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus the very similar dodekatemoria sibling, nor any prerequisite or context statement. The bracket summary supplies required fields and cost but nothing about selection conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_greenbaum_lot_of_eros_detailLot of Eros DetailCRead-onlyIdempotentInspect
Eros calculation with conditions analysis.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/lot-of-eros-detail] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| eros | No | |
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| venusContact | No |
TDQS
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 genuinely useful non-schema context: the endpoint, the required inputs, and a 10-credit Tier 1 cost. It still says nothing about what 'conditions analysis' computes or any auth/rate constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and the bracketed metadata block is compact and scannable, with no redundant prose. It is efficiently sized for the information it actually conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter Hellenistic calculation with 33% schema coverage, no explanation of the parameters, no differentiation from the Greenbaum/HELG twins, and an undefined 'conditions analysis' scope, the definition is not complete enough to invoke confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate; instead it merely restates the four required fields, which the schema's required array already declares. Undocumented options like ayanamsa, houseSystem, zodiacType and fields get no explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names a resource (Eros lot) and a computation, so the agent knows it produces an Eros-related chart output. However, "conditions analysis" is undefined jargon, and nothing distinguishes it from near-duplicate siblings such as astroway_helg_lot_of_eros_detail or astroway_hellenistic_hand_lots_of_seven.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing among the many Hellenistic lot tools. The presence of a near-identical astroway_helg_lot_of_eros_detail sibling makes the absence of differentiation especially costly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_greenbaum_quality_of_timeQuality of TimeCRead-onlyIdempotentInspect
Synchronistic quality of a moment.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/quality-of-time] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| qualityOfTime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/no-open-world, so the safety profile is covered. The description adds genuinely useful behavior context — cost (10 credits, Tier 1) and the coarse endpoint — but says nothing about what the response contains or any limits. Nothing contradicts 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and the bracketed metadata is easy to scan, but the one prose sentence carries almost no information while the blocks relay facts (group, endpoint, cost) that mostly duplicate the tool name and schema. It is compact without being informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with a full output schema, the description omits the two things that matter most: what 'quality of time' actually returns and how it differs from astroway_helg_quality_of_time. An output schema exists so return values needn't be described, but purpose and sibling disambiguation are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate — instead it merely repeats the four required parameters (date, time, latitude, longitude) already marked required in the schema and adds nothing about the 11 optional ones (ayanamsa, timezone, houseSystem, zodiacType, fields, precision). With low coverage, this leaves a large semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says only 'Synchronistic quality of a moment,' which essentially restates the name/title ('Quality of Time') without stating what the tool computes or returns. The Greenbaum group label and endpoint give some framing, but an agent cannot tell what output it would get, and it is indistinguishable from the near-identical sibling astroway_helg_quality_of_time.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 provided. With siblings like astroway_helg_quality_of_time and the electional/muhurta tools in the catalog, the agent has no instruction on which 'quality of time' variant to select or when this one applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_greenbaum_sphaera_barbaricaSphaera BarbaricaCRead-onlyIdempotentInspect
Constellations beyond the zodiac.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/sphaera-barbarica] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| notes | No | |
| angles | No | |
| source | No | |
| doctrine | No | |
| disclaimer | No |
TDQS
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 genuinely useful behavioral facts the annotations lack: a cost of 10 credits (Tier 1) and the POST endpoint. However it says nothing about what the operation evaluates or how expensive/large the result is; the cost line is the only substantive addition. The POST endpoint alongside readOnlyHint=true is unusual but not a contradiction, since POST is a transport detail rather than a side-effect claim.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and scannable, with the bracketed metadata lines front-loading group, endpoint, required params, and cost in a consistent format. The trade-off is that the brevity reflects under-specification rather than efficient compression: the opening line carries almost no information and no sentence explains the tool's actual behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with only 33% schema coverage, the description is far too thin. An output schema exists, so return values need not be explained, but the description never clarifies which branch parameters (zodiacType tropical vs sidereal, ayanamsa, houseSystem) matter for this Hellenistic technique, nor how it differs from the sibling helg_sphaera_barbarica duplicate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so two-thirds of the 15 parameters (zodiacType, houseSystem, cosmogram, name, city, and others) are undocumented in both schema and description. The description's only parameter content is '[Required: date, time, latitude, longitude]', which merely restates the schema's required array and adds no syntax, format, or default guidance. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a four-word gloss of the Latin name ('Constellations beyond the zodiac') with no verb and no statement of what computation or output the tool produces. An agent cannot tell from this whether the tool returns paranatellonta/extra-zodiacal star risings, a text passage, or a rendering. It also does nothing to distinguish itself from the near-identical sibling astroway_helg_sphaera_barbarica.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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-tool guidance appears anywhere. The only routing signal is the bracketed '[Group: Hellenistic: Greenbaum tradition]' label, which hints at the tradition family but does not say why an agent would pick this over the Brennan, Schmidt, Hand, or helg variants, nor over the duplicate helg_sphaera_barbarica.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_greenbaum_temple_doctrineTemple DoctrineCRead-onlyIdempotentInspect
Temple-house assignments per Greenbaum.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/temple-doctrine] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| temples | No | |
| doctrine | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, so safety is covered. The description adds genuinely useful operational context the annotations don't carry: the POST endpoint and the 10-credit (Tier 1) cost. However it says nothing about what the temple-house doctrine output contains or any constraint on its interpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence plus compact bracket metadata; the core purpose is front-loaded and there is no filler prose. The metadata lines are dense and scannable, though the block conveys more about billing than about usage.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return formatting needn't be explained, but the semantic gaps remain: an agent knows the required inputs and the cost yet has no idea what a 'temple doctrine' result represents or when to invoke it. For a 15-parameter chart endpoint with 33% schema coverage, the description is not sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate, and it does not. It merely repeats the four required fields already enforced by the schema and omits any mention of the substantive optional inputs (ayanamsa/ayanamsaId, zodiacType, houseSystem, timezone vs timezoneOffset, fields/precision).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Temple-house assignments per Greenbaum" names a specific calculation and its tradition, which is better than a tautology, but it uses domain jargon ("temple-house assignments") that an agent cannot translate into what the tool actually computes or returns. It also does not distinguish itself from the near-identical sibling astroway_helg_temple_doctrine.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and names no alternative tool (e.g. why pick this over astroway_helg_temple_doctrine or the other Greenbaum endpoints). The [Required:] line restates the schema's required array but does not tell 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_hellenistic_greenbaum_zodiacal_decansZodiacal DecansCRead-onlyIdempotentInspect
Zodiacal decans with attributions.
[Group: Hellenistic: Greenbaum tradition] [Endpoint: POST /v1/hellenistic/greenbaum/zodiacal-decans] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No |
TDQS
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 genuinely useful non-schema context in the cost (10 credits, Tier 1) and the explicit endpoint and required-parameter list, but says nothing about computation scope, what the 'attributions' contain, or any limits. With annotations carrying safety, the added cost line justifies a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and the bracketed block is scannable, so there is no wasted prose. However, the brevity is under-specification rather than economy: the front sentence carries almost no information and the rest is administrative metadata.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter chart tool with only 33% schema coverage the description leaves too much unstated — notably which optional settings matter for a decan chart and how timezone, zodiac type and ayanamsa interact. The definition is not complete enough to invoke confidently without reading the schema in depth.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate and does not. It merely repeats the four required parameters (date, time, latitude, longitude) that the schema's required array already enforces, and says nothing about the semantically important undocumented options such as zodiacType, houseSystem, timezone/timezoneOffset, fields, or ayanamsaId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('zodiacal decans') and notes it includes 'attributions', but it is essentially a restatement of the title with a qualifier rather than a distinct verb+resource statement. It offers no differentiation from the very close sibling astroway_helg_zodiacal_decans (or the related decan/dodekatemoria siblings), so an agent cannot tell why this Greenbaum version exists alongside them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only operational guidance is bracketed metadata: required inputs, endpoint, and cost tier. There is no statement of when to reach for decans, when to prefer a sibling traditon (e.g. helg_zodiacal_decans or dodekatemoria), or what a decan computation is appropriate for. The agent must infer usage entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_hand_boundsEgyptian BoundsCRead-onlyIdempotentInspect
Ptolemaic Egyptian bounds rulers.
[Group: Hellenistic: Hand tradition] [Endpoint: POST /v1/hellenistic/hand/bounds] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No | |
| egyptianBoundsTable | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so the safety profile is covered. The description usefully adds the cost (10 credits, Tier 1), the endpoint, and the required inputs, which are not in the annotations. It says nothing about response shape or how the ruler assignment is bounded, but with annotations and an output schema in place the added cost/endpoint context earns a mid score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely tight: one subject line followed by bracketed metadata, with the technique name front-loaded. Nothing is padded, though the metadata block substitutes for content rather than supplementing it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter chart-computation endpoint this is thin. The output schema relieves it of describing return values, but it leaves unaddressed which optional inputs matter (sidereal school, zodiac type, house system) and give no indication of when the bounds technique is applicable — a gap that matters in a catalogue with hundreds of near-identical Hellenistic siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. It merely restates the four required fields already encoded in the schema's required array and explains none of the optional parameters (ayanamsa, zodiacType, houseSystem, fields, precision, timezone) or how they alter the bound-ruler output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific astrological technique (Ptolemaic Egyptian bounds rulers) and the group tag places it in the Hand tradition rather than the Greenbaum/Schmidt/Brennan branches. However, it never states the verb or what is actually returned — no indication that it computes/returns the bound (term) ruler per zodiacal segment for a chart. It also does not distinguish itself from close siblings like astroway_hellenistic_hand_decanic_rulers, whose name suggests a similar ruler-table output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no alternatives. The only contextual lines are the endpoint, required-field list, and credit cost, which are operational metadata rather than usage guidance. An agent must infer from the technique name alone whether bounds are the right tool versus decans, critical degrees, or lots.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_hand_critical_degreesCritical DegreesCRead-onlyIdempotentInspect
Critical degrees by modality.
[Group: Hellenistic: Hand tradition] [Endpoint: POST /v1/hellenistic/hand/critical-degrees] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| onCritical | No | |
| criticalDegreeMap | No |
TDQS
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 only the required-param list and a credit cost, repeating what structured fields already supply, and discloses nothing about output shape, deterministic computation, or cost-tier behavior beyond the tag.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is tiny and contains no filler, but it is essentially a tag block rather than a front-loaded sentence about what the tool does. It is concise without being informative, which is adequate but not earning its structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, 33%-documented calculation endpoint within a huge sibling set, the definition provides required params and cost but no explanation of the concept, vintage/lineage, or output. The presence of an output schema relieves the need to describe return values, but the missing purpose and disambiguation leave the definition incomplete for correct tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 33% with 15 params, so the schema documents a minority (fields, precision, ayanamsa, timezone, timezoneOffset) while many — city, name, cosmogram, zodiacType, houseSystem, the ayanamsa enum — go undocumented. The description only names the four required params (date, time, latitude, longitude) without adding format or semantic detail, so it neither compensates for the gap nor muddies it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Critical degrees by modality' names the astrological concept, and the bracketed group/endpoint tags identify it as a Hellenistic Hand-tradition calculation. But the description never states in plain prose what the tool returns or does — it relies on the title and endpoint to carry meaning, so the purpose is only inferable, not stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of any sibling alternative. In a catalog of hundreds of Hellenistic tools (hand_bounds, hand_perfections, hand_quarter_lord, etc.), the definition gives the agent nothing to disambiguate against.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_hand_decanic_rulersDecanic RulersCRead-onlyIdempotentInspect
Chaldean decan rulers per planet.
[Group: Hellenistic: Hand tradition] [Endpoint: POST /v1/hellenistic/hand/decanic-rulers] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description only needs to add operational context. It does contribute the cost tier (10 credits, Tier 1) and the exact endpoint/method, which are genuinely useful for budgeting and routing, but says nothing about result shape beyond the title, latency, or whether the calc is tropical-friendly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single line plus a compact metadata block; the required-input and cost lines are front-loaded and scannable. It borders on being too terse to be useful, but nothing is padding, so it does not cost much.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter tool with 33% schema coverage and a crowded sibling set the description is far too thin: it gives no indication which optional parameters matter for this tradition or how the result differs from neighboring decan/ruler endpoints. An agent could call it, but with little confidence it chose correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a compensation burden it does not meet. It re-lists the four required parameters (date, time, latitude, longitude), which the schema already marks required, and adds nothing about the many undescribed optional parameters (zodiacType, houseSystem, cosmogram, ayanamsaId), whose relevance to a decan-ruler calculation is left to guesswork.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific astrological technique ('Chaldean decan rulers per planet'), which is enough for an agent to know this produces decan-ruler assignments rather than a general chart. It does not, however, distinguish itself from the several decan/ruler-adjacent siblings (astroway_hellenistic_hand_decennials, astroway_helg_zodiacal_decans, the Greenbaum zodiacal_decans) that a selector must choose among, so it stays below a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no prerequisite, and no named alternative. The bracketed block lists required inputs and cost but never says in what situation an agent should pick this tool over the dozen other Hellenistic 'Hand' tools or the decan tools from other traditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_hand_decennialsDecennialsCRead-onlyIdempotentInspect
Hand's decennial timing technique.
[Group: Hellenistic: Hand tradition] [Endpoint: POST /v1/hellenistic/hand/decennials] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sect | No | |
| source | No | |
| doctrine | No | |
| currentAge | No | |
| decennials | No | |
| disclaimer | No | |
| currentRuler | No |
TDQS
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 does add non-annotation context — cost tier (10 credits) and the POST endpoint — but says nothing about what is calculated, whether a birth chart is required, or how lifespanYears affects the period count. With annotations carrying the safety burden, this is adequate-but-thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short and front-loaded: one line of purpose followed by three bracketed metadata lines, with no wasted prose. Its brevity is close to under-specification rather than verbosity, but structurally it is clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 input schema is well documented. Still, this is one of hundreds of chart-calculation siblings, and the description supplies none of the interpretive context (what a decennial period means, how many are returned, relation to lifespanYears) that would let an agent choose it confidently over the neighboring time-lord tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested birth-data schema is extensively documented (formats, timezone handling, houseSystem letters), so the schema does the heavy lifting. The description adds no parameter meaning of its own — notably it never explains lifespanYears or the compact-mode fields/precision parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the technique ('Hand's decennial timing technique') and situates it in the Hellenistic Hand tradition, so an agent knows roughly what domain it computes in. However, it is nearly a restatement of the tool name ('decennials' → 'decennial timing technique') and never says what the tool produces or how it differs from siblings such as astroway_hellenistic_hand_perfections or astroway_hellenistic_brennan_time_lord_stack. No verb, scope, or output is stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 over the many other Hellenistic timing siblings, and no prerequisites mentioned. The endpoint and credit cost lines are logistical metadata, 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_hellenistic_hand_horoscopos_trineHoroskopos TrineCRead-onlyIdempotentInspect
Bodies trining the rising sign.
[Group: Hellenistic: Hand tradition] [Endpoint: POST /v1/hellenistic/hand/horoscopos-trine] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| planetsInTrine | No | |
| horoscoposTrine | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, non-destructive, closed-world, so the safety profile is fully covered. The description adds only the cost tier and endpoint, useful operational context but no behavioral detail beyond annotations. A 3 reflects that the description neither adds much nor contradicts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four lines, each earning its place: the one-line purpose plus bracketed metadata for group, endpoint, required params, and cost. Efficient and front-loaded, though the bracketed lines are somewhat machine-oriented rather than explanatory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter astrological calculation tool with only 33% schema coverage and many domain-specific options (ayanamsa schools, house systems, zodiac types), the description is far too thin. It doesn't explain what the output contains, what 'trine to rising sign' means in context, or how the optional params affect results, even though an output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 33%, so many parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId) are undocumented. The description lists required params (date, time, latitude, longitude) which matches the schema's required array, but adds no syntax or semantic meaning beyond that, and doesn't compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Bodies trining the rising sign' states the astrological phenomenon being computed, which is more specific than restating the name 'Horoskopos Trine'. However, it doesn't fully explain what the tool returns (a list of bodies? an analysis?) and doesn't differentiate from sibling Hellenistic tools like hand_perfections or hand_bounds.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no alternatives named, no prerequisites. The endpoint metadata implies it takes a birth chart, but nothing tells an agent when this Hellenistic technique is appropriate versus the dozens of sibling Hellenistic tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_hand_longevity_hylegHyleg LongevityCRead-onlyIdempotentInspect
Tetrabiblos III.10 hyleg + alcocoden.
[Group: Hellenistic: Hand tradition] [Endpoint: POST /v1/hellenistic/hand/longevity-hyleg] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| hyleg | No | |
| notes | No | |
| source | No | |
| caveats | No | |
| doctrine | No | |
| alcocoden | No | |
| hylegSign | No | |
| disclaimer | No | |
| alcocodenSign | No | |
| hylegLongitude | No | |
| lifespanEstimate | No | |
| planetYearsTable | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint, so the safety profile is covered. The description adds genuinely useful operational facts not in annotations: the POST endpoint, the 10-credit Tier 1 cost, and the required field set. It does not disclose what the computation returns or how alcocoden weighting is resolved, but with an output schema present that gap is partly covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata block is compact and front-loads the doctrine reference, but it is schema-like plumbing rather than prose an agent can reason over, and it spends lines restating required params and endpoint path. Nothing is wasted per se, but nothing informs tool selection either.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, computationally specialized Hellenistic tool with many near-identical siblings, the description omits what the output represents (hyleg/alcocoden years?), how it differs from astroway_dignities_hyleg, and any handling of optional sidereal/house-system parameters. The output schema spares it from explaining return values, but selection-critical context is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate for undocumented params (city, date, time, name, cosmogram, zodiacType, houseSystem). Instead it merely restates the four required names already listed in the schema's 'required' array, adding no semantics for any optional parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific technique ('Tetrabiblos III.10 hyleg + alcocoden'), which tells a domain-aware agent this computes the classical longevity doctrine rather than a generic chart. However, it never states a verb like 'compute' and does not differentiate itself from the very similar sibling astroway_dignities_hyleg, so the agent must infer which hyleg tool to use.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternative despite a near-duplicate sibling (astroway_dignities_hyleg) and a dozen other hellenistic_hand_* tools. The only routing signal is the '[Group: Hellenistic: Hand tradition]' tag, which is categorization 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_hellenistic_hand_lots_of_sevenLots of SevenCRead-onlyIdempotentInspect
Seven primary Lots per Hand.
[Group: Hellenistic: Hand tradition] [Endpoint: POST /v1/hellenistic/hand/lots-of-seven] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| sect | No | |
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| lotsOfSeven | No |
TDQS
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 covered. The description adds genuinely useful behavioral context absent from the annotations: a billing cost (10 credits, Tier 1) and the required parameter set, plus the HTTP endpoint. It still says nothing about the result shape, but the output schema may cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very compact and front-loaded: a one-line purpose followed by bracketed metadata, with no filler or repetition. The brevity works against it only in that the purpose line is under-specified rather than efficiently stated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description needn't explain return values, and annotations cover the safety profile. Still, for a 15-parameter Hellenistic computation with a crowded sibling family, the absence of any selection guidance or parameter semantics leaves real gaps an agent must resolve by inspecting the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description must compensate for the undocumented parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId, and the four required core fields). Instead it merely repeats the four required parameters that the schema already marks required, adding no format, unit, or defaulting semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The line 'Seven primary Lots per Hand' is largely a restatement of the tool name (hand_lots_of_seven) and supplies no verb or statement of what is computed or returned. It does hint at the tradition scope ('per Hand'), which loosely separates it from brennan_lots_15 or greenbaum variants, but the separation is carried by the name, not the description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description lists required inputs and cost but never says when an agent should pick this Hand-tradition lots endpoint over the other lots tools (brennan_lots_15, greenbaum_lot_of_eros_detail, helg_lot_of_eros_detail).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_hand_perfectionsPerfectionsCRead-onlyIdempotentInspect
Perfection-of-aspects timing.
[Group: Hellenistic: Hand tradition] [Endpoint: POST /v1/hellenistic/hand/perfections] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | No | |
| ageYear | No | |
| doctrine | No | |
| yearLord | No | |
| disclaimer | No | |
| profectedSign | No | |
| yearStartDate | No | |
| profectedHouse | No | |
| perfectionChain | No | |
| yearLordNatalSign | No | |
| yearLordBoundRuler | No |
TDQS
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 elsewhere. The description adds genuinely useful behavior beyond the annotations: the POST endpoint and a concrete cost of 10 credits (Tier 1), which matters for budgeting calls. It does not contradict the annotations, but it discloses nothing about what the computation returns or its limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: the technique statement leads and the group/endpoint/cost metadata follows in brackets with no filler. It is efficient, though the brevity is partly under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the rich body schema is fully described, so return values and parameter mechanics are covered. What remains missing for a specialized Hellenistic technique is any explanation of what a 'perfection' result means or how targetAge shapes it; the annotations and cost line partially compensate but the definition is thin for the domain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 body, fields, precision and every nested birth-data field in detail (including ayanamsa, timezone, houseSystem letter conventions). The description adds nothing about parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific Hellenistic technique (perfection of aspects) and scopes it to timing, which is marginally more than the name/title alone. However it gives no verb or resource and no indication of what is computed or returned, so an agent cannot tell what the output actually is. It also fails to distinguish this from the many other Hellenistic timing techniques among the siblings (decennials, profections, zodiacal releasing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 or prerequisites, and no mention of alternative tools such as the sibling Hellenistic Hand techniques. The bracketed metadata (group/endpoint/cost) is operational detail, not usage guidance. The agent is left to infer everything from the technique name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_hand_quarter_lordQuarter LordCRead-onlyIdempotentInspect
Lord of the chart's seasonal quarter.
[Group: Hellenistic: Hand tradition] [Endpoint: POST /v1/hellenistic/hand/quarter-lord] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lord | No |
TDQS
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 by structured data. The description adds only the cost (10 credits, Tier 1) and the endpoint path, which is genuinely useful operational context beyond the annotations, but it discloses nothing about what is computed or what the technique depends on.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded purpose sentence followed by three bracketed metadata tags; there is no padding or repetition. It is tight, though the brevity is under-specification rather than genuine economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool requires a full natal chart plus a targetDate and returns a specialized Hellenistic time-lord result, yet the description never says what a quarter lord means in practice or how the target date affects the result. With an output schema present, return format need not be explained, but the routing and conceptual context are missing for a technique-level endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the body/timezone/houseSystem fields carry extensive documentation, so the baseline is 3. The description adds no parameter meaning at all — notably it never explains the targetDate field that distinguishes this from a plain natal chart call.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Lord of the chart's seasonal quarter" essentially restates the tool name (quarter_lord). It names the astrological concept but gives no action verb, no scope, and no differentiation from the many other Hellenistic: Hand time-lord siblings (decennials, perfections, bounds, sect_strength), which an agent cannot disambiguate from this line alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of any alternative tool. The agent is given no condition under which this technique should be chosen over the other Hellenistic time-lord endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_hand_sect_strengthSect Strength ScoreCRead-onlyIdempotentInspect
Numerical sect-light dignity scoring.
[Group: Hellenistic: Hand tradition] [Endpoint: POST /v1/hellenistic/hand/sect-strength] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| score | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, and the description is consistent with them. It adds one genuinely new behavioral fact — the 10-credit Tier 1 cost — but says nothing about what the score means, its range, or error behavior. With annotations carrying the safety profile, this is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The front-loaded one-line purpose followed by compact bracketed tags is efficient and easy to scan, with no wasted prose. The trade-off is that brevity is achieved partly by omitting needed guidance rather than by tight writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, niche Hellenistic endpoint with dozens of near-neighbor siblings and an existing output schema, the definition is under-complete: no usage routing, no explanation of the score's semantics, and no coverage of the optional parameters. Only the bare mechanical facts are supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description should compensate, but it merely restates the four required fields (date, time, latitude, longitude) already flagged in the schema. None of the eleven optional parameters (zodiacType, houseSystem, ayanamsa, timezone, fields, etc.) are illuminated, leaving a real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Numerical sect-light dignity scoring' names a specific technique (sect-light dignity) and the output form (a numerical score), so an agent can grasp what is computed. However, it does not distinguish this Hand-tradition sect tool from sibling sect-related tools such as astroway_hellenistic_schmidt_sect_classes, and there is no verb describing the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides only group, endpoint, required params, and cost — no when-to-use, when-not, or alternative guidance. Nothing tells the agent when to choose this over the many other Hellenistic sect/dignity endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_schmidt_aspectual_typologyAspectual TypologyCRead-onlyIdempotentInspect
Aspect classes per Schmidt.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/aspectual-typology] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| typology | No | |
| disclaimer | No |
TDQS
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 bar is lower. The description usefully adds billing cost (10 credits, Tier 1) and the four required inputs, but says nothing about what the computation actually produces or how it behaves on edge inputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is tight and front-loaded with structured metadata, with zero wasted words. However, the brevity reflects under-specification rather than disciplined concision there simply is not enough content to guide an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present the return format needn't be described, but for a 15-parameter astrological computation the definition omits any explanation of what aspect classes are being classified or how the sidereal/house-system options affect results. It is too thin to be operationally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (33% across 15 parameters), so the description is expected to compensate, but it only re-lists the four required parameters that the schema already marks required. It adds no meaning for ayanamsa, zodiacType, houseSystem, fields, precision, or timezone handling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Aspect classes per Schmidt" is a bare noun phrase that essentially restates the title "Aspectual Typology" with no verb and no statement of what the tool returns. It gives no basis for distinguishing it from near-identical siblings such as astroway_hels_aspectual_typology or the other Schmidt-tradition tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains only group/endpoint/required/cost metadata and says nothing about when to reach for this tool versus the many neighboring Hellenistic or Schmidt tools. No prerequisites, no exclusions, no alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_schmidt_derivative_houses_methodDerivative HousesCRead-onlyIdempotentInspect
Derived-house technique.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/derivative-houses-method] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| examples | No | |
| disclaimer | No | |
| derivativeMap | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world behavior, so the safety profile is covered. The description adds genuinely useful context the annotations do not: cost (10 credits, Tier 1) and the POST endpoint. It says nothing about the shape of the calculation or output, but with annotations carrying safety this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata lines are scannable and front-loaded, and no sentence is padded. However, the whole payload is a stub rather than a tight summary, so it reads as under-specification rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. But for a 15-parameter specialized Hellenistic technique with a nearly identical sibling, the description omits what the technique produces, how it differs from astroway_hels_derivative_houses_method, and any guidance on the optional chart-configuration parameters that heavily shape the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a compensation burden it does not meet. It lists the four required fields (date, time, latitude, longitude), which merely duplicates the schema's required array, and explains none of the optional inputs (fields, ayanamsa, zodiacType, houseSystem, precision, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Derived-house technique" restates the title/name without stating what the tool actually computes or returns. There is no verb or resource explanation, and no differentiation from the near-identical sibling astroway_hels_derivative_houses_method. The metadata brackets add endpoint/cost framing but not purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternatives are given. In a catalog of hundreds of astrology tools, the agent has no signal for choosing this over the sibling derivative-houses methods. The only contextual hint is the implicit group label.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_schmidt_ennea_mooiraiEnnea MooiraiCRead-onlyIdempotentInspect
Nine fates classification.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/ennea-mooirai] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No |
TDQS
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 covered. The description usefully adds the cost (10 credits, Tier 1) and the endpoint verb, which are real behavioral facts not in the annotations. It does not describe the response shape or any limits, so it is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracket-tag format is compact and front-loads the label, group, endpoint, required params and cost in one block, so nothing is wasteful. However, the brevity comes at the cost of substance — it is concise by omission rather than by tight writing, and the key sentence ('Nine fates classification') conveys little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter astrological computation with an output schema, the description leaves the core question unanswered: what the 'ennea mooirai' classification is and what an agent gets back. It omits any mention of sidereal/tropical assumptions or house system defaults that materially change the result. The endpoint/cost metadata helps, but the definition is not sufficient to invoke and interpret the tool confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only 33% schema description coverage, the description needs to compensate, and it does not. It merely repeats the four required parameters (date, time, latitude, longitude) that the schema already marks as required, adding no format, range or meaning for ayanamsa, zodiacType, houseSystem, timezoneOffset or the compact-mode fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The one-line 'Nine fates classification' essentially restates the tool title (Ennea Mooirai = nine fates) without saying what is computed, what chart inputs produce, or what the classification means. Among the many astroway_hellenistic_schmidt_* siblings, nothing distinguishes this tool's output. No verb, no resource specificity beyond a vague label.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The '[Group: Hellenistic: Schmidt tradition]' tag gives weak implied routing among the Schmidt/Brennan/Greenbaum/Hand families, but there is no explicit statement of when to pick this tool over, say, astroway_hellenistic_schmidt_sect_classes or the greenbaum equivalents. No when-not guidance and no prerequisites beyond the required-parameter list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_schmidt_levels_of_causationLevels of CausationCRead-onlyIdempotentInspect
Schmidt's causation tiers.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/levels-of-causation] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| heimarmene_fate | No | |
| pronoia_providence | No | |
| sympatheia_resonance | No | |
| oikeiosis_familiarity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, so safety is covered. The description adds genuinely useful non-schema facts: the POST endpoint, the required input set, and the 10-credit Tier 1 cost. It still says nothing about what the computation returns conceptually or any limits beyond cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata block is short and front-loaded, but it is a template that conveys no domain content, so its efficiency is partly wasted space. Nothing is padded, yet little earns its place beyond cost and required inputs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a complex 15-parameter, 3-enum astrological computation with a defined output schema, and the description never explains what the tiers of causation are or what the response contains conceptually. Output schema exists so return values need not be explained, but the technique itself is left opaque.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should carry weight, but it only echoes the four required params already enforced by the schema. Specialized inputs like ayanamsa, zodiacType, houseSystem, fields, and precision receive no clarification here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Schmidt's causation tiers" restates the tool name/title rather than describing an action or output. It gives no verb+resource framing and does not distinguish it from the many other Schmidt-tradition siblings such as astroway_hellenistic_schmidt_sect_classes or astroway_hellenistic_schmidt_aspectual_typology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The block lists required inputs, endpoint, and cost but never says when to use this tool, when not to, or which sibling to prefer. An agent has no basis for choosing between the ~20 Schmidt/Hand/Hellenistic technique endpoints beyond the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_schmidt_lord_of_predictionLord of PredictionCRead-onlyIdempotentInspect
Predictive significator selection.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/lord-of-prediction] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lord | No |
TDQS
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 and repeatability profile is fully covered structurally. The description's only additive behavioral fact is the cost tier (10 credits, Tier 1), which is genuine context not present in the annotations. It says nothing about what the computation depends on, latency, or determinism across different targetAge values, so it goes no further than the metadata block.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four words of purpose plus bracketed metadata lines — front-loaded but severely under-specified rather than concise. The structure is clean, but the content budget is spent on group/endpoint/cost labels instead of the one thing an agent needs (what the tool does and why targetAge matters).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. What is missing is any statement of what a 'lord of prediction' computation yields for a given targetAge — the required, tool-specific parameter is entirely unmentioned, leaving an agent unable to judge whether this output fits their question. For a specialized Hellenistic tool with a required age input, this is a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the body schema documents birth data, timezone handling, houseSystem letters, and the compact-mode fields/precision parameters in detail. The description adds nothing about parameters, and most notably never mentions targetAge, the one required field specific to this tool. With the schema doing all the work, the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'Predictive significator selection' is essentially a tautological gloss on the tool's title 'Lord of Prediction' — it names a topic area but never says what is actually computed or returned. It does not distinguish this tool from its near-identical sibling astroway_hels_lord_of_prediction or from the other schmidt-family tools such as derivative_houses_method or levels_of_causation. An agent cannot tell from this text what makes the tool distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternative. The only routing aid is the '[Group: Hellenistic: Schmidt tradition]' tag, which is taxonomic rather than actionable. The metadata does state cost (10 credits, Tier 1) and the endpoint, which is mildly useful for budgeting but not for selecting this tool over a sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_schmidt_morning_evening_starsMorning/Evening StarsCRead-onlyIdempotentInspect
Morning vs evening star classification.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/morning-evening-stars] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| venus | No | |
| source | No | |
| mercury | No | |
| doctrine | No | |
| disclaimer | No |
TDQS
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 covered. The description adds genuinely useful operational context: the POST endpoint and the 10-credit Tier 1 cost, which the agent cannot get from annotations. It does not describe what the classification computes or any edge cases, but against annotations that bar is lower.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short, front-loaded with the one-line purpose, and the bracketed metadata is compact and scannable. Nothing is padded, though the bracketed lines carry most of the information load rather than the prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 specialized Hellenistic technique with 15 parameters at 33% coverage, the description does not say what a morning/evening star classification actually yields or when the sidereal/tropical and ayanamsa options matter, leaving the agent under-equipped for a niche computation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description would need to compensate, and it does not. It merely lists the four required parameters (date, time, latitude, longitude), which the schema already marks as required, adding no syntax, format, or meaning. Several params (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId) remain undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Morning vs evening star classification' names a specific astrological concept and the action of classifying, so the resource is identifiable. However, it is essentially a restatement of the tool name, and it does not differentiate from the near-identical sibling astroway_hels_morning_evening_stars or from astroway_hellenistic_schmidt_stations_and_phases. An agent cannot tell why it should pick this Schmidt variant over the others from the description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains only a metadata block (group, endpoint, required params, cost) and gives no when-to-use context, no prerequisites, and no alternatives. With two other Schmidt/hels sibling tools covering closely related Hellenistic classifications, the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_schmidt_qualities_and_quantitiesQualities & QuantitiesCRead-onlyIdempotentInspect
Qualitative + quantitative analysis.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/qualities-and-quantities] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely useful operational context beyond that: the POST endpoint, the required inputs, and the 10-credit Tier 1 cost. It does not disclose anything about output shape or depth, but the annotations carry the behavioral burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata block is compact and front-loaded, and every line carries information (group, endpoint, required inputs, cost). However, the one prose sentence is wasted space because it is a tautology rather than an actual purpose statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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/endpoint are given. But for a 15-parameter tool with only 33% schema coverage, the description is not complete enough: an agent cannot determine what the analysis produces or how to choose among the ~15 Schmidt-tradition siblings, and optional parameters are entirely undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate and does not. It merely repeats the four required parameters already marked required in the schema (date, time, latitude, longitude) and says nothing about the semantics of houseSystem, zodiacType, ayanamsa, cosmogram, or the compact-mode fields/precision options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Qualitative + quantitative analysis" is essentially a restatement of the title "Qualities & Quantities" with no verb or resource naming what is actually computed. The group tag (Hellenistic: Schmidt tradition) and endpoint give context but do not tell the agent what astrological analysis this returns or how it differs from sibling Schmidt tools like ennea_mooirai or levels_of_causation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 appears anywhere in the description. The bracketed metadata lists required inputs and cost but never states the conditions that should select this tool over the many other Hellenistic/Schmidt endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_schmidt_sect_classesSect ClassesCRead-onlyIdempotentInspect
Sect classifications per Schmidt.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/sect-classes] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| sect | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful operational context not in the annotations: the POST endpoint and the cost (10 credits, Tier 1), which is important for a paid API. It still says nothing about what the computation is sensitive to or how the response is shaped.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and front-loaded with the purpose sentence, which is good. However, the bracketed metadata block is largely boilerplate, and the [Required: ...] line duplicates the schema's required array rather than earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter computed-chart tool, the definition is thin: it never explains what sect classifications mean, which optional inputs change the result, or how this endpoint relates to its Schmidt/Hellenistic siblings. The existence of an output schema excuses it from describing return values, but the input-side and selection-side gaps remain significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate for undocumented options like houseSystem, zodiacType, and ayanamsa that plausibly affect the classification. Instead it only restates the four required parameters, which the schema already marks as required, adding no semantics beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Sect classifications per Schmidt" identifies the resource and the tradition, but it is a noun phrase with no verb and no explanation of what a sect classification actually is (day/night sect, planet placement in sect, etc.). It does not distinguish itself from nearby siblings such as astroway_hellenistic_hand_sect_strength or the other Schmidt-tradition tools, so the agent must guess which sect-related endpoint is wanted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no alternatives. The bracketed [Group]/[Endpoint]/[Required] lines are routing metadata, not selection criteria, so an agent cannot tell from this text when to call this instead of hand_sect_strength or any other Schmidt tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hellenistic_schmidt_stations_and_phasesStations & PhasesCRead-onlyIdempotentInspect
Heliacal phases and stations.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/stations-and-phases] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No |
TDQS
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 context in the credit cost (10 credits, Tier 1) and the endpoint, but says nothing about what is computed, return shape, or any domain-specific caveats for heliacal phase/station calculations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, front-loaded, and cleanly delimited with bracketed metadata blocks that are easy to scan. The fault is under-specification rather than bloat, so conciseness itself is handled well.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, POST-based ephemeris tool in a crowded Hellenistic family, this is not complete enough: the functional statement is four words and the rest is boilerplate (group, endpoint, required, cost). An output schema exists so return values needn't be explained, but the description still leaves the agent without enough to confidently distinguish or correctly invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description should compensate, yet it merely repeats the four required fields already marked required in the schema and adds no semantics for the other eleven parameters. No format, range, or interaction guidance (e.g. timezone vs timezoneOffset) is contributed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific astrological resource ('Heliacal phases and stations'), but it is a noun phrase with no verb and largely restates the title 'Stations & Phases'. It gives no indication of what the tool actually computes or returns, and it does not distinguish itself from near-identical siblings such as astroway_hels_stations_and_phases or astroway_hellenistic_schmidt_morning_evening_stars.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives, despite dozens of closely related Hellenistic and Schmidt-tradition siblings. The only usage-adjacent content is a restatement of the required parameters, which is 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_hellenistic_schmidt_stoic_elementhoodStoic ElementhoodCRead-onlyIdempotentInspect
Stoic doctrine of elemental natures.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/stoic-elementhood] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| elements | No | |
| qualities | No | |
| disclaimer | No | |
| dominantElement | No | |
| dominantQuality | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description does add useful operational context the annotations lack: the cost tier (10 credits) and endpoint/group. It says nothing about response size or rate behavior, and the output schema carries the return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded with a clear key-value metadata block; nothing is wasted. The terseness comes at the cost of informativeness, but structurally it is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with low schema coverage, the description is far too thin: it does not explain what the tool produces, how it differs from the redundant hels/Schmidt siblings, or how optional parameters affect results. An agent could invoke it, but not confidently select it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema description coverage across 15 parameters, the description should compensate, but it merely lists the four required parameters (date, time, latitude, longitude), which the schema already marks as required. It adds no format, default, or interaction meaning for the many optional parameters (ayanamsa, houseSystem, precision, fields, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says only "Stoic doctrine of elemental natures," which essentially restates the tool name/title rather than stating what the tool computes or returns. It names no verb and gives no way to distinguish it from the many sibling Schmidt/hels Hellenistic doctrine tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives among the dozens of near-identical siblings (e.g. astroway_hels_stoic_elementhood, astroway_hellenistic_schmidt_*). The bracketed metadata is invocation plumbing, 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_hels_aspectual_typologyAspectual TypologyCRead-onlyIdempotentInspect
Aspect classes per Schmidt.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/aspectual-typology] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_schmidt_aspectual_typology.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| typology | No | |
| disclaimer | No |
TDQS
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 description adds the credit cost (10 credits, Tier 1) and the endpoint group, which is genuinely useful quota information not present in structured fields. It says nothing about response shape, caching, or limits, but the output schema covers return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very compact and front-loaded: the purpose sentence comes first, followed by scannable bracketed metadata for group, endpoint, required inputs, and cost. The POST endpoint URL is arguably dead weight for an MCP caller, but nothing else is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry the safety profile. What remains missing is any explanation of the eleven optional parameters this tool exposes, which for a 15-param astrological calculation is a meaningful gap even if the shared parameter block is documented elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (15 params), and the description contributes nothing beyond restating the four required fields already declared in the schema's `required` array. Cryptic params such as the 25 single-letter `houseSystem` enum, `cosmogram`, `zodiacType`, and `ayanamsaId` are left unexplained in both schema and description, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
"Aspect classes per Schmidt" names a topical domain but no verb or output, so the agent cannot tell what is actually computed or returned. It does distinguish the tool topically from the many other Schmidt modules (sect_classes, lord_of_prediction, etc.) and discloses that it duplicates the canonical `astroway_hellenistic_schmidt_aspectual_typology`, which aids identification, but the purpose itself remains vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to choose this tool over the other Schmidt analysis modules or when its output is relevant. The only selection-relevant signal is the parenthetical alias note, which implies the agent should not call both this and the canonical name; that is identity information, 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_hels_derivative_houses_methodDerivative HousesCRead-onlyIdempotentInspect
Derived-house technique.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/derivative-houses-method] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_schmidt_derivative_houses_method.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| examples | No | |
| disclaimer | No | |
| derivativeMap | No |
TDQS
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 adds genuinely non-structured context: the HTTP endpoint, the four required inputs, and the cost (10 credits, Tier 1). It discloses nothing about what the computation returns or any limits, but the cost and required-input callout exceed what 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata layout is compact, front-loaded and easy to scan, with no prose padding. It is slightly redundant in restating the required-parameter list that the schema already declares, but overall it wastes little space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, but for a technique-specific Hellenistic computation sitting among hundreds of siblings the description leaves the agent without any sense of what the result represents or when it applies. Combined with 33% schema coverage, the definition is too thin to be complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate — instead it merely repeats the four required fields already declared in the schema's required array. No meaning is added for the many undocumented parameters (houseSystem, zodiacType, cosmogram, etc.), leaving the agent to infer their effect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Derived-house technique" essentially restates the title "Derivative Houses" without saying what the tool computes, what a derived house is, or what output the agent gets. The endpoint and group tags identify the family but add no functional verb+resource description. An agent cannot tell from this text what this call actually produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives. The only routing hint is the parenthetical that this is a "Cursor-friendly alias" for astroway_hellenistic_schmidt_derivative_houses_method, which does tell the agent it is a duplicate name — useful, but it is one hint, not usage guidance across the vast Hellenistic/Schmidt sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hels_levels_of_causationLevels of CausationCRead-onlyIdempotentInspect
Schmidt's causation tiers.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/levels-of-causation] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_schmidt_levels_of_causation.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| heimarmene_fate | No | |
| pronoia_providence | No | |
| sympatheia_resonance | No | |
| oikeiosis_familiarity | No |
TDQS
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 safe-read profile is covered. The description adds genuinely useful context beyond that: the credit cost (10 credits, Tier 1), the endpoint, and the confirmed required parameters. It does not say anything further about output behavior, but the safety bar is already met by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short, front-loaded, and structured with bracketed metadata lines, so nothing is padded or rambling. However, efficiency comes at the cost of substance: it is a stub rather than a concise description, so it only reaches the minimum-viable level.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 documented, but for a 15-parameter specialized Hellenistic technique the description never explains what the tool actually outputs or how it relates to the Schmidt tradition. Listing required params, cost, and endpoint is not enough for an agent to use it confidently against the many near-identical siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description is expected to compensate for undocumented parameters (city, name, cosmogram, zodiacType, houseSystem, etc.) — it does not. It merely repeats the four required parameters that the schema already marks in its `required` array, adding no semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Schmidt's causation tiers" restates the title rather than describing an operation — there is no verb and no explanation of what the tool computes or returns. The only routing value is the note that it aliases `astroway_hellenistic_schmidt_levels_of_causation`, which helps identify the tool but not distinguish its function from siblings like `astroway_hels_aspectual_typology`.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 this technique applies, and no mention of alternatives among the many `astroway_hels_*`/`astroway_hellenistic_schmidt_*` siblings. The bracketed metadata (group, endpoint, cost) is administrative, 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_hels_lord_of_predictionLord of PredictionCRead-onlyIdempotentInspect
Predictive significator selection.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/lord-of-prediction] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_schmidt_lord_of_prediction.)
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lord | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a read-only, idempotent, closed-world, non-destructive call, so safety is covered. The description adds genuine behavioral context the annotations do not: cost (10 credits, Tier 1) and the underlying endpoint. It does not describe the return shape, though an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the purpose before a compact bracketed metadata block (group, endpoint, cost, alias). Every line carries distinct information with no filler, though the bracketed format is more machine-metadata than prose guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With full annotations, full schema coverage, and an output schema, most structured burden is already carried elsewhere. What remains missing is conceptual completeness: an agent still cannot tell what a 'Lord of Prediction' returns or how targetAge is applied, leaving the tool's core semantics under-explained despite the procedural metadata.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the nested body, fields, and precision parameters are already documented in structured data; the accepted response-'fields books baseline 3. The description adds no parameter meaning of its own (notably it says nothing about the required targetAge), so it neither helps nor compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase "Predictive significator selection" nominally pairs a resource (predictive significator) with an action (selection), but it is jargon-heavy and largely restates the title 'Lord of Prediction' without explaining what the technique produces. The most useful clarifying line is the alias note, which at least tells the agent this duplicates `astroway_hellenistic_schmidt_lord_of_prediction`, but nothing distinguishes it functionally from the other Schmidt-tradition siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus alternatives such as the canonical `astroway_hellenistic_schmidt_lord_of_prediction` or neighboring Schmidt techniques. The alias remark implies equivalence rather than a selection rule, and nothing states prerequisites (e.g., that targetAge drives predictive timing).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hels_morning_evening_starsMorning/Evening StarsBRead-onlyIdempotentInspect
Morning vs evening star classification.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/morning-evening-stars] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_schmidt_morning_evening_stars.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| venus | No | |
| source | No | |
| mercury | No | |
| doctrine | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description usefully adds cost (10 credits, Tier 1), the HTTP endpoint, and the fact that this is an alias of astroway_hellenistic_schmidt_morning_evening_stars — real behavioral context. It says nothing about what is computed or returned, but with annotations carrying the safety burden this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded, then bracketed metadata lines that are each scannable and factual, ending with the alias note. Nothing is padded, though the metadata block is somewhat dense relative to the single line of actual explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a 15-parameter tool at 33% schema coverage, the description omits any guidance on the astrological configuration knobs (ayanamsa, zodiacType, houseSystem) or the meaning of the classification result, leaving it minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate — but it only restates the four required fields already declared in the schema's required array. It adds no meaning for the required date/time/lat/long inputs and ignores undocumented optional parameters such as city, name, cosmogram, zodiacType, and houseSystem.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening line states a specific operation on a specific resource: classifying planets/stars as morning vs evening stars. The group tag '[Group: Hellenistic: Schmidt tradition]' and endpoint path differentiate it from the parallel Brennan/Greenbaum/Hand traditions in the sibling list. It stops short of explaining what the classification output means, but the purpose is clear enough to route correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives such as astroway_hels_stations_and_phases or the non-alias form of this same tool. The required-parameter list and cost note 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_hels_qualities_and_quantitiesQualities & QuantitiesCRead-onlyIdempotentInspect
Qualitative + quantitative analysis.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/qualities-and-quantities] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_schmidt_qualities_and_quantities.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe, idempotent, closed-world read profile, so the bar is low. The description adds genuinely useful non-annotation facts, namely the credit cost (10, Tier 1) and the HTTP endpoint, but says nothing about what the analysis produces or any rate/limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata blocks are compact and front-loaded with the purpose sentence first, so there is little waste. However the brevity reflects under-specification rather than tight writing, and the endpoint line earns its place only marginally.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 15 parameters, an output schema, and a specialized Hellenistic technique, the description should orient the agent on what the analysis yields and how it differs from other Schmidt endpoints. It supplies only grouping, cost, and an alias, leaving the conceptual behavior unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the description is expected to compensate for the 15 parameters. Instead it merely repeats the four required field names, which the schema already marks as required, and adds no meaning for the other eleven undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Qualitative + quantitative analysis" essentially restates the title "Qualities & Quantities" without saying what is computed, what the Schmidt tradition contributes, or what a caller receives. The alias note and group tag do help route it to the correct Schmidt-school sibling, but the substantive purpose is a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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-selection guidance is given. Naming the parent tool as an alias implies equivalence but doesn't tell the agent when to pick the alias versus the full name, and required params/cost are metadata rather than usage criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_hels_stations_and_phasesStations & PhasesBRead-onlyIdempotentInspect
Heliacal phases and stations.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/stations-and-phases] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_schmidt_stations_and_phases.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, closed-world read. The description adds the credit cost (10 credits, Tier 1) and the endpoint, which annotations do not carry. It stops short of describing what the calculation returns or any limits on the date range.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose in the first clause, then packs metadata into bracketed lines. No wasted prose, though the bracketed bookkeeping is dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/endpoint/required fields are covered. However, for a 15-parameter tool with low schema coverage, the definition leaves the agent guessing about the optional inputs and when this tool is the right choice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate but does not. It merely restates the four required fields already listed in the schema and adds nothing about the condition-sensitive optional parameters such as ayanamsa, houseSystem, or zodiacType.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('heliacal phases and stations') and situates it in the Schmidt tradition group, which distinguishes it from the other Hellenistic sibling families. There is no explicit verb, but the calculation is named precisely enough. The alias note ties it to `astroway_hellenistic_schmidt_stations_and_phases`, aiding disambiguation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to reach for this rather than the canonical tool or any other Hellenistic sibling. The description gives endpoint, cost, and required inputs but no usage context, 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_hels_stoic_elementhoodStoic ElementhoodCRead-onlyIdempotentInspect
Stoic doctrine of elemental natures.
[Group: Hellenistic: Schmidt tradition] [Endpoint: POST /v1/hellenistic/schmidt/stoic-elementhood] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_hellenistic_schmidt_stoic_elementhood.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| elements | No | |
| qualities | No | |
| disclaimer | No | |
| dominantElement | No | |
| dominantQuality | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The one real addition is the billing trait — [Cost: 10 credits (Tier 1)] — which is not in the schema or annotations and matters to an agent deciding whether to call it. Nothing else behavioral (error modes, limits) is disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata block is scannable and front-loads the concept line, but much of it is scaffolding (endpoint path, required-params list) that duplicates structured data already available to the agent. The alias sentence earns its place; the endpoint and required lists do not.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 safety. However, for a doctrinally obscure tool with 15 parameters at 33% coverage, the description gives no sense of what the result represents or which optional parameters matter (e.g. ayanamsa/zodiacType shift the whole computation), leaving the agent under-equipped relative to the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the description should compensate for the 11 undocumented parameters, but it does not. The [Required: date, time, latitude, longitude] line merely restates what the schema's `required` array already says, adding zero meaning for city, name, cosmogram, zodiacType, houseSystem, or the compact-mode fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Stoic doctrine of elemental natures" names the subject area and the [Group: Hellenistic: Schmidt tradition] tag places it among the schmidt_* siblings, so it is not a pure tautology. But it never says what operation is performed or what the tool returns — a chart computation, a doctrinal text, or a classification — so an agent cannot tell what calling it actually yields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The note that this is a cursor-friendly alias for `astroway_hellenistic_schmidt_stoic_elementhood` is genuinely useful routing information: it tells the agent this is the same capability under a short name and shouldn't be called alongside the canonical one. Beyond that there is no when-to-use/when-not guidance versus the other Schmidt or Hellenistic tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_horary_diagnosticsHorary DiagnosticsBRead-onlyIdempotentInspect
Run a full horary radicality diagnostic including early/late ASC, Via Combusta, Saturn in 7th, and considerations before judgement.
[Group: Horary] [Endpoint: POST /v1/horary/diagnostics] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| issues | No | |
| passed | No | |
| radical | No | |
| recommendation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful operational context beyond that: a cost of 20 credits (Tier 2), the POST endpoint, and the four required date/time/coordinate inputs. It stops short of describing determinism or any output characteristics, but the credit cost disclosure is a meaningful addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is a single front-loaded sentence that names the tool's scope before any metadata, and the bracketed Group/Endpoint/Required/Cost block is scannable and each line carries distinct information. No redundant or filler sentences, though the required-fields line duplicates the schema's own required array.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 plus cost line cover the safety and budget concerns. However, for a 15-parameter tool with only 33% schema coverage and five horary siblings, the description omits both the alternative-tool routing and any explanation of the sidereal/house-system/timezone parameters that change the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description must carry weight — yet it only restates the four required fields (date, time, latitude, longitude), which the schema's 'required' array already provides. Eleven optional parameters, including the semantically important timezone, timezoneOffset, houseSystem, ayanamsa/zodiacType and the compact-mode fields/precision options, receive no explanation in the description even though they materially affect the diagnostic.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Run a full horary radicality diagnostic') and enumerates the checks it covers (early/late ASC, Via Combusta, Saturn in 7th, considerations before judgement), which is far more informative than the title alone. It does not, however, explicitly distinguish itself from the sibling horary tools such as astroway_horary_horary or astroway_horary_via_combusta, so an agent must infer that this is the composite diagnostic.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance: nothing says this should be run before judgement, nor whether the chart should first be cast with astroway_horary_horary. The 'radicality diagnostic' framing implies a pre-judgement check, but the agent is left to infer the workflow and the relationship to the five sibling horary tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_horary_horaryHorary ChartBRead-onlyIdempotentInspect
Calculate a horary chart for a question moment and return the chart data with radicality assessment and significator analysis.
[Group: Horary] [Endpoint: POST /v1/horary] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| chart | No | |
| indicators | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds real context beyond that, namely the POST /v1/horary endpoint and the 20-credit Tier 2 cost, which is useful for budgeting calls, but it says nothing about latency, caching, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose sentence is front-loaded and the bracketed metadata block is compact, scannable, and carries cost and endpoint facts that are not available in structured fields. Slightly bulky formatting but no redundant padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with an output schema (so return values need no explanation), the definition covers the core purpose and cost but leaves the timezone-vs-timezoneOffset decision, house/zodiac selection, and sibling disambiguation to the schema alone. Adequate as a minimum viable description, not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate and does not. It merely restates the four required parameters (date, time, latitude, longitude) that the schema already marks as required, and adds no meaning for houseSystem, zodiacType, cosmogram, name, city, or the ayanamsa choices.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate a horary chart') plus the outputs it yields ('radicality assessment and significator analysis'), which is more informative than the bare name. It does not, however, distinguish this core horary calculation from the five sibling horary tools (diagnostics, moon_aspects, moon_voc, planetary_hours, via_combusta) or from astroway_vedic_kp_horary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of alternatives, despite several closely related horary siblings. The only routing help is the required-parameter list and cost tag; an agent still has to guess whether this is the base chart call or one of the specialized horary endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_horary_moon_aspectsHorary Moon AspectsBRead-onlyIdempotentInspect
List all aspects the Moon will make in this horary chart before leaving its sign, the key timing tool in horary.
[Group: Horary] [Endpoint: POST /v1/horary/moon-aspects] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lastAspect | No | |
| nextAspect | No |
TDQS
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 the result-bounding rule (aspects only until sign exit) and the metadata block discloses a real behavioral trait not in the schema — cost of 20 credits (Tier 2) and the POST endpoint. It says nothing about auth, rate limits, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense, front-loaded sentence gives purpose and scope immediately, and the bracketed metadata block is scannable rather than prose. No filler sentences; only the lack of any alternative/comparison sentence keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not describe return values, and annotations cover the safety profile. However, for a 15-parameter chart tool sitting among five horary siblings and a near-identical astroway_calendar_moon_aspects, the definition leaves sibling selection and the ayanamsa/zodiac/house-system configuration entirely unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a compensation burden it does not meet. It contributes only the required list (date, time, latitude, longitude), while ayanamsaId, zodiacType, houseSystem, cosmogram, city and name remain undocumented in either place, and nothing explains how the chart-defining inputs shape the returned aspects.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (list), a specific resource (Moon aspects), and a precise scope constraint (before the Moon leaves its sign), plus a role label (key timing tool in horary). This clearly separates it from astroway_horary_moon_voc (void of course) and astroway_horary_diagnostics, though it does not name those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"the key timing tool in horary" implies when the tool is appropriate, but there is no explicit when-to-use/when-not guidance, no statement of alternatives, and no prerequisites (e.g. that this is a standalone horary chart cast for the question moment). Usage is inferable rather than instructed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_horary_moon_vocHorary Moon VOCBRead-onlyIdempotentInspect
Check if the Moon is void-of-course in this horary chart and return the last aspect it made and when it enters the next sign.
[Group: Horary] [Endpoint: POST /v1/horary/moon-voc] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| voc | No | |
| lastAspect | No | |
| nextSignEntry | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered. The description adds two genuine behavioral facts (it reports the last aspect made and the ingress time), which is useful response-shape context beyond the annotations, but it says nothing about cost handling, caching, or edge cases like a Moon that never goes VOC.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is a single well-formed sentence with the core action front-loaded, followed by a compact metadata block for endpoint/required/cost. Nothing is padded, though the metadata block partly duplicates structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and the description is complete for the core calculation. However, for a 15-parameter chart tool with only 33% schema coverage, the definition offers no guidance on the optional configuration parameters an agent must consider.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the four required parameters (date, time, latitude, longitude) carry no descriptions in either the schema or the prose. The description restates only the required field names in the metadata block, adding no meaning about format, timezone interaction, or how the many optional chart modifiers (houseSystem, zodiacType, ayanamsa) affect the result.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Check") and resource (Moon void-of-course) and even lists the returned fields (last aspect, next-sign ingress), so an agent knows exactly what it computes. It implicitly scopes to a horary chart, but it never distinguishes itself from the closely-named sibling astroway_calendar_moon_voc or astroway_stream_void_of_course.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "in this horary chart" implies the horary/electional use case, but there is no explicit when-to-use guidance and no contrast with the calendar-based or streaming void-of-course siblings. Usage must be inferred from the group tag.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_horary_planetary_hoursHorary Planetary HoursBRead-onlyIdempotentInspect
Return the planetary hour ruler at the exact moment of a horary question and check if it matches the ASC ruler.
[Group: Horary] [Endpoint: POST /v1/horary/planetary-hours] [Required: dayOfWeek, sunriseHour, sunsetHour] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| dayOfWeek | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| sunsetHour | Yes | ||
| currentHour | No | ||
| sunriseHour | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| match | No | |
| hourEnd | No | |
| ascRuler | No | |
| dayRuler | No | |
| hourRuler | No | |
| hourStart | No | |
| hourNumber | No |
TDQS
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 context the annotations don't: the POST endpoint, the required field set, and the '20 credits (Tier 2)' cost. It does not explain any rate limiting or result semantics, but with strong annotation coverage a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose in the first sentence, followed by a compact bracketed metadata block (group, endpoint, required, cost). No filler, though the [Required: ...] line largely duplicates the schema's required array.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, the description leaves the numeric parameter formats undefined and the role of currentHour (unlisted but clearly tied to 'the exact moment') unexplained, which is a meaningful gap for an otherwise simple read-only calculation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 33%: only 'fields' and 'precision' are documented. The description restates the three required params (already in the schema's required array) but gives no units or format for dayOfWeek (0-6? name?) or sunriseHour/sunsetHour (decimal hours? minutes?), and never mentions currentHour, which is schematically present and arguably essential to pin 'the exact moment'. That missing param is a real semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Return the planetary hour ruler' plus the dual scope 'at the exact moment of a horary question' and 'check if it matches the ASC ruler'. This is much clearer than the generic sibling astroway_calendar_planetary_hours, though it doesn't name that sibling explicitly to help disambiguation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies context (horary question + ASC comparison) but gives no explicit when-to-use, when-not-to-use, or alternatives. With near-identical siblings such as astroway_calendar_planetary_hours and astroway_horary_horary, the agent gets no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_horary_via_combustaVia Combusta CheckARead-onlyIdempotentInspect
Check if the Moon or ASC is in the Via Combusta (15° Libra – 15° Scorpio), a classical prohibition in horary.
[Group: Horary] [Endpoint: POST /v1/horary/via-combusta] [Required: moonLongitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| moonLongitude | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| warning | No | |
| moonSign | No | |
| ascLongitude | No | |
| moonLongitude | No | |
| ascViaCombusta | No | |
| moonViaCombusta | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds genuine behavioral context beyond that: the exact degree range being tested, its status as a prohibition, and the 10-credit Tier 1 cost, which matters for budgeting repeated calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence delivers the purpose, range and astrological significance, followed by terse metadata lines for group, endpoint, required param and cost. Front-loaded and waste-free, though the ASC mention is a small inaccuracy that costs clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry the safety profile. The gap is input semantics: for a single-parameter tool the description never states what form moonLongitude takes, and it advertises an ASC check the tool cannot perform.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%; moonLongitude has no description in the schema, and the description only implies it is the Moon's longitude without specifying the coordinate convention (e.g. 0–360 absolute ecliptic degrees vs. sign-relative). The reference to ASC checks suggests a second input that does not exist, adding confusion rather than clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and a precisely bounded astronomical condition ('check if ... in the Via Combusta (15° Libra – 15° Scorpio)'), which clearly separates it from siblings like horary_moon_voc or horary_diagnostics. It loses a point because it claims to check 'the Moon or ASC' while no ASC input exists in the schema, leaving the actual scope slightly ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'a classical prohibition in horary' implies why and when an agent would consult it, but there is no explicit when-to-use, when-not-to-use, or named alternative among the horary siblings. Usage is inferable 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_horoscope_compatibilityCompatibility HoroscopeARead-onlyIdempotentInspect
Generate a relationship horoscope based on synastry between two charts: strengths, friction points, and themes for the next 30 days.
[Group: Horoscope] [Endpoint: POST /v1/horoscope/compatibility] [Required: sign1, sign2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| sign1 | Yes | ||
| sign2 | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| disclaimer_inline | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| score | No | |
| summary | No | |
| language | No | |
| strengths | No | |
| challenges | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuinely useful non-annotation context: the endpoint, the cost (50 credits, Tier 3), and the required inputs — the credit cost in particular informs an agent's decision to call this over a cheaper sibling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and waste-free, and the bracketed metadata (group, endpoint, required, cost) is compact and scannable. Slightly mechanical, but nothing extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the cost, endpoint and required inputs are covered. It is nearly complete for a read-only generation tool; the main omission is whether only zodiac signs are needed (no birth data) and the default language behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (6 params, mostly undocumented enums), so the description needs to compensate and does not. It only restates 'Required: sign1, sign2', which is already in the schema, and adds nothing about language defaults, disclaimer_inline behavior, or how sign1/sign2 ordering affects the synastry reading.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Generate), a precise resource (relationship horoscope based on synastry between two charts), and enumerates the output substance (strengths, friction points, themes for the next 30 days). This clearly separates it from the single-sign siblings horoscope_daily/weekly/monthly/yearly and from the visual render_composite/bi_wheel tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and the phrase 'between two charts', so an agent can infer this is the compatibility/relationship tool. However, there is no explicit when-to-use versus when-not, no statement of prerequisites, and no named alternative (e.g., render_composite for a visual, ai_comparison_coach for narrative).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_horoscope_dailyDaily HoroscopeARead-onlyIdempotentInspect
Daily horoscope for a zodiac sign in 21 languages, written by a model from that sign's solar houses and the day's transits. style: "plain" gives everyday words with no astrological terms, written once in English and translated so every language says the same; length (short, medium) and topics choose its size and sections. Returns sections (overview, love, career, health, finance, advice) and the same text as horoscope, plus computed transits with solar houses, aspects, events, energy (1-10 with its factors), lucky and compatibleSigns.
[Group: Horoscope] [Endpoint: POST /v1/horoscope/daily] [Required: sign] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| sign | Yes | ||
| style | No | `astro` (default) names the planets, houses and aspects behind each point. `plain` uses everyday words with no astrological terms, and is written once in English and translated, so every language says the same thing. Daily, weekly and monthly. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| length | No | With `style: "plain"`: `short` (about 70-110 words a day) or `medium` (default, about 150-230). | |
| topics | No | Only these sections, in this order, in `sections` and in `horoscope`. Default all six. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| disclaimer_inline | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | No | |
| language | No | |
| horoscope | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent read (readOnlyHint, idempotentHint, destructiveHint=false), so the safety profile is covered. The description adds genuinely useful behavior: the text is model-written from solar houses and transits, and 'plain' is authored once in English then translated so all languages agree. It omits cost (50 credits, Tier 3) and any rate/limit context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, options second, return shape last; every sentence carries content. The return enumeration is long but scannable and no sentence is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so restating sections/horoscope/transits/energy is partly redundant, but nothing an agent needs to invoke the tool correctly is missing. The notable gap is the 50-credit Tier 3 cost and the absence of any sibling routing for the period variants.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at 56%, the description compensates by explaining the two highest-friction parameters in prose: style 'plain' vs the default 'astro', and length (short/medium word ranges) plus topics controlling sections and order. It says nothing about date, fields, precision or disclaimer_inline, leaving those to a partially-documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: 'Daily horoscope for a zodiac sign in 21 languages,' so an agent knows exactly what it produces. It never names the closely related siblings (astroway_horoscope_weekly, _monthly, _yearly, _compatibility), so the daily-vs-other-period distinction is left to the tool name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the resource ('daily horoscope') rather than stated; there is no when-to-use/when-not guidance and no routing to the weekly/monthly/yearly variants that sit right beside it. The option-level guidance (style, length, topics) helps within the call but does not address tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_horoscope_monthlyMonthly HoroscopeARead-onlyIdempotentInspect
Monthly horoscope for a zodiac sign: the same shape as the daily one, over 30 days from date, with the month's ingresses, stations and lunar phases.
[Group: Horoscope] [Endpoint: POST /v1/horoscope/monthly] [Required: sign] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| sign | Yes | ||
| style | No | `astro` (default) names the planets, houses and aspects behind each point. `plain` uses everyday words with no astrological terms, and is written once in English and translated, so every language says the same thing. Daily, weekly and monthly. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| length | No | With `style: "plain"`: `short` (about 70-110 words a day) or `medium` (default, about 150-230). | |
| topics | No | Only these sections, in this order, in `sections` and in `horoscope`. Default all six. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| disclaimer_inline | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | No | |
| language | No | |
| horoscope | No | |
| disclaimer | No |
TDQS
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), and the description adds genuinely non-annotation context: the 50-credit Tier 3 cost, the required parameter, the endpoint, and the kind of event data the month includes. It stops short of describing the response structure, but 'same shape as the daily one' gestures at that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence carrying the scope and content, followed by a compact bracketed metadata block for group, endpoint, required param, and cost. Little waste, though the metadata block is duplicated by structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/endpoint/required param are covered. But for a 9-parameter tool with only 56% schema description coverage, the description gives no guidance on choosing between `style`, `length` and `topics`, and its 'same shape as the daily one' reference makes the definition non-self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 56%, and the description explains the one thing the schema does not: `date` anchors a 30-day forward window. However, it says nothing about `sign`, `disclaimer_inline`, or how `style`, `length`, `topics` and `language` interact, so it only partially compensates for the undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope ('Monthly horoscope for a zodiac sign ... over 30 days from `date`') and enumerates the month's distinctive content (ingresses, stations, lunar phases). It implicitly contrasts with the daily horoscope, but never names the weekly/yearly siblings it must be chosen against, so an agent still has to infer the routing boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 30-day window from `date` implies when this tool is appropriate, but there is no explicit when-to-use or when-not-to-use guidance versus astroway_horoscope_weekly, astroway_horoscope_yearly, or astroway_reports_ai_monthly_narrative. Usage 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_horoscope_weeklyWeekly HoroscopeBRead-onlyIdempotentInspect
Weekly horoscope for a zodiac sign: the same shape as the daily one, with the week's ingresses, stations and lunar phases in events and in the text.
[Group: Horoscope] [Endpoint: POST /v1/horoscope/weekly] [Required: sign] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| sign | Yes | ||
| style | No | `astro` (default) names the planets, houses and aspects behind each point. `plain` uses everyday words with no astrological terms, and is written once in English and translated, so every language says the same thing. Daily, weekly and monthly. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| length | No | With `style: "plain"`: `short` (about 70-110 words a day) or `medium` (default, about 150-230). | |
| topics | No | Only these sections, in this order, in `sections` and in `horoscope`. Default all six. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| disclaimer_inline | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | No | |
| title | No | |
| weekEnd | No | |
| language | No | |
| weekStart | No | |
| keyTransits | No |
TDQS
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), so the bar is low, yet the description adds genuinely useful context beyond them: cost (50 credits, Tier 3), endpoint, and the required `sign`. It omits things like rate limits or pagination, but the cost and endpoint metadata are real value-adds.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in one sentence, with metadata (group, endpoint, required, cost) cleanly bracketed. No filler text; every line carries information, though the bracket block is a little terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and annotations cover safety, so the remaining burden is modest, but with 9 params and only 56% schema description coverage, several inputs remain entirely unexplained. Reference to the daily tool for response shape partially compensates but is not enough for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 'sign' is called out, which is already declared in the required array, so it adds nothing. Schema coverage is a middling 56%, leaving params like `date`, `language`, and `disclaimer_inline` undocumented in both schema and description, and the description does not compensate. Baseline 3 fits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Weekly horoscope for a zodiac sign') and implies scope through 'the week's ingresses, stations and lunar phases', which distinguishes it from the daily sibling it references. It does not spell out the daily/monthly/yearly distinction beyond the timeframe note, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not, or explicit alternative is given. The 'same shape as the daily one' remark is a shape hint, not routing guidance, so an agent gets no help choosing weekly vs monthly/yearly siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_horoscope_yearlyYearly HoroscopeBRead-onlyIdempotentInspect
Generate a year-ahead horoscope (12-month window) with major transit cycles, solar return chart context, and time-lord (profection) for the year.
[Group: Horoscope] [Endpoint: POST /v1/horoscope/yearly] [Required: sign] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| sign | Yes | ||
| style | No | `astro` (default) names the planets, houses and aspects behind each point. `plain` uses everyday words with no astrological terms, and is written once in English and translated, so every language says the same thing. Daily, weekly and monthly. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| length | No | With `style: "plain"`: `short` (about 70-110 words a day) or `medium` (default, about 150-230). | |
| topics | No | Only these sections, in this order, in `sections` and in `horoscope`. Default all six. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| disclaimer_inline | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| body | No | |
| year | No | |
| title | No | |
| language | No | |
| solarReturn | No | |
| profectionLord | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, non-open-world), so the bar is lower. The description adds genuinely useful operational context: the POST endpoint, the required parameter, and a concrete cost tier (100 credits, Tier 4), which the agent cannot derive from annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense but front-loaded sentence delivers the core purpose, followed by clearly structured bracketed metadata (group, endpoint, required, cost). No filler, though the parameter guidance one would expect from a 9-param tool is simply absent rather than trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry the safety profile. Still, for a 9-parameter tool with 56% schema coverage, the definition leaves the agent without guidance on parameter usage or on how it differs from the monthly/report siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 56%, and the description mentions nothing beyond 'sign' as required. It does not explain how 'date' anchors the 12-month window, or what language/style/topics/length do for a yearly horoscope. The schema's own rich text covers some params, but the description fails to compensate for the rest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (generate) plus resource (year-ahead horoscope), scope (12-month window), and enumerates the analytical content (transit cycles, solar return context, profection). The 'year-ahead (12-month window)' phrasing implicitly separates it from the daily/weekly/monthly horoscope siblings, though none is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 astroway_horoscope_monthly or astroway_reports_ai_year_ahead_narrative, nor any prerequisite or exclusion. Only the [Required: sign] and cost lines hint at invocation conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_iching_by_questionBy QuestionBRead-onlyIdempotentInspect
Deterministic hexagram from question text.
[Group: I Ching (Standalone)] [Endpoint: POST /v1/iching/by-question] [Required: question] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| seed | No | |
| source | No | |
| hexagram | No | |
| question | No | |
| lowerTrigram | No | |
| upperTrigram | No |
TDQS
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 bar is low. The description adds two genuinely useful facts beyond them: that output is deterministic (same question yields the same hexagram) and that the call costs 10 credits at Tier 1, which is real budgeting context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The functional sentence is front-loaded and there is no filler prose. The bracketed metadata lines are terse and skimmable, though they read as structured tags rather than prose that earns every word.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover the safety profile, leaving the definition adequate for a one-required-param tool. The gap is the unelaborated 'deterministic' claim and the absence of any sibling routing, which matters given how crowded the I Ching family is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%: `fields` and `precision` are already documented in the schema, and `question` is self-evident. '[Required: question]' merely restates the schema's required array, adding no syntax or constraint meaning beyond it, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb (derive) plus resource (hexagram) and names the input (question text). 'Deterministic' meaningfully separates it from the random astroway_iching_throw_coins sibling, but no sibling is named explicitly, so an agent must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative routing guidance despite five closely-related I Ching siblings (daily, lookup_number, throw_coins, with_changing_lines, plain iching). The agent is left to guess which variant fits its intent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_iching_dailyDaily I ChingBRead-onlyIdempotentInspect
Deterministic per-date hexagram.
[Group: I Ching (Standalone)] [Endpoint: POST /v1/iching/daily] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| source | No | |
| hexagram | No | |
| lowerTrigram | No | |
| upperTrigram | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description's 'deterministic' reinforces the idempotency claim and the metadata block adds useful operational context (cost of 10 credits, POST endpoint). It does not, however, describe what the date input does when omitted or the shape of the reading returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely terse and front-loaded: the core capability leads, followed by a compact bracketed metadata block for group, endpoint and cost. No filler sentences. It is arguably too terse, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 plus the cost/endpoint block cover operations. What is missing is the behavior of the `date` parameter (format, default-to-today semantics) and any routing signal among the five I Ching siblings, which is the main completeness gap for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter information whatsoever, and coverage is 67% because the primary `date` parameter has no schema description and is not marked required. The agent is left guessing the date format and whether omitting it yields today's hexagram, which the description could easily have clarified. Only `fields` and `precision` are documented, and that documentation comes from the schema, not the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource (hexagram) and its distinguishing scope ('per-date', 'deterministic'), which separates it from siblings like throw_coins (random) and by_question. It is a noun phrase rather than a verb+resource, and it never names the sibling alternatives explicitly, so an agent must infer the distinction rather than read it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of the four sibling I Ching tools (astroway_iching, astroway_iching_by_question, astroway_iching_throw_coins, astroway_iching_lookup_number, astroway_iching_with_changing_lines). The 'per-date' qualifier only implies a daily use case; nothing tells the agent when this is preferable to the generic or question-based variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_iching_lookup_numberHexagram LookupBRead-onlyIdempotentInspect
Fetch hexagram 1-64 by King Wen number.
[Group: I Ching (Standalone)] [Endpoint: GET /v1/iching/lookup/{number}] [Required: number] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| number | Yes | Hexagram number in King Wen order. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | No | |
| hexagram | No | |
| lowerTrigram | No | |
| upperTrigram | No |
TDQS
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 fully covered. The description adds genuinely useful non-annotation context: the HTTP endpoint, the group, and a cost caveat ('see your plan — endpoint not in the public credit manifest'). That cost/pricing note is the one real behavioral addition; no rate limits or result-shape notes 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and complete, and the bracketed metadata lines are dense, scannable and free of filler. Minor redundancy between 'Fetch hexagram 1-64' and '[Required: number]' / the schema's 1-64 range, but overall tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover the safety semantics. Endpoint, group, required parameter and a cost caveat are all supplied. The only real gap is the absence of any routing hint among the many I Ching siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so 'number', 'fields' and 'precision' are already documented in the schema with ranges and examples. The description only restates the number parameter as required and King Wen ordered, adding no syntax or format detail beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Fetch hexagram 1-64 by King Wen number') with an explicit lookup key and range, which is unambiguous on its own. It does not, however, distinguish this from the five sibling I Ching tools (throw_coins, by_question, daily, with_changing_lines), 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by 'by King Wen number' — an agent must infer that this is the direct-number path rather than a cast/divination path. No alternatives are named despite astroway_iching, astroway_iching_by_question, astroway_iching_throw_coins and astroway_iching_with_changing_lines all being plausible destinations, and no when-not 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_iching_throw_coinsThrow CoinsBRead-onlyIdempotentInspect
Seeded 3-coin method.
[Group: I Ching (Standalone)] [Endpoint: POST /v1/iching/throw-coins] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| method | No | |
| source | No | |
| hexagram | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, non-destructive and idempotent, so safety is covered. The description's one genuinely additive fact is the cost (10 credits, Tier 1) plus the endpoint, but 'seeded' merely restates the idempotentHint rather than explaining determinism, randomness fallback, or output shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is a single front-loaded sentence, with the remaining lines being compact structured metadata (group, endpoint, cost) rather than filler. Nothing is redundant, though the metadata block is more operational than descriptive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 there are zero required parameters, making this a low-complexity call. Combined with annotations covering the safety profile, the definition supplies enough for an agent to invoke it, though the seed semantics remain thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: `fields` and `precision` are well documented in the schema, while `seed` has none. The word 'Seeded' in the description partially compensates by hinting that `seed` drives determinism, but it never states the accepted types or the effect of omitting it. Baseline 3 given the moderate coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Seeded 3-coin method" signals an I Ching coin-toss divination, but it names neither the verb (cast/generate) nor the resource (hexagram) explicitly and never distinguishes itself from siblings like astroway_iching_with_changing_lines or astroway_iching_by_question. The name carries most of the meaning; the description adds only the 'seeded' qualifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 when to pick this over astroway_iching_daily, by_question, or with_changing_lines, nor what happens when no seed is supplied. The cost/group metadata is 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_iching_with_changing_linesWith Changing LinesCRead-onlyIdempotentInspect
Primary + transformed hexagrams.
[Group: I Ching (Standalone)] [Endpoint: POST /v1/iching/with-changing-lines] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| seed | No | |
| source | No | |
| primary | No | |
| changingLines | No | |
| transformedHexagram | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful non-annotation context (POST endpoint, 10-credit Tier 1 cost, group membership), which helps budget-aware routing, but says nothing about return behavior, rate limits, or what a 'transformed' result entails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata block is compact and easy to scan, and nothing is padded. However, the brevity is under-specification rather than economy — the single content sentence carries almost no information, so terseness here works against the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a divination tool sitting among five sibling I Ching endpoints, the description omits what changing lines produce, how it differs from astroway_iching, and what `seed` controls. An output schema exists so return values need not be described, but the remaining gaps leave an agent unable to confidently choose or parameterize this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description contributes zero parameter meaning. Schema coverage is 67%, and the uncovered parameter is `seed` (anyOf number|string), whose type ambiguity and purpose are left entirely unexplained; `fields` and `precision` are documented in the schema but the description does not reinforce or clarify them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a noun fragment, 'Primary + transformed hexagrams,' with no verb and no stated action, so an agent cannot tell it casts an I Ching reading rather than looking up or formatting data. It restates the title's notion of changing lines and adds a hint about output shape, but never distinguishes itself from siblings like astroway_iching, astroway_iching_throw_coins, or astroway_iching_by_question.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 reference to any of the five sibling I Ching tools. The only selection-relevant signal is the embedded cost/tier metadata, which is informational rather than directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_kabbalah_gematriaGematria ciphersARead-onlyIdempotentInspect
Seven standard ciphers over a Hebrew text: absolute, large, small, ordinal, inclusive, AtBash and AlBam. Vowel points and cantillation are stripped; a final letter counts as its ordinary form in the absolute value and as 500-900 in the large one, and both are returned rather than one being chosen.
[Group: Kabbalah] [Endpoint: POST /v1/kabbalah/gematria] [Required: text] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | No | |
| ciphers | No | |
| consonants | No | |
| letterCount | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, which already confirm readOnly, idempotent, non-destructive, and closed-world behavior, the description discloses rich domain-specific behavior: vowel points and cantillation are stripped, final letters count as ordinary forms in absolute value and as 500–900 in large value, and both results are returned rather than chosen.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two efficient sentences plus clearly bracketed metadata, with the cipher list front-loaded and the final-letter rule immediately after. Every sentence carries distinct information with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 already carry the safety profile. The description supplies the remaining domain context—Hebrew text input, cipher behavior, and final-letter handling—while the schema covers the compact-mode parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: fields and precision are documented in the schema, while text has no schema description. The description compensates by specifying that text is Hebrew, which is a meaningful constraint not present in the structured schema, though it adds nothing further for the other two parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation—seven standard gematria ciphers over Hebrew text—and lists the exact ciphers (absolute, large, small, ordinal, inclusive, AtBash, AlBam). This distinguishes it from sibling Kabbalah tools like sephiroth and shem names without ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not state when to select this tool over sibling Kabbalah or esoteric tools, nor does it name any alternatives or conditions that would favor it. Usage must be inferred entirely from the stated purpose, with no explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_kabbalah_sephirothThe ten sephirotARead-onlyIdempotentInspect
The Tree of Life as a reference table: Hebrew, meaning, pillar, triad and the Golden Dawn planetary attribution, grouped by pillar. Nothing here is computed, and the response says so.
[Group: Kabbalah] [Endpoint: GET /v1/kabbalah/sephiroth] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| pillars | No | |
| sephiroth | No | |
| attributionSet | No |
TDQS
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 without the description. The description still adds genuine context beyond that: it clarifies the payload is a fixed reference table with no computation, and the metadata block discloses the endpoint and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content claim is front-loaded in the first sentence, and the bracketed Group/Endpoint/Cost block is scannable metadata rather than prose. Slightly odd phrasing in "the response says so" is the only friction; nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 unnecessary, and annotations cover the safety profile. Cost, endpoint, and the static nature of the lookup are all disclosed, leaving little an agent needs but would not find; only explicit sibling routing is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters (fields, precision) are documented at 100% schema coverage, so the schema already carries their semantics (compact-mode field selection and decimal rounding). The description adds nothing about them, which is acceptable but earns only the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource (the Tree of Life / ten sephirot) and enumerates exactly what the reference table contains: Hebrew, meaning, pillar, triad, and the Golden Dawn planetary attribution, grouped by pillar. This clearly separates it from the other Kabbalah siblings (gematria, shem_names), though it doesn't call those out by name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Nothing here is computed" implies the tool is for static lookup rather than derived calculation, which is a usable hint about when to reach for it. But there is no explicit when-to-use, when-not-to-use, or named alternative among the Kabbalah sibling tools, so the guidance stays implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_kabbalah_shem_namesThe seventy-two names (Shem HaMephorash)ARead-onlyIdempotentInspect
The 72 three-letter names, computed from Exodus 14:19-21 rather than read from a table, each with its five degrees of the zodiac. Filter with ?index=1..72 or ?longitude=0..360.
[Group: Kabbalah] [Endpoint: GET /v1/kabbalah/shem-names] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| names | No | |
| absent | No | |
| derivation | No |
TDQS
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 bar is lower. The description adds real context beyond them: the results are deterministically computed from a defined verse rather than table-sourced, plus the endpoint and a 5-credit cost that an agent should factor into budgeting. Return-shape details are rightly omitted since an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core definition is front-loaded in one dense sentence, followed by a short filtering sentence, then templated group/endpoint/cost metadata. Little is wasted, though the bracketed boilerplate slightly dilutes the prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless read-only lookup with an output schema, the description covers what the tool returns and how to filter it. Nothing essential is missing; the only gap is the absence of explicit sibling comparisons, which the group label partially compensates for.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage of the two declared params (fields, precision) is 100%, so a baseline of 3 applies. The description goes further by documenting two filter parameters (index, longitude) with explicit ranges that are not declared in the schema, giving the agent usable selection syntax. This adds value, though the fact that these filters are undocumented in the schema itself is a mild inconsistency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (the 72 three-letter Shem HaMephorash names) and adds a distinguishing provenance detail — computed from Exodus 14:19-21 rather than looked up. That scope is clearly separable from kabbalah siblings like sephiroth or gematria. It stops short of naming an alternative sibling, so it lands at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete filter guidance ('?index=1..72 or ?longitude=0..360'), which tells the agent how to narrow the call. It never says when this tool is preferable to the other Kabbalah or esoteric tools, so there is implied usage but no genuine when-to-use/when-not routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_lnd_celtic_cross_lenormandLenormand: Celtic CrossBRead-onlyIdempotentInspect
Adapted Celtic Cross with Lenormand cards.
[Group: Tarot: Lenormand] [Endpoint: POST /v1/tarot/lenormand/draw/celtic-cross-lenormand] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_tarot_lenormand_draw_celtic_cross_lenormand.)
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful operational context absent from annotations: cost (10 credits, Tier 1) and the endpoint. It does not explain whether a seed makes the draw reproducible or how 'adapted' differs from the classic Celtic Cross layout.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose, followed by compact bracketed metadata for group, endpoint, and cost. No filler sentences, though the alias line is procedural rather than user-facing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/endpoint are covered. But for a draw tool with 0 required params and half its schema undocumented, the description never explains the question parameter or what 'adapted' Celtic Cross positions are produced, leaving an agent without enough to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%, and the description supplies no parameter meaning at all. Three parameters (seed, question, allowReversed) are undocumented in both places despite question being the semantically central input for a divination draw; the description should have compensated for the gap and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific resource — an adapted Celtic Cross spread drawn with Lenormand cards — which separates it from the Marseille and Rider-Waite Celtic Cross siblings and locates it in the Lenormand family. No explicit verb ('draw'), but the action is unambiguous from the name and title pairing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives no guidance on when to choose this spread over the many other Lenormand draws (three-card, line-of-five, grand tableau, 9-card square) or over the Marseille/RWS Celtic Cross variants. The alias note tells the agent the canonical tool exists but not which to prefer or why.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mayan_calendar_roundCalendar RoundBRead-onlyIdempotentInspect
Combined Tzolkin + Haab: unique date label within the 52-year cycle (18,980 days).
[Group: Mayan Calendars] [Endpoint: POST /v1/mayan/calendar-round] [Required: date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| haab | No | |
| tzolkin | No | |
| julianDay | No | |
| description | No | |
| calendarRound | No |
TDQS
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 fully covered by structured data. The description adds operational context the annotations lack — the credit cost and the HTTP endpoint — but says nothing about the cost of repeated calls or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is tight and front-loaded, giving the meaning and cycle length in one line. The bracketed metadata block is terse and scannable rather than prose bloat, though it foregrounds plumbing (endpoint) over task guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description needn't explain return values. Coverage of purpose, the required parameter, cost, and endpoint is sufficient for a single-date calculator. The missing element is sibling routing, which is scored under usage guidelines.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%: `fields` and `precision` carry their own descriptions (including the 'compact mode' semantics and the 14-vs-2 decimal note), and `date` is constrained by a regex pattern. The description adds nothing beyond restating that `date` is required, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific computation — combining the Tzolkin and Haab cycles into a unique 52-year Calendar Round label — with the concrete scope (18,980 days). It implicitly distinguishes itself from the sibling astroway_mayan_tzolkin and astroway_mayan_haab by naming them as the combined components, but it never explicitly frames the alternative choice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only routing signals are the '[Required: date]' and '[Cost: 10 credits]' tags. There is no statement of when to pick Calendar Round over astroway_mayan_full, astroway_mayan_long_count, or the single-cycle Tzolkin/Haab tools. The agent must infer the use case entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mayan_compatibilityMayan CompatibilityBRead-onlyIdempotentInspect
Pair compatibility from Tzolkin name + tone alignment plus elemental/directional affinity. Returns 0-100 score.
[Group: Mayan Calendars] [Endpoint: POST /v1/mayan/compatibility] [Required: person1, person2] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| person1 | Yes | ||
| person2 | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| compatibility | No |
TDQS
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 covered. The description adds genuinely useful context the annotations don't carry: the 10-credit cost, the POST endpoint, and the fact that a numeric 0-100 score is returned. It says nothing about failure modes or input validation, so it is adequate rather than rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and dense, and the bracketed metadata lines (group, endpoint, required, cost) are compact and scannable. Minor redundancy in repeating the required parameters, but nothing is verbose or wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and the description still helpfully notes the 0-100 score. However, for a two-person nested-object tool it omits any when-to-use routing and leaves the person date inputs semantically unexplained, so it is minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, but person1/person2 (nested date objects with only a regex pattern) are not. The description merely restates 'Required: person1, person2', which the schema already declares, and adds no semantic detail about date format or the person objects, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific result (pair compatibility), the method (Tzolkin name + tone alignment plus elemental/directional affinity), and the output shape (0-100 score), which distinguishes it from sibling Mayan tools like tzolkin, haab, or full. It stops short of explicitly contrasting itself with those siblings, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to prefer this over astroway_mayan_full, astroway_mayan_tzolkin, or other compatibility-style tools. The only routing signal is the bracketed 'Required: person1, person2' metadata, which is not a usage condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mayan_dreamspellDreamspell (Argüelles 1990)ARead-onlyIdempotentInspect
Modern synchronometer reinterpretation by José Argüelles. Returns kin (1-260) + tone + seal. Distinct from traditional Tzolkin.
[Group: Mayan Calendars] [Endpoint: POST /v1/mayan/dreamspell] [Required: date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| label | No | |
| notes | No | |
| dreamspell | No |
TDQS
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 credit cost/tier and frames the calculation as a modern reinterpretation, but adds little else about 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the identity and return shape, then compact bracketed metadata for group, endpoint, required param, and cost. No wasted sentences, though the bracketed block is somewhat boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering the safety profile, the description only needs to establish identity, differentiation, and the required input, all of which it does. Cost/tier is a useful extra for an agent weighing calls.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: 'fields' and 'precision' are well documented in the schema, while 'date' only carries a regex pattern with no description. The prose adds no parameter meaning beyond the schema, so the baseline of 3 for mostly-covered params is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Dreamspell / Argüelles synchronometer) and its output shape (kin 1-260 + tone + seal). It also distinguishes itself from the traditional Tzolkin, which is the key sibling confusion in this group, though it doesn't name the sibling tool explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Distinct from traditional Tzolkin' implies when to choose this over the Tzolkin tool, but there is no explicit when/when-not guidance, prerequisites, or alternative routing. Usage is inferable 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_mayan_fullFull Mayan DateARead-onlyIdempotentInspect
All four classical components in one call: Long Count + Tzolkin + Haab + Calendar Round + Lord of the Night.
[Group: Mayan Calendars] [Endpoint: POST /v1/mayan/full] [Required: date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| haab | No | |
| tzolkin | No | |
| julianDay | No | |
| longCount | No | |
| lordOfNight | No | |
| calendarRound | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Read-only/idempotent safety is already covered by annotations, and the description adds genuinely new context: the endpoint, the required parameter, and a 10-credit Tier 1 cost. That cost disclosure is valuable for an agent deciding whether to call a composite endpoint. It does not, however, describe response shape or any rate-limit behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded content sentence followed by compact bracketed metadata lines for group, endpoint, required param, and cost. No wasted prose and the distinguishing information comes first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 it supplies cost, endpoint, and required input. The only real gap is the absence of guidance on choosing this composite over the individual Mayan sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%; the schema itself documents 'fields' and 'precision' thoroughly, while 'date' carries only a pattern. The description adds only the '[Required: date]' flag, which the schema's required array already conveys, so it adds little beyond structured data. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific aggregate resource and enumerates the five components it returns (Long Count, Tzolkin, Haab, Calendar Round, Lord of the Night), which cleanly distinguishes it from the single-component siblings like astroway_mayan_long_count and astroway_mayan_tzolkin. Minor flaw: it says 'four' components but lists five, a small internal inconsistency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'in one call' implies the tool is the composite alternative to the individual Mayan endpoints, but it never explicitly says when to prefer this over calling the single-component tools. No exclusions or prerequisites are given, so usage must be inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mayan_haabHaab Civil DayBRead-onlyIdempotentInspect
365-day civil calendar = 18 months × 20 days + 5-day Wayeb. Identifies if date falls in unlucky Wayeb period.
[Group: Mayan Calendars] [Endpoint: POST /v1/mayan/haab] [Required: date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| haab | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds the 10-credit cost and the endpoint, which are genuinely useful behavioral facts, but the rest of the text is domain explanation (calendar structure, Wayeb) rather than tool behavior. With annotations carrying the main burden, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core definition is front-loaded in one tight sentence, with metadata tags following. The bracketed tag block (group, endpoint, required, cost) is slightly noisy but each entry carries information an agent can act on, so it earns its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 this is a simple one-required-parameter tool. The description covers the domain, the cost, and the required input adequately. Minor gaps include any date-range or timezone assumptions for the `date` parameter, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%: `fields` and `precision` are well documented in the schema, while `date` carries only a regex pattern. The description's '[Required: date]' merely restates the schema's required array and adds no format or range detail. Baseline 3 is appropriate since 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource (the Haab 365-day civil calendar) and its structure, and states the operation: identifying whether a date falls in the Wayeb period. An agent can distinguish it from sibling Mayan tools like tzolkin, long_count, or lord_of_night by resource. It stops short of an explicit verb+object phrasing such as 'compute the Haab position for a given date,' but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over astroway_mayan_full, astroway_mayan_calendar_round, or the other Mayan calendar siblings. The [Required: date] and [Cost: 10 credits] tags give invocation logistics 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_mayan_long_countLong CountCRead-onlyIdempotentInspect
Five-place positional notation: baktun.katun.tun.uinal.kin. Days since 4 Ahau 8 Cumku (3114 BC).
[Group: Mayan Calendars] [Endpoint: POST /v1/mayan/long-count] [Required: date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| longCount | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely new operational facts not in annotations: endpoint (POST /v1/mayan/long-count) and cost (10 credits, Tier 1), which an agent needs for budgeting. It adds nothing about output shape, but an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very compact and front-loaded: the notation/epoch explanation comes first, followed by clean bracketed metadata tags. Almost every line is scannable, though the notation sentence describes the return value more than the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and full annotations, the description need not cover return values or safety, and it does supply endpoint, cost, and the required parameter. The missing piece for a tool sitting among eight Mayan siblings is any indication of when to pick this one over the others.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%: `fields` and `precision` are documented inline with examples, while the required `date` has only a regex pattern and no prose. The description's '[Required: date]' adds no meaning beyond the schema. Nothing here explains the date format or semantics beyond the pattern.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explains what a Long Count is (five-place baktun.katun.tun.uinal.kin notation, days since 4 Ahau 8 Cumku) and the group/endpoint tags signal it computes a Mayan calendar value for a date. However, no verb is stated and it never distinguishes itself from the many Mayan siblings (tzolkin, haab, calendar_round, full), so an agent must infer the operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 exclusions. The only routing aid is '[Required: date]', which merely restates the schema's required field and does not help choose between this and astroway_mayan_tzolkin, haab, or calendar_round.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mayan_lord_of_nightLord of the NightCRead-onlyIdempotentInspect
9-day cycle of underworld deities (G1-G9) governing the spiritual influence of each night.
[Group: Mayan Calendars] [Endpoint: POST /v1/mayan/lord-of-night] [Required: date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lordOfNight | No |
TDQS
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 without the description. The description does add genuinely useful operational context — the endpoint, the required parameter, and a 10-credit Tier 1 cost — but says nothing about what the response contains or any limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short and front-loads the conceptual explanation, with metadata cleanly bracketed below. Nothing is padded, though the first sentence is definitional rather than action-oriented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a domain-specific esoteric tool surrounded by many similar Mayan siblings, the description leaves the agent without a clear statement of what result it produces or why to pick it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, and the two descriptive parameters (fields, precision) are documented in the schema itself. The description's only parameter-related content is 'Required: date,' which merely restates what the schema already marks as required, adding no semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description defines the subject matter — a '9-day cycle of underworld deities (G1-G9) governing the spiritual influence of each night' — which tells the agent the domain, but it never states a verb or what the tool actually computes/returns for a given date. It reads more like an encyclopedia entry than an action statement, and it does not distinguish this from siblings like astroway_mayan_tzolkin or astroway_mayan_haab beyond the label.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, and no mention of alternatives among the many Mayan siblings. The bracketed metadata gives 'Required: date' and cost, which is contextual but not usage guidance for selecting this tool over another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mayan_tzolkinTzolkin Day SignARead-onlyIdempotentInspect
260-day sacred calendar. Returns 1-13 number + 20 day-name + element + direction + keyword.
[Group: Mayan Calendars] [Endpoint: POST /v1/mayan/tzolkin] [Required: date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| tzolkin | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered. The description adds operationally useful context beyond that: the credit cost (10 credits, Tier 1), the concrete endpoint, and a summary of the returned components. It does not cover timezone handling or rate limits, keeping 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is a single tight sentence, front-loaded with the calendar and the return shape, followed by compact bracketed metadata lines. Every line carries information (group, endpoint, required param, cost). Slightly dense metadata formatting but no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not detail return values, yet it still summarizes the payload. Combined with the endpoint, required parameter and cost disclosure, an agent has everything needed to invoke this simple single-date lookup correctly; the only real gap is tzolkin-vs-sibling routing, which belongs to the usage dimension.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: 'fields' and 'precision' carry full descriptions while 'date' has only a regex pattern and no prose. The description restates that date is required and adds nothing about the expected date format, timezone, or how fields/precision interact with this endpoint. That is the baseline expected 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb-free but concrete resource: it returns a Tzolkin day sign composed of a 1-13 number, one of 20 day names, plus element, direction and keyword. That is far more specific than a tautology. However, it never distinguishes itself from the many Mayan siblings (haab, long_count, calendar_round, dreamspell, full), so an agent cannot tell from the description alone why it should pick tzolkin over mayan_full.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no exclusion, and no named alternative. The bracket metadata notes 'Required: date' and the cost tier, but neither is guidance about choosing this tool versus the other Mayan calendar endpoints. Usage is only implied by the tool name.
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 DebateCRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Birth 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. | |
| topic | Yes | ||
| agentA | Yes | ||
| agentB | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| rounds | No | ||
| language | No | en | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| transcript | No |
TDQS
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.
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.
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.
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.
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.
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 StatusCRead-onlyIdempotentInspect
8 personas with specialties.
[Group: MCP Advanced] [Endpoint: GET /v1/mcp/agent-pool-status] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| count | No | |
| personas | No |
TDQS
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.
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.
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.
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.
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.
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 chatARead-onlyInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| history | No | ||
| message | Yes | ||
| persona | No | astrologer | |
| language | No | uk | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | No | |
| reply | No | |
| tokens | No | |
| persona | No | |
| language | No | |
| disclaimer | No | |
| duration_ms | No |
TDQS
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.
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.
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.
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.
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.
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 CoachBRead-onlyInspect
Coach two charts on relationship dynamics.
[Group: AI & MCP] [Endpoint: POST /v1/ai/comparison-coach] [Required: chart1, chart2, question] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | uk | |
| question | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| coaching | No |
TDQS
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.
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.
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.
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.
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.
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 AspectBRead-onlyInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| planet1 | Yes | ||
| planet2 | Yes | ||
| language | No | uk | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| aspectType | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| explanation | No |
TDQS
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.
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.
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.
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.
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.
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 TransitBRead-onlyInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | uk | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| aspectType | Yes | ||
| natalPlanet | Yes | ||
| transitDate | Yes | ||
| transitPlanet | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| explanation | No |
TDQS
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.
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.
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.
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.
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.
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 CoordinateCRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Birth 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. | |
| agents | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | en | |
| question | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| synthesis | No | |
| individual | No |
TDQS
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.
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.
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.
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.
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.
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 ContextCRead-onlyInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| charts | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| intent | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| intent | No | |
| summaries | No | |
| chartCount | No | |
| contextHash | No | |
| summaryString | No |
TDQS
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.
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.
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.
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.
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.
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_rag_searchMCP RAG SearchCRead-onlyIdempotentInspect
Keyword-tag scoring over chart chunks.
[Group: MCP Advanced] [Endpoint: POST /v1/mcp/rag-search] [Required: query, chart] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| topK | No | ||
| chart | Yes | Birth 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. | |
| query | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | No | |
| total | No | |
| tokens | No | |
| matches | No | |
| results | No |
TDQS
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 structurally. The description adds genuinely useful context the annotations do not: the endpoint, the 10-credit Tier 1 cost, and the group. It does not disclose result ordering, chunk granularity, or hit limits, so it stops short of rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short, front-loaded lines with no prose padding; the core purpose statement leads. The "Required" line is redundant with the schema, which is the only real waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool taking a deeply nested chart object plus three tuning parameters, the description is thin: no sense of ranking/scoring semantics, no indication of what the chunks are drawn from, and no guidance on choosing topK. An output schema exists so return format need not be explained, but the retrieval behavior itself is left entirely to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is a middling 60%. The description adds no parameter meaning at all — it only echoes the two required names already enforced by the schema — and says nothing about topK's default/range, the fields compact projection, or precision, the parameter most likely to be misused.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the mechanism (keyword-tag scoring) and the corpus (chart chunks), which goes beyond simply restating the tool name. However, it never says what the tool returns or what a "chunk" is, so an agent cannot tell whether this is a document retriever over interpretive text or a query over computed chart data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage-adjacent line is "[Required: query, chart]", which merely restates the schema's required list. There is no statement of when to reach for this tool rather than a direct retrieval sibling (e.g. astroway_mcp_multi_chart_context), 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_mcp_streamingMCP Streaming ChatBRead-onlyInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| message | Yes | ||
| language | No | uk | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
TDQS
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.
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.
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.
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.
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.
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 StreamCRead-onlyIdempotentInspect
SSE-stream of a tool call envelope.
[Group: MCP Advanced] [Endpoint: POST /v1/mcp/tool-call-stream] [Required: tool] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| tool | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | en | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
TDQS
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.
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.
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.
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.
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.
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 ListCRead-onlyInspect
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]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| spec | No | |
| notes | No | |
| tools | No | |
| server | No | |
| toolCount | No |
TDQS
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.
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.
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.
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.
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.
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_numerology_chaldean_balanceBalance (chaldean)BRead-onlyIdempotentInspect
Calculate the Balance number from initials of each part of the full name. Numerology: Chaldean system.
[Group: Numerology: Chaldean] [Endpoint: POST /v1/numerology/chaldean/balance] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| balance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, covering the safety profile. The description adds genuinely useful meta-context the annotations do not: the credit cost (10 credits, Tier 1) and the POST endpoint. It says nothing about what the Balance number represents or how the result is shaped, but the output schema exists to cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One purpose sentence followed by compact bracketed metadata (group, endpoint, required fields, cost). Purpose is front-loaded, nothing is redundant, and the structured tags are scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple calculation tool with an output schema and full annotation coverage, the description supplies what the agent needs to invoke it: purpose, required inputs, endpoint and cost. The remaining gap is usage guidance against the many sibling numerology tools, which is scored separately.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only fields and precision are documented in the schema; name and date are bare). The description implies name is a full name and restates the two required parameters, but adds no format or syntax detail beyond what the schema already encodes (e.g. the date pattern). Baseline 3 is appropriate given the partial coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate the Balance number') and disambiguates the system ('Numerology: Chaldean system'), which separates it from the Pythagorean, Kabbalistic and Vedic balance siblings. It also specifies the computation basis ('from initials of each part of the full name'), but it never names an alternative sibling to route against, so differentiation rests on the group tag rather than prose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states required parameters and cost but gives no when-to-use context and no exclusions or alternatives. Nothing tells an agent why it would pick Chaldean balance over, say, astroway_numerology_kabbalistic_balance or astroway_numks_balance, nor when a Balance reading is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_chaldean_birthdayBirthday (chaldean)ARead-onlyIdempotentInspect
Calculate the Birthday number from the day-of-birth digit. Numerology: Chaldean system.
[Group: Numerology: Chaldean] [Endpoint: POST /v1/numerology/chaldean/birthday] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| birthday | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, destructive=false, closed-world, so the safety profile is covered. The description adds a genuinely useful behavioral trait not in the annotations: the cost (10 credits, Tier 1) and the endpoint. It does not describe what the computation returns or how it behaves, but with annotations carrying safety and an output schema present, this is a solid addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, and the bracketed metadata (group, endpoint, required, cost) is compact and skimmable. No sentence is wasted, though the metadata block is fairly boilerplate rather than high-value prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the annotations cover the safety profile. The description adds required params, cost, and endpoint, which is close to complete for a single-value calculation tool. The notable gap is the absence of any cross-system disambiguation, which is what keeps it from 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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-schema, while 'name' and 'date' have no descriptions. The description lists the two required params and hints that 'date' supplies the day-of-birth digit, adding modest meaning, but it does not explain format, constraints, or the compact-mode params. A 3 is appropriate given the schema does part of the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Calculate the Birthday number') and pins the system via 'Numerology: Chaldean' plus the group tag, which separates it from the many sibling *_birthday tools (kabbalistic, pythagorean, vedic, numks). 'From the day-of-birth digit' clarifies the input semantics beyond the bare name. It stops short of contrasting the output with other systems' birthday numbers, so 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this Chaldean birthday tool over pythagorean_birthday, kabbalistic_birthday, or vedic_birthday, nor any prerequisite or exclusion. The metadata block lists required params and cost but never frames selection context. An agent must infer the choice purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_chaldean_challengeChallenge Cycles (chaldean)BRead-onlyIdempotentInspect
Calculate four Challenge cycles: life-area difficulties to master, derived from birth date components. Numerology: Chaldean system.
[Group: Numerology: Chaldean] [Endpoint: POST /v1/numerology/chaldean/challenge] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| system | No | |
| challenges | No |
TDQS
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 a genuinely non-structured behavioral fact, the cost ('10 credits (Tier 1)'), which matters for agent budgeting decisions, plus the HTTP endpoint. It does not cover latency, auth, or response shape (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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence with the core purpose, followed by compact bracketed metadata lines and no filler. Slightly cluttered by the redundant '[Required: ...]' line, which costs a little but nothing is verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a specialized calculation tool with an output schema, the description supplies purpose, inputs, cost, and endpoint, which is enough to call it correctly. It omits only usage guidance relative to sibling systems, and return values are covered by the output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 'date' and 'name' carry only patterns/length constraints. The description merely restates '[Required: name, date]', which the schema already declares, and adds no meaning for the compact-mode parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate four Challenge cycles') and qualifies the domain ('life-area difficulties to master, derived from birth date components'). The 'Chaldean system' tag distinguishes it from the Pythagorean/Vedic/Kabbalistic challenge siblings, though the differentiation relies on that tag rather than an explicit contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool versus the ~70 sibling numerology tools, no prerequisites, and no exclusions. The '[Group: ...]' and '[Endpoint: ...]' lines are routing metadata, 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_numerology_chaldean_chartCore Numbers Chart (chaldean)ARead-onlyIdempotentInspect
The six core numbers in one call: Life Path, Expression, Soul Urge, Personality, Birthday and Personal Year (year defaults to the current year), each with its meaning. 20 credits instead of 60 for six single calls. Every number carries meaning (English) and meaningLocalized in the requested language (translated: false with the English text while a language's strings are on their way). Numerology: Chaldean system.
[Group: Numerology: Chaldean] [Endpoint: POST /v1/numerology/chaldean/chart] [Required: name, date] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| year | No | Calendar year to read. Defaults to the current year (UTC). | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| year | No | |
| system | No | |
| birthday | No | |
| lifePath | No | |
| soulUrge | No | |
| expression | No | |
| personality | No | |
| personalYear | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the description's added value is the cost disclosure (20 credits, Tier 2) and the localization contract: every number carries `meaning` plus `meaningLocalized`, with `translated: false` returning English while a language's strings are being prepared. That fallback behavior is the kind of thing an agent could not infer from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core value proposition (six numbers in one call) and then layers cost and localization in tight sentences. Slightly dense with parenthetical caveats, but every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter computation tool with annotations and an output schema, this is nearly complete: it covers the member set, cost, localization, and the year default. The only gap is silence on the `fields`/`precision` compact-mode controls, which are relevant given the tool returns a large nested payload.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, so `year`, `fields` and `precision` are documented in the schema while `name` and `date` are not. The description clarifies that `year` defaults to the current year and confirms `name`/`date` are required, but says nothing about the `fields`/`precision` compact-mode parameters, leaving the schema to carry them. Baseline 3 fits when the schema does most of the lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource: returns the six core numbers (Life Path, Expression, Soul Urge, Personality, Birthday, Personal Year) in one call, under the Chaldean system. The enumeration lets an agent distinguish it immediately from the single-number siblings like astroway_numerology_chaldean_life_path. It also names the sibling it supersedes ('six single calls').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It makes the selection case clear by contrasting cost: '20 credits instead of 60 for six single calls', which routes an agent wanting a full chart here rather than making six separate calls. It stops short of an explicit 'use X when / don't use Y when' statement or naming the individual sibling tools, so it is strong context rather than full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_chaldean_expressionExpression / Destiny (chaldean)BRead-onlyIdempotentInspect
Calculate the Expression (Destiny) number from full birth name letters (all letters, reduced). Numerology: Chaldean system.
[Group: Numerology: Chaldean] [Endpoint: POST /v1/numerology/chaldean/expression] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| expression | No |
TDQS
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 covered. The description adds the cost (10 credits, Tier 1) and the POST endpoint, which is genuinely useful behavioral context, but says nothing further about response behavior or limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short and front-loads the core purpose in the first sentence, with the bracketed metadata kept compact. Every element earns its place, though the tag block adds some structural noise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 tool is a simple idempotent read. However, the role of the required 'date' parameter and the lack of any guidance distinguishing this system's Expression number from the many sibling Expression tools leave it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 'name' and 'date' are not. The description clarifies 'name' as the full birth name, but never explains what 'date' represents (birth date vs. reference date) or its format, leaving a meaningful semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (calculate Expression/Destiny number) and specifies both the letter basis (all letters, reduced) and the Chaldean system, which separates it from the vowel-based soul_urge or the pythagorean/kabbalistic/vedic expression siblings. It does not explicitly name an alternative, but the systematic sibling naming plus the 'all letters' and 'Chaldean' qualifiers make its identity inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no routing to alternatives such as astroway_numerology_pythagorean_expression or the kabbalistic/vedic variants. The [Group: Numerology: Chaldean] tag implies the domain but gives no selection criteria, leaving usage 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_numerology_chaldean_life_pathLife Path Number (chaldean)BRead-onlyIdempotentInspect
Calculate the Life Path number from birth date (year + month + day, reduced). Numerology: Chaldean system.
[Group: Numerology: Chaldean] [Endpoint: POST /v1/numerology/chaldean/life-path] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| lifePath | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and a closed-world scope, so the safety profile is covered. The description usefully adds the cost ('10 credits, Tier 1') and the POST endpoint, which is real behavioral context beyond the annotations, but says nothing about what the calculation returns or any input constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded: the core action leads, followed by bracketed metadata lines. No wasted prose, though the bracket-tag format is more machine-oriented than descriptive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and annotations cover safety. However, for a tool with a documented output and two undocumented input params, the description omits usage routing and any note on the name/date semantics, leaving an agent to infer a fair amount.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: 'fields' and 'precision' are well documented in the schema, but 'name' and 'date' carry no schema descriptions. The description adds 'year + month + day, reduced' for the date and restates the two required params, giving marginal clarification over the pattern already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (Life Path number) with the input basis (birth date, year+month+day reduced) and names the numerological system (Chaldean). This distinguishes it from the Pythagorean, Kabbalistic, and Vedic life-path siblings, though it does not differentiate from other Chaldean tools. Clear and specific, but largely echoes the title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance or alternatives are offered. The bracket tags give required params, endpoint, and cost, but never explain when Chaldean life-path is preferred over the many other life-path tools. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_chaldean_maturityMaturity (chaldean)ARead-onlyIdempotentInspect
Calculate the Maturity number: sum of Life Path and Expression, activates around age 35. Numerology: Chaldean system.
[Group: Numerology: Chaldean] [Endpoint: POST /v1/numerology/chaldean/maturity] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| maturity | No |
TDQS
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 behavioral context beyond annotations: a credit cost ('10 credits (Tier 1)') and the concrete endpoint, which help an agent budget and route the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The substantive sentence is front-loaded, single-purpose and wastes no words. The trailing bracketed metadata block is boilerplate rather than prose, but it is compact and skimmable rather than rambling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 purpose, formula, required inputs, cost and endpoint. The remaining gap is input interpretation (whose name, birth vs current) and no note on how the result should be interpreted age-wise.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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-schema; name and date are not). The description only repeats 'Required: name, date', adding no meaning over the schema's required array and no clarification of what form the name should take. It does not compensate for the undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate the Maturity number'), identifies the system (Chaldean), and even gives the underlying formula (sum of Life Path and Expression), which distinguishes it from the many sibling *maturity* tools for other systems. It stops short of explicitly contrasting against e.g. pythagorean_maturity or life_path, relying on the system label alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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: nothing says when to pick Chaldean over Pythagorean/Kabbalistic maturity, or when maturity is preferred to its component numbers (life_path, expression). The 'activates around age 35' note is interpretive context for the number, not invocation guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_chaldean_personalityPersonality (chaldean)BRead-onlyIdempotentInspect
Calculate the Personality number from the consonants of the full birth name. Numerology: Chaldean system.
[Group: Numerology: Chaldean] [Endpoint: POST /v1/numerology/chaldean/personality] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| personality | No |
TDQS
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 usefully adds cost (10 credits, Tier 1) and the endpoint, but says nothing about auth requirements, rate limits, or what the calculated output contains beyond what the output schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core explanation is a single front-loaded sentence, with grouped metadata in compact brackets. Every element earns its place, though the bracket block is slightly noisy relative to the short prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-value compute tool with an output schema, the description covers what is calculated and from what input, so return values need no explanation. It is nonetheless thin on routing among the ~70 numerology siblings, which is the main contextual gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: `fields` and `precision` are documented in the schema, but `date` is not, and the description does not explain the date's role. It does add real semantic value for `name` by specifying it must be the full birth name whose consonants drive the calculation — meaning not present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource — 'Calculate the Personality number' — and narrows it to the Chaldean system and to the consonants of the full birth name. That is enough to separate it from the many pythagorean/kabbalistic/vedic personality siblings, though it never explicitly contrasts them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this over astroway_numerology_kabbalistic_personality or pythagorean_personality, or when a Personality number is the right reading versus Soul Urge/Expression. The only guidance is the bracketed 'Required: name, date', which is input plumbing rather than usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_chaldean_personal_yearPersonal Year (chaldean)ARead-onlyIdempotentInspect
Calculate the Personal Year number for a given calendar year: the 9-year cycle of personal evolution. Numerology: Chaldean system.
[Group: Numerology: Chaldean] [Endpoint: POST /v1/numerology/chaldean/personal-year] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| year | No | Calendar year to read. Defaults to the current year (UTC). | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| personalYear | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, covering the safety profile. The description adds genuinely useful operational context (10 credits / Tier 1, POST endpoint, required inputs), but says nothing about response shape or the default-year behavior that materially affects results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line purpose sentence is front-loaded and waste-free, and the bracketed metadata block is scannable. Slightly verbose for the amount of substance but structurally sound.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 supplies endpoint, cost, required inputs and system variant. The only gap is the absence of cross-system routing guidance, which matters given ~10 indistinguishable personal_year siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60% (year, fields, precision documented; name and date only constrained by pattern/length). The description's '[Required: name, date]' merely restates the schema's required array and adds no format or range detail for those two parameters, so it neither compensates for nor improves on the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate'), resource ('Personal Year number'), input scope ('for a given calendar year') and the semantic meaning ('9-year cycle of personal evolution'). The explicit 'Chaldean system' tag disambiguates it from the many sibling personal_year tools in kabbalistic/pythagorean/vedic/numk/numks/nump variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this tool over the near-identical personal_year siblings from other numerological systems, nor any prerequisites beyond the [Required: name, date] block. The tool name and group tag carry all the routing burden.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_chaldean_pinnaclesPinnacle Cycles (chaldean)BRead-onlyIdempotentInspect
Calculate four Pinnacle cycles with their age boundaries: life chapters of opportunity. Numerology: Chaldean system.
[Group: Numerology: Chaldean] [Endpoint: POST /v1/numerology/chaldean/pinnacles] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| system | No | |
| pinnacles | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description contributes the credit cost (10 credits, Tier 1) and required-input list, which are genuinely useful operational details, but says nothing about output shape or failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight prose line followed by scannable bracketed metadata (group, endpoint, required, cost). Front-loaded and free of filler, though the metadata partially duplicates structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. Combined with annotations covering the safety profile and the description supplying cost, endpoint and required inputs, an agent has enough to invoke it correctly; only the conceptual distinction from sibling readings is unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The bracketed '[Required: name, date]' restates what the schema already enforces, and the two optional compact-mode params (fields, precision) carry their own schema descriptions. At 50% schema coverage the description neither compensates for the undescribed name/date semantics nor adds format hints beyond the schema pattern.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate four Pinnacle cycles with their age boundaries') plus the system (Chaldean), which distinguishes it from the Kabbalistic, Pythagorean and Vedic pinnacles siblings. It stops short of contrasting the concept against other Chaldean tools such as chart or challenge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose Pinnacle cycles over the many other Chaldean numerological readings (chart, challenge, maturity, personal_year). The only routing signal is the group/endpoint metadata, which tells the agent what family the tool belongs to but not the condition that selects it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_chaldean_soul_urgeSoul Urge / Heart's Desire (chaldean)BRead-onlyIdempotentInspect
Calculate the Soul Urge number from the vowels of the full birth name. Numerology: Chaldean system.
[Group: Numerology: Chaldean] [Endpoint: POST /v1/numerology/chaldean/soul-urge] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| soulUrge | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely useful behavioral context not in annotations: the POST endpoint, the required inputs, and a 10-credit Tier 1 cost. It does not disclose return shape, though an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in a single clear sentence, followed by compact bracketed metadata. Nothing is redundant, though the bracketed block reads as boilerplate rather than prose that earns each line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers purpose, required inputs, and cost. What is missing is the routing context that matters most here — why an agent should pick this over the ~10 other soul-urge variants across systems.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%; `fields` and `precision` are documented in the schema, while `name` and `date` have no schema descriptions. The description partially compensates by specifying that `name` should be the full birth name, but explains nothing about the format of `date` or why a date is needed for a name-derived vowel calculation. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate the Soul Urge number') plus the derivation method ('from the vowels of the full birth name') and the system ('Chaldean'). This distinguishes it from the personality counterpart (consonants) and from Pythagorean/Vedic/Kabbalistic variants, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 advice against the many sibling numerology systems (kabbalistic, pythagorean, vedic soul_urge tools all exist). The bracketed lines only list group, endpoint, required params, and cost — metadata rather than usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_balanceBalance (kabbalistic)BRead-onlyIdempotentInspect
Calculate the Balance number from initials of each part of the full name. Numerology: Kabbalistic (phonetic) system.
[Group: Numerology: Kabbalistic (phonetic)] [Endpoint: POST /v1/numerology/kabbalistic/balance] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| balance | No |
TDQS
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 adds genuinely useful operational context the annotations do not carry: the POST endpoint, the 10-credit Tier 1 cost, and the required input pair. It stops short of describing the response, but that is covered by the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded functional sentence followed by compact bracketed metadata blocks for group, endpoint, required inputs and cost. Nothing is padded, though the metadata bracket repeats 'kabbalistic' already implied by the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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/endpoint/required inputs are present. However, the unexplained meaning of `date` and the silence on the non-strict vs strict kabbalistic distinction leave real gaps for a tool with four parameters and many near-identical siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: the `fields` and `precision` compact-mode parameters are already documented in the schema, while `name` and `date` carry no descriptions. The description adds only that `name` is the full name whose initials are used; it never explains what role `date` plays in a 'balance' calculation. Baseline 3 is appropriate given the schema does part of the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Calculate the Balance number from initials of each part of the full name,' and pins the system as Kabbalistic (phonetic). It is clearly distinguishable from the Chaldean/Pythagorean/Vedic balance siblings, but it never addresses serial variants like astroway_numerology_kabbalistic_strict_balance, so the sibling differentiation is incomplete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 strict or other-system balance tools, and no preconditions beyond the required-parameter list. The agent is left to infer selection purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_birthdayBirthday (kabbalistic)BRead-onlyIdempotentInspect
Calculate the Birthday number from the day-of-birth digit. Numerology: Kabbalistic (phonetic) system.
[Group: Numerology: Kabbalistic (phonetic)] [Endpoint: POST /v1/numerology/kabbalistic/birthday] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| birthday | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful behavior beyond annotations: the credit cost (10 credits, Tier 1), the endpoint, and the required inputs. It does not disclose output format or any failure/validation behavior, but the output schema exists to cover returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The operative sentence is front-loaded and zero-waste; the bracketed metadata lines are compact and scannable. Slightly redundant to repeat 'Required: name, date' which the schema already enforces.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covering returns, the description is nearly sufficient – cost and endpoint are helpful additions. Its main shortfall is the absence of any signal distinguishing it from the 'strict' kabbalistic variant, which is the one decision an agent actually has to make here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% – the required 'name' and 'date' have no schema descriptions, while 'fields' and 'precision' do. The description compensates only partially by stating that the day-of-birth digit drives the calculation and listing required params, but adds no format or range detail beyond the regex already in the schema. Baseline 3 fits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate the Birthday number') and pins the variant with 'Kabbalistic (phonetic) system' and 'from the day-of-birth digit', which separates it from Chaldean/Pythagorean/Vedic birthday tools and from the kabbalistic_strict sibling. It does not, however, explain what makes it distinct from astroway_numerology_kabbalistic_strict_birthday beyond the 'phonetic' qualifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 bracketed metadata ('Required: name, date', cost) is administrative, not usage selection help, and nothing steers an agent between this and the many sibling birthday variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_challengeChallenge Cycles (kabbalistic)ARead-onlyIdempotentInspect
Calculate four Challenge cycles: life-area difficulties to master, derived from birth date components. Numerology: Kabbalistic (phonetic) system.
[Group: Numerology: Kabbalistic (phonetic)] [Endpoint: POST /v1/numerology/kabbalistic/challenge] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| system | No | |
| challenges | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds genuinely useful operational context beyond them: the endpoint (POST /v1/numerology/kabbalistic/challenge) and a billing cost of 10 credits at Tier 1, which affects whether an agent should spend the call. It does not describe failure modes or validation behavior, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The operative sentence leads, followed by compact bracketed metadata for group, endpoint, requirements, and cost with no filler prose. The one weakness is that the metadata block repeats the schema's required list, a minor redundancy rather than bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description covers purpose, system, endpoint, cost, and required inputs. For a four-parameter tool where the two optional compact-mode parameters are schema-documented, this is largely sufficient; only the ambiguity with the 'strict' sibling and the bare name/date semantics leave gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 `name` and `date` have no descriptions and the description only restates that they are required. It adds nothing about name handling (phonetic system implies spelling sensitivity) or the date format beyond the schema's pattern, so it neither compensates for nor worsens the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate four Challenge cycles') plus a concrete definition of what Challenge cycles are ('life-area difficulties to master, derived from birth date components'). It also names the numerological system ('Kabbalistic (phonetic)'), which routes away from Chaldean/Pythagorean/Vedic siblings, but it gives no basis to distinguish this from the near-identical astroway_numerology_kabbalistic_strict_challenge sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Naming the Kabbalistic (phonetic) system implies when this variant applies versus Pythagorean or Vedic, and the required-parameters line signals the input precondition. However, there is no explicit when-to-use/when-not guidance and no mention of the 'strict' variant that shares the same system, so selection still requires inference from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_chartCore Numbers Chart (kabbalistic)ARead-onlyIdempotentInspect
The six core numbers in one call: Life Path, Expression, Soul Urge, Personality, Birthday and Personal Year (year defaults to the current year), each with its meaning. 20 credits instead of 60 for six single calls. Every number carries meaning (English) and meaningLocalized in the requested language (translated: false with the English text while a language's strings are on their way). Numerology: Kabbalistic (phonetic) system.
[Group: Numerology: Kabbalistic (phonetic)] [Endpoint: POST /v1/numerology/kabbalistic/chart] [Required: name, date] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| year | No | Calendar year to read. Defaults to the current year (UTC). | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| year | No | |
| system | No | |
| birthday | No | |
| lifePath | No | |
| soulUrge | No | |
| expression | No | |
| personality | No | |
| personalYear | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description still adds real operational context: the 20-credit cost, and the localization caveat that `meaningLocalized` may fall back to English with `translated: false` while a language's strings are pending.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The return contents and the cost comparison are front-loaded, and the bracketed group/endpoint/required/cost block is scannable. It is slightly dense with metatext, but no sentence is wasteful for a tool with this many sibling variants.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, yet the description still previews `meaning`/`meaningLocalized`. Required inputs are surfaced via the bracket line. The only gap is that the referenced language selection has no corresponding parameter, leaving the localization trigger ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, with `year`, `fields` and `precision` already documented in the schema, so baseline is 3. The description restates the `year` default (already in the schema) and mentions meanings come 'in the requested language', but no language parameter exists in the schema, so that hint is unactionable rather than additive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource (returns the six core numbers in one call) and enumerates them: Life Path, Expression, Soul Urge, Personality, Birthday, Personal Year. It also states the system variant ('Kabbalistic (phonetic)') and the concrete alternative ('60 for six single calls'), which separates it from both the single-number siblings and the other chart schools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly frames the use case: get all six numbers together for 20 credits rather than issuing six single calls, which is a clear cost/coverage trade-off an agent can act on. It does not, however, tell the agent when to prefer a sibling such as astroway_numerology_kabbalistic_strict_chart or the Chaldean/Pythagorean/Vedic chart variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_expressionExpression / Destiny (kabbalistic)BRead-onlyIdempotentInspect
Calculate the Expression (Destiny) number from full birth name letters (all letters, reduced). Numerology: Kabbalistic (phonetic) system.
[Group: Numerology: Kabbalistic (phonetic)] [Endpoint: POST /v1/numerology/kabbalistic/expression] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| expression | No |
TDQS
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 genuinely useful non-annotation context — endpoint, required inputs, and a 10-credit Tier 1 cost — but says nothing about name normalization, failure behavior, or why a date is needed for a name-derived number.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence with the operation front-loaded, followed by a compact metadata block. The bracketed lines are boilerplate but each carries a distinct fact (group, endpoint, required params, cost), so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is correctly omitted, and annotations cover the safety profile. The remaining gaps are the unexplained role of 'date' and the absence of routing guidance against the strict and other-system expression siblings, which matters in a family this dense.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: 'fields' and 'precision' are self-documented, while 'date' and 'name' are not. The description partially compensates by stating both are required and clarifying that the full birth name is used with all letters counted, but it never explains what 'date' represents (birth date?) for a calculation driven by name letters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('Calculate the Expression (Destiny) number') and pins the system as 'Kabbalistic (phonetic)'. That differentiates it from the Chaldean, Pythagorean and Vedic expression siblings, though it never addresses the near-identical astroway_numerology_kabbalistic_strict_expression, which is the sibling an agent is most likely to 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the '(phonetic)' label and '(all letters, reduced)' method identify the variant, so an agent can infer this is the phonetic-Kabbalistic variant rather than the strict one. There is no explicit when-to-use statement, no exclusion of the strict/Chaldean/Pythagorean alternatives, and no prerequisite guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_life_pathLife Path Number (kabbalistic)BRead-onlyIdempotentInspect
Calculate the Life Path number from birth date (year + month + day, reduced). Numerology: Kabbalistic (phonetic) system.
[Group: Numerology: Kabbalistic (phonetic)] [Endpoint: POST /v1/numerology/kabbalistic/life-path] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| lifePath | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds one genuinely useful behavioral fact, the billing cost (10 credits, Tier 1), plus the required-parameter list, but says nothing about determinism, rate limits, or how name participates in a birth-date calculation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, with the second sentence giving the system qualifier. The bracketed metadata lines are terse and skimmable, though the endpoint line duplicates information an MCP client does not need to make a selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 operation itself is simple. Still, for a tool sitting in a cluster of five near-duplicate life-path variants, the description omits the guidance that would let an agent pick this one confidently, and it leaves the role of `name` unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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-schema, while the two required params (`date`, `name`) have no schema descriptions. The description's "birth date (year + month + day, reduced)" partially compensates for `date`, but it never explains why a `name` is required for a life-path calculation, leaving a real ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Calculate the Life Path number") and names the system variant ("Kabbalistic (phonetic)"), which separates it from the Chaldean/Pythagorean/Vedic life-path siblings. However, it does not differentiate from the near-identical siblings astroway_numerology_kabbalistic_strict_life_path and astroway_numks_life_path, so an agent still has to guess among those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of the alternative life-path tools in the enormous sibling set. The only routing signal is the system label baked into the name and description, leaving the strict vs phonetic distinction to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_maturityMaturity (kabbalistic)ARead-onlyIdempotentInspect
Calculate the Maturity number: sum of Life Path and Expression, activates around age 35. Numerology: Kabbalistic (phonetic) system.
[Group: Numerology: Kabbalistic (phonetic)] [Endpoint: POST /v1/numerology/kabbalistic/maturity] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| maturity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is fully covered. The description adds the endpoint and a concrete cost of 10 credits (Tier 1), which is genuinely useful agent-relevant context, but says nothing about rate limits or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence and the metadata block is compact and scannable. Every element earns its place, though the bracketed metadata could be slightly tighter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. Cost, endpoint, required params, and system are all stated, leaving only cross-system selection guidance as an omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, and the description only repeats 'Required: name, date', which the schema's required array already conveys. It adds no format or meaning for either parameter and does not compensate for the two documented compact-mode params it ignores.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate), the exact resource (Maturity number), its derivation (sum of Life Path and Expression), its meaning (activates around age 35), and the system (Kabbalistic/phonetic). The system label lets an agent distinguish it from the Pythagorean, Vedic, Chaldean, and 'strict' Kabbalistic variants among the many siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use/when-not guidance and no alternatives named, even though siblings like kabbalistic_strict_maturity and the other systems are direct substitutes. 'Activates around age 35' describes the number itself, not when an agent should call this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_personalityPersonality (kabbalistic)ARead-onlyIdempotentInspect
Calculate the Personality number from the consonants of the full birth name. Numerology: Kabbalistic (phonetic) system.
[Group: Numerology: Kabbalistic (phonetic)] [Endpoint: POST /v1/numerology/kabbalistic/personality] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| personality | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/destructive=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the credit cost (10 credits, Tier 1) and the concrete endpoint, which an agent can use for budgeting. It stops short of describing the response, but that is less critical here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in a single clear sentence, with metadata (group, endpoint, required, cost) cleanly bracketed afterward. Slightly label-heavy, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry the safety profile. The description covers purpose, system, endpoint, required inputs, and cost. The main gap is the absence of any guidance on choosing between the many near-identical sibling personalities.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%; 'fields' and 'precision' are documented in-schema but 'name' and 'date' are not. The description partly compensates by clarifying that 'name' is the full birth name and that only consonants are used, plus listing the required inputs, but it adds nothing about the compact-mode parameters. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate'), resource ('the Personality number'), input derivation ('from the consonants of the full birth name'), and system ('Kabbalistic (phonetic)'). This is enough to distinguish it from the many sibling personality tools (chaldean, pythagorean, vedic, kabbalistic_strict) without opening their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description identifies the system and the required inputs but offers no explicit when-to-use, when-not, or alternative routing (e.g., vs. kabbalistic_strict_personality or pythagorean_personality). Usage is only implied by the group label and name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_personal_yearPersonal Year (kabbalistic)BRead-onlyIdempotentInspect
Calculate the Personal Year number for a given calendar year: the 9-year cycle of personal evolution. Numerology: Kabbalistic (phonetic) system.
[Group: Numerology: Kabbalistic (phonetic)] [Endpoint: POST /v1/numerology/kabbalistic/personal-year] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| year | No | Calendar year to read. Defaults to the current year (UTC). | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| personalYear | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely useful metadata beyond annotations: cost (10 credits, Tier 1), endpoint, and required inputs. It still says nothing about what the calculation returns or what 'personal evolution' output looks like, and an output schema exists to carry that, so this is adequate rather than rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose in the first clause, followed by a compact bracketed metadata block (group, endpoint, required, cost). No filler sentences. Slightly dense but every element carries routing or cost information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple computation tool with an output schema and full safety annotations, the essentials (purpose, required inputs, cost) are present. The omission is disambiguation from the many parallel Personal Year implementations, which matters far more here than return-value detail that the output schema already supplies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%: `year`, `fields`, and `precision` are documented in-schema, while `date` and `name` carry only pattern/length constraints. The description merely repeats the required list ('Required: name, date') and adds the phrase 'for a given calendar year', adding no meaning beyond structured fields. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate the Personal Year number') and pins the system ('Kabbalistic (phonetic)'), which is essential given ~70 sibling numerology tools. It does not, however, distinguish itself from near-identical siblings such as kabbalistic_strict_personal_year or numk_personal_year, so an agent cannot tell those apart 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no mention of alternatives. It never tells the agent how this differs from the chaldean, pythagorean, vedic, strict, numk, numks, or nump Personal Year variants, which is the single most important routing decision for this tool family. The system label is implied context, not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_pinnaclesPinnacle Cycles (kabbalistic)BRead-onlyIdempotentInspect
Calculate four Pinnacle cycles with their age boundaries: life chapters of opportunity. Numerology: Kabbalistic (phonetic) system.
[Group: Numerology: Kabbalistic (phonetic)] [Endpoint: POST /v1/numerology/kabbalistic/pinnacles] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| system | No | |
| pinnacles | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No contradiction with annotations, which already declare readOnly/idempotent/non-destructive/closed-world. The description adds genuinely useful operational context the annotations do not carry: the endpoint path, required inputs, and a 10-credit Tier 1 cost. It says nothing about computation inputs beyond name/date or any output traits, but the output schema covers returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Punchy and front-loaded: the functional sentence leads, and bracketed metadata follows in a scannable block. Every line carries information, though the '[Group:]' line partially duplicates the school already stated in the first sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and safety annotations covering the risk profile, the main completeness gap is the absence of any routing guidance in a family of ~10 near-duplicate pinnacle tools. Operational facts (endpoint, cost, required fields) are present, so the definition is adequate but leaves the agent to guess which sibling applies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 itself, while 'name' and 'date' have only length/pattern constraints. The description merely restates the two required params ('Required: name, date') and adds no format or behavior detail beyond the schema, which is the expected baseline here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate four Pinnacle cycles with their age boundaries') and identifies the school as 'Kabbalistic (phonetic) system', which separates it from the chaldean/pythagorean/vedic pinnacles siblings. It does not, however, explicitly distinguish itself from the near-identical 'kabbalistic_strict_pinnacles' variant, so a qualifier about the phonetic vs strict distinction is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists required parameters and cost but never says when to choose this tool over the many sibling pinnacle calculators. There are no usage conditions, prerequisites, or named alternatives despite an extremely crowded sibling namespace.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_soul_urgeSoul Urge / Heart's Desire (kabbalistic)ARead-onlyIdempotentInspect
Calculate the Soul Urge number from the vowels of the full birth name. Numerology: Kabbalistic (phonetic) system.
[Group: Numerology: Kabbalistic (phonetic)] [Endpoint: POST /v1/numerology/kabbalistic/soul-urge] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| soulUrge | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/non-open-world, so safety is covered; the description adds genuinely new behavioral context: the cost (10 credits, Tier 1), the endpoint and method, and the required inputs. It does not describe the shape or limits of the computation, but the cost/credit disclosure is meaningful budget-relevant information beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences carry the substance, and the bracketed metadata lines are compact and scannable. Slightly over-tagged (five metadata blocks for a four-parameter calculation tool), but there is no wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry the safety profile. What remains is adequate for a simple deterministic calculation: system variant, required inputs, and cost are all present. The one loose end is the unexplained `date` parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only `fields` and `precision` are documented), and the description only adds '[Required: name, date]'. It does partially compensate by implying `name` is the full birth name (vowels taken from it), but it never explains what role `date` plays in a vowel-based soul-urge calculation, leaving a real ambiguity unresolved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource (calculate the Soul Urge number) and the input basis (the vowels of the full birth name), and pins the variant with 'Kabbalistic (phonetic) system'. That variant tag is exactly what separates it from the many sibling soul_urge tools (chaldean, pythagorean, vedic, strict) without opening their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The [Group] and [Endpoint] tags plus the 'Kabbalistic (phonetic)' label let an agent infer this is the kabbalistic-family soul-urge calculation, but nothing states when to prefer it over chaldean/pythagorean/vedic or over the near-identical 'strict' and 'numks' siblings. No alternatives or exclusions are named, so guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_strict_balanceBalance (kabbalistic-strict)BRead-onlyIdempotentInspect
Calculate the Balance number from initials of each part of the full name. Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/balance] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| balance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a read-only, idempotent, non-destructive, closed-world operation, so the safety profile is covered. The description adds genuinely decision-relevant context not present in structured fields: the endpoint, the required inputs, and a billing cost of 10 credits (Tier 1), which an agent should weigh before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and carries no filler, and the bracketed metadata lines are structured rather than prose padding. The metadata block is slightly redundant with the schema's required list, but the format is scannable and cheap.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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/endpoint/required inputs are supplied. What is missing is the differentiation and selection logic an agent needs when eleven near-identical Balance siblings are available, particularly the strict/non-strict boundary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: `fields` and `precision` are documented in the schema, while `date` and `name` carry no schema description. The prose clarifies that `name` supplies initials of each part of the full name, but the role of `date` in a name-derived Balance calculation is never explained anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific computation (Balance number) plus the exact input basis (initials of each part of the full name) and names the numerology system (Kabbalistic, Mathers strict). It distinguishes itself from the Chaldean/Pythagorean/Vedic Balance siblings, but never clarifies how 'kabbalistic_strict' differs from the plain 'astroway_numerology_kabbalistic_balance' sibling, which is the closest and most confusable alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this tool, no prerequisites, and no routing to or away from alternatives. The 'strict' vs non-strict distinction is left entirely to inference despite both tools existing side by side.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_strict_birthdayBirthday (kabbalistic-strict)BRead-onlyIdempotentInspect
Calculate the Birthday number from the day-of-birth digit. Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/birthday] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| birthday | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful non-annotation context — cost ('10 credits (Tier 1)') and the required-parameter list — but says nothing about authentication, rate limits, or what the computation consumes (e.g., whether 'name' actually influences the result).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action in the first sentence, and the bracketed metadata lines are compact and scannable rather than prose padding. Slightly fragmented structure, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations carry the safety profile. However, for a tool sitting in a dense family of near-identical siblings, the description omits the strict-vs-non-strict distinction and the role of the 'name' parameter, which are the two things an agent most needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 'date' and 'name' are not. The description adds one hint — that the number derives from the 'day-of-birth digit' — but does not explain why 'name' is required for a day-digit calculation, leaving a real semantic gap. Baseline 3 is appropriate at this coverage level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate') and resource ('Birthday number from the day-of-birth digit') and names the divination system ('Kabbalistic (Mathers strict) system'), which is the key discriminator among the many numerology siblings. It falls short of a 5 because it never explicitly distinguishes itself from astroway_numerology_kabbalistic_birthday (non-strict) or astroway_numks_birthday, which an agent must otherwise infer.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The system label ('Kabbalistic (Mathers strict)') and the endpoint path give implied selection context among the Chaldean/Pythagorean/Vedic/Kabbalistic variants. There is no explicit when-to-use statement, no condition that selects the strict variant over the plain Kabbalistic one, and no exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_strict_challengeChallenge Cycles (kabbalistic-strict)BRead-onlyIdempotentInspect
Calculate four Challenge cycles: life-area difficulties to master, derived from birth date components. Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/challenge] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| system | No | |
| challenges | No |
TDQS
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 covered. The description adds genuinely new behavioral context in the credit cost (10 credits, Tier 1), but says nothing about response shape, error cases, or rate limits 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core verb+resource+system in the first sentence, followed by short bracketed metadata lines that scan quickly. No filler prose; the only redundancy is restating the required parameters already implied by the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 plus required inputs are disclosed. For a parameterized calculation endpoint with four params this is nearly complete, with only minor gaps around what the `name` input contributes to a challenge calculation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50% — `fields` and `precision` are documented in the schema, while `date` and `name` carry only type/pattern constraints. The description merely restates the required set ('Required: name, date') and hints at birth-date derivation; it adds no format, meaning, or interaction detail beyond the schema for the undocumented half.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate four Challenge cycles: life-area difficulties to master') and pins the system variant ('Kabbalistic (Mathers strict) system'), which is exactly what separates it from the plain astroway_numerology_kabbalistic_challenge sibling. An agent can pick this tool over the non-strict and Chaldean/Pythagorean/Vedic challenge variants without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this Challenge tool over the sibling challenge/chart variants, nor any prerequisites or exclusions beyond which parameters are required. The [Group]/[Endpoint]/[Cost] tags are metadata, not usage guidance, so routing must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_strict_chartCore Numbers Chart (kabbalistic-strict)ARead-onlyIdempotentInspect
The six core numbers in one call: Life Path, Expression, Soul Urge, Personality, Birthday and Personal Year (year defaults to the current year), each with its meaning. 20 credits instead of 60 for six single calls. Every number carries meaning (English) and meaningLocalized in the requested language (translated: false with the English text while a language's strings are on their way). Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/chart] [Required: name, date] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| year | No | Calendar year to read. Defaults to the current year (UTC). | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| year | No | |
| system | No | |
| birthday | No | |
| lifePath | No | |
| soulUrge | No | |
| expression | No | |
| personality | No | |
| personalYear | No |
TDQS
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), and the description adds real beyond-annotation context: the credit cost tipping, the localized-meaning fields, and the translated:false fallback behavior during localization. It stops short of describing any rate limits or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core value proposition is front-loaded, cost follows, then output shape, then system. It is dense but every clause contributes; only the bracketed metadata footer is boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return structure needn't be explained, and the description still covers cost, localization semantics, the system variant, and the aggregation advantage. Nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60% and the schema itself documents year (defaults to current year), fields, and precision, so the description repeats the year default rather than adding syntax. It references 'the requested language' as if a language parameter exists, but no such property is in the schema, adding slight ambiguity rather than clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names the exact resource (the six core numbers: Life Path, Expression, Soul Urge, Personality, Birthday, Personal Year) and the system (Kabbalistic Mathers strict), which distinguishes it from the plain kabbalistic_chart and the single-number siblings. An agent can tell what it returns and which tradition it belongs to 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The cost framing ('20 credits instead of 60 for six single calls') gives a clear reason to choose this aggregate tool over the six per-number siblings. However, no explicit when-not condition or named alternative is stated, so routing is inferred rather than prescribed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_strict_expressionExpression / Destiny (kabbalistic-strict)ARead-onlyIdempotentInspect
Calculate the Expression (Destiny) number from full birth name letters (all letters, reduced). Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/expression] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| expression | No |
TDQS
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 genuinely useful behavioral context the annotations do not: the cost (10 credits, Tier 1) and the endpoint, which matter for agent budget and routing decisions. It stops short of describing the return payload, but the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in a single efficient sentence, followed by bracketed metadata that is scannable and non-redundant. The tag block is slightly administrative but each entry (group, endpoint, required, cost) carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering the safety profile, the description's remaining burden is method and invocation context, both of which are supplied (strict Kabbalistic method, required params, cost). The one soft spot is that the role of 'date' is never stated, though it is conventional for numerology.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: fields and precision are documented in the schema, but date and name are not. The description compensates for the name parameter by clarifying it must be the full birth name with all letters reduced, which is the semantically ambiguous one. It adds nothing for date, so the coverage gap is only partly closed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate), a specific resource (Expression/Destiny number), and the exact computation rule (full birth name letters, all letters, reduced). It also names the system variant 'Kabbalistic (Mathers strict)', which lets an agent distinguish it from the many sibling expression tools (kabbalistic_expression, pythagorean_expression, vedic_expression, etc.) without opening their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The named system variant implies which sibling family this belongs to, so routing is partially inferable. However, there is no explicit when-to-use statement, no guidance on choosing strict vs non-strict Kabbalistic, and no mention of prerequisites or exclusions beyond the '[Required: name, date]' tag.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_strict_life_pathLife Path Number (kabbalistic-strict)ARead-onlyIdempotentInspect
Calculate the Life Path number from birth date (year + month + day, reduced). Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/life-path] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| lifePath | No |
TDQS
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 bar is lower. The description adds genuinely useful operational detail beyond annotations: the credit cost (10, Tier 1), the endpoint, and required inputs, which help an agent budget and call correctly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, with structured bracketed metadata following. Nothing is wasted, though the bracket lines are slightly boilerplate-heavy relative to the terse core sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema and rich annotations are present, so return values and safety need not be described. The main gap is differentiation from the extremely crowded sibling set (kabbalistic vs kabbalistic-strict vs other systems), which the description only partially addresses via the system label.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'fields' and 'precision' are documented in the schema, while 'date' and 'name' are self-explanatory given their pattern/length constraints. The description only restates the required params and the date semantics, adding little beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate'), resource ('Life Path number'), and the algorithm/system ('Kabbalistic (Mathers strict)') plus the input basis ('birth date... reduced'). This distinguishes it from the chaldean/pythagorean/vedic life-path siblings, though it does not explain how 'strict' differs from the non-strict kabbalistic_life_path sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance, and no routing among the ~80 sibling numerology tools. Usage is only implied by the system label in the title/name. It does supply operational context (required params, cost) which is mildly helpful but 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_numerology_kabbalistic_strict_maturityMaturity (kabbalistic-strict)ARead-onlyIdempotentInspect
Calculate the Maturity number: sum of Life Path and Expression, activates around age 35. Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/maturity] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| maturity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, and is a non-open-world tool, so the safety profile is fully covered. The description adds the cost (10 credits, Tier 1) and the concrete endpoint, which is useful but modest context beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, followed by compact bracketed metadata (group, endpoint, required, cost). No filler, and every line carries distinct operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 requirements, cost tier and endpoint. It is nearly complete for a read-only calculation tool; only explicit sibling routing is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: the 'fields' and 'precision' params carry their own descriptions, while 'name' and 'date' have no schema descriptions. The description only restates 'Required: name, date', which the schema already enforces, and adds no format or semantics beyond that; baseline 3 fits.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate') plus the resource ('Maturity number') and even defines the underlying method ('sum of Life Path and Expression, activates around age 35'). The system qualifier 'Kabbalistic (Mathers strict)' distinguishes it from the many sibling maturity tools (chaldean, pythagorean, vedic, loose kabbalistic).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The group tag and the system label imply when this variant applies versus its siblings, and 'activates around age 35' gives interpretive context. However, there is no explicit when-to-use/when-not statement or named alternative, leaving the agent to infer selection from the system name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_strict_personalityPersonality (kabbalistic-strict)BRead-onlyIdempotentInspect
Calculate the Personality number from the consonants of the full birth name. Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/personality] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| personality | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely useful operational context beyond that: the endpoint, the required inputs, and the 10-credit Tier 1 cost. It does not address edge behavior (e.g., non-letter characters in the name) or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely compact and front-loaded: the core computation is the first sentence, and the bracketed metadata lines are scannable. Nearly every token earns its place, though the group/endpoint lines duplicate information already obvious from the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 required parameters and cost are stated. What is missing for a calculation tool in a dense family of near-identical siblings is any hint of when this variant is appropriate versus the other systems or number types.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'fields' and 'precision' are documented in the schema, while 'name' and 'date' are bare. The description partially compensates by clarifying that 'name' means the full birth name, but says nothing about the date format or why a birth date matters to a name-derived number.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate the Personality number') and scopes it precisely to 'the consonants of the full birth name,' which distinguishes it from the soul-urge siblings that use vowels. The 'Mathers strict' system tag separates it from the non-strict kabbalistic and pythagorean variants, though it never names a sibling directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance and no selection criteria against the many alternative systems (chaldean, pythagorean, non-strict kabbalistic) or against the other number types in the same family. The only usage-adjacent signal is the cost line, which tells the agent it is a paid call but not when it 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_numerology_kabbalistic_strict_personal_yearPersonal Year (kabbalistic-strict)BRead-onlyIdempotentInspect
Calculate the Personal Year number for a given calendar year: the 9-year cycle of personal evolution. Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/personal-year] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| year | No | Calendar year to read. Defaults to the current year (UTC). | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| personalYear | No |
TDQS
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 cost (10 credits, Tier 1) and required inputs, but does not disclose error behavior, rate limits, or return format beyond what the output schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and clear. Bracketed metadata (group, endpoint, required, cost) is brief and scannable, though some of it duplicates schema or annotation data. No unnecessary prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, the description omits usage guidance versus sibling systems and does not explain the optional year, fields, or precision parameters, leaving gaps for a 5-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%: year, fields, and precision have schema descriptions, while date and name do not. The description only repeats that name and date are required, adding no meaning beyond the schema's required array, and it does not explain the optional year, fields, or precision parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate'), resource ('Personal Year number'), and system ('Kabbalistic (Mathers strict)'). The system name distinguishes it from the many sibling numerology variants (Chaldean, Pythagorean, Vedic, and non-strict Kabbalistic).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this tool over alternatives such as astroway_numerology_kabbalistic_personal_year or astroway_numerology_pythagorean_personal_year. It only lists required parameters and cost, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_strict_pinnaclesPinnacle Cycles (kabbalistic-strict)BRead-onlyIdempotentInspect
Calculate four Pinnacle cycles with their age boundaries: life chapters of opportunity. Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/pinnacles] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| system | No | |
| pinnacles | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description usefully adds the endpoint, required fields, and a concrete cost (10 credits, Tier 1), which is real value beyond annotations, but it says nothing about what the four cycles/age boundaries look like or any auth/rate considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose in one sentence, then uses compact bracketed metadata for group, endpoint, required inputs, and cost. No wasted prose, though the bracketed block is boilerplate rather than explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. The description supplies system, endpoint, required fields, and cost, but omits any differentiation from the near-identical non-strict kabbalistic sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'fields' and 'precision' are documented in the schema, while 'date' and 'name' carry only pattern/length constraints. The description merely restates '[Required: name, date]', which the schema already encodes, so it adds no new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate'), resource ('four Pinnacle cycles with their age boundaries'), and system ('Kabbalistic (Mathers strict)'). This distinguishes it from the Chaldean/Pythagorean/Vedic pinnacle siblings, though it never explicitly contrasts with the non-strict 'astroway_numerology_kabbalistic_pinnacles' variant that sits right next to it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance and names no alternatives among the many pinnacle siblings. It states only required inputs and cost, leaving the agent to infer when this system is preferable to the other four pinnacle variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_kabbalistic_strict_soul_urgeSoul Urge / Heart's Desire (kabbalistic-strict)ARead-onlyIdempotentInspect
Calculate the Soul Urge number from the vowels of the full birth name. Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/soul-urge] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| soulUrge | No |
TDQS
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 needs no elaboration. The description adds genuinely new operational context not present in annotations: the endpoint, the required input set, and the 10-credit (Tier 1) cost, which matters for an agent budgeting calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the operational sentence, followed by terse bracketed metadata. No filler prose; the metadata lines are compact and each carries a distinct fact (group, endpoint, required, cost), though the required-params line duplicates the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. With purpose, system, endpoint, cost, and required inputs all present, the agent has enough to invoke the tool correctly; only explicit sibling routing is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%; 'fields' and 'precision' are documented in the schema, while 'name' and 'date' are not. The description partially compensates by clarifying that 'name' is the full birth name from which vowels are extracted, and it restates the required set, but it adds nothing about 'date' beyond the schema pattern.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate') and resource ('Soul Urge number from the vowels of the full birth name') and identifies the exact system variant ('Kabbalistic (Mathers strict)'), which is the key differentiator among the many *_soul_urge siblings. It does not explicitly name an alternative sibling, but the system qualifier effectively disambiguates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this over the chaldean/pythagorean/vedic or non-strict kabbalistic soul-urge variants. The only context given is required parameters and credit cost, which are operational 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_numerology_pythagorean_balanceBalance (pythagorean)ARead-onlyIdempotentInspect
Calculate the Balance number from initials of each part of the full name. Numerology: Pythagorean system.
[Group: Numerology: Pythagorean] [Endpoint: POST /v1/numerology/pythagorean/balance] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| balance | No |
TDQS
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 fully covered. The description adds genuinely useful non-annotation context - 10-credit Tier 1 cost and the POST endpoint - but nothing about latency, auth, or result shape. With annotations carrying the behavioral load, this is a modest value-add rather than a rich disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The operative sentence is front-loaded and waste-free, and the bracketed group/endpoint/required/cost tags are terse and scannable. Slightly boilerplate-heavy, but nothing is padded or redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost, endpoint, and required inputs are all disclosed. The one real gap is that a tool sitting among dozens of near-identical sibling variants gives no cue for when this one is the right pick.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: the two optional params (fields, precision) are documented in-schema, while name and date carry no descriptions. The phrase 'from initials of each part of the full name' usefully implies `name` must be a multi-part full name and gestures at the derivation, but the date format and length constraints are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate'), resource ('Balance number'), and derivation ('from initials of each part of the full name'), then pins the variant with 'Pythagorean system.' Against a sibling set containing chaldean_balance, kabbalistic_balance, and vedic_balance, this cleanly separates both the number type and the system.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what gets computed but offers no when-to-use guidance and no rule for choosing Pythagorean over the Chaldean, Kabbalistic, Vedic, or numks/numk variants of the same Balance calculation. The endpoint and required-parameter tags are metadata, 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_numerology_pythagorean_birthdayBirthday (pythagorean)BRead-onlyIdempotentInspect
Calculate the Birthday number from the day-of-birth digit. Numerology: Pythagorean system.
[Group: Numerology: Pythagorean] [Endpoint: POST /v1/numerology/pythagorean/birthday] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| birthday | No |
TDQS
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 non-annotation context: the endpoint, required inputs, and a cost of 10 credits (Tier 1), which matters for an agent budgeting calls. It does not, however, describe output shape, error behavior, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, followed by a compact bracketed metadata block. Every line carries information (group, endpoint, required fields, cost) with no filler. It is slightly repetitive in restating required params already implied by the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needed, and cost/endpoint/required fields are present. However, for a tool sitting among ~10 near-identical numerology siblings, the definition lacks the disambiguation an agent needs to select it correctly, leaving a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'fields' and 'precision' are documented in the schema, while 'name' and 'date' rely on their types/pattern/minLength constraints. The description restates only that name and date are required and adds no format or semantic detail (e.g., whether name affects the calculation or is only for labeling). Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ("Calculate the Birthday number") and names the system (Pythagorean), which is the key differentiator against the many sibling numerology tools (Chaldean, Kabbalistic, Vedic, numks/nump). The phrase "from the day-of-birth digit" is slightly imprecise but does not obscure the purpose. It stops short of explicitly contrasting itself with the Birthday siblings of other systems, so it earns a 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to pick this tool over the pythagorean_chart, life_path, or the chaldean/kabbalistic/vedic birthday variants. The metadata block supplies group, endpoint, and cost but no selection criteria or exclusions. The agent must infer usage purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_pythagorean_challengeChallenge Cycles (pythagorean)ARead-onlyIdempotentInspect
Calculate four Challenge cycles: life-area difficulties to master, derived from birth date components. Numerology: Pythagorean system.
[Group: Numerology: Pythagorean] [Endpoint: POST /v1/numerology/pythagorean/challenge] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| system | No | |
| challenges | No |
TDQS
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 new operational context not present in structured fields: the credit price (10 credits, Tier 1), the HTTP endpoint, and the confirmed required inputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded explanatory sentence followed by compact bracketed metadata. Nothing is padded, though the bracketed block is somewhat telegrammatic rather than prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. Cost, endpoint, and required inputs round it out; the only real hole is the unexplained role of the 'name' parameter in a date-derived calculation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'fields' and 'precision' are documented in the schema, but 'name' and 'date' carry only patterns/lengths with no description. The description partially compensates by listing them as required and by saying the result is 'derived from birth date components', but it leaves unexplained why 'name' is required for a birth-date-derived calculation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with a specific verb and resource: 'Calculate four Challenge cycles', then glosses the concept as 'life-area difficulties to master, derived from birth date components'. The 'Pythagorean system' tag distinguishes it from the parallel Chaldean, Kabbalistic, Vedic and numks challenge siblings, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no condition that separates it from the ~10 other 'challenge' tools in the sibling list, and no prerequisites beyond the bare '[Required: name, date]' line. The agent gets cost and endpoint but no routing logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_pythagorean_chartCore Numbers Chart (pythagorean)ARead-onlyIdempotentInspect
The six core numbers in one call: Life Path, Expression, Soul Urge, Personality, Birthday and Personal Year (year defaults to the current year), each with its meaning. 20 credits instead of 60 for six single calls. Every number carries meaning (English) and meaningLocalized in the requested language (translated: false with the English text while a language's strings are on their way). Numerology: Pythagorean system.
[Group: Numerology: Pythagorean] [Endpoint: POST /v1/numerology/pythagorean/chart] [Required: name, date] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| year | No | Calendar year to read. Defaults to the current year (UTC). | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| year | No | |
| system | No | |
| birthday | No | |
| lifePath | No | |
| soulUrge | No | |
| expression | No | |
| personality | No | |
| personalYear | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe profile (readOnlyHint, idempotentHint, destructiveHint=false, closed world), so the bar for extra disclosure is lower. The description goes beyond them by documenting the localization behavior of the output (meaningLocalized in the requested language, with translated: false and English fallback while strings are in progress) and the credit tier/cost, which are genuine behavioral traits not captured by annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core value proposition (six numbers, one call, credited discount) and the localization caveat are front-loaded, and the bracketed group/endpoint/required/cost block is easy to scan. 'Numerology: Pythagorean system.' is mildly redundant with the group tag, but overall it is tight and well-ordered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 structure needn't be explained, and the description supplies the remaining decision-relevant facts: the six numbers covered, cost/tier, endpoint, required parameters, and the localization fallback. Nothing an agent needs to select or invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, with year, fields and precision already documented in-schema; the description only restates the year default and adds nothing about name/date formats or the compact-mode parameters. It also references strings 'in the requested language' even though no language parameter exists in the schema, which adds ambiguity rather than clarity. Baseline 3 is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope: 'The six core numbers in one call: Life Path, Expression, Soul Urge, Personality, Birthday and Personal Year', enumerating exactly what is returned. This distinguishes it cleanly from the many single-number Pythagorean siblings (astroway_numerology_pythagorean_life_path, _expression, etc.) without the agent needing to open a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear selection context by contrasting the batch tool with 'six single calls' at a 20-vs-60 credit cost, which tells the agent when this is the right choice. It stops short of explicitly naming the alternative tools or stating exclusions (e.g., when a single-number call is preferable), so it is clear context rather than full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_pythagorean_expressionExpression / Destiny (pythagorean)ARead-onlyIdempotentInspect
Calculate the Expression (Destiny) number from full birth name letters (all letters, reduced). Numerology: Pythagorean system.
[Group: Numerology: Pythagorean] [Endpoint: POST /v1/numerology/pythagorean/expression] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| expression | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely new behavioral context beyond structured fields: cost (10 credits, Tier 1) and the exact endpoint. It does not mention auth requirements or rate limits, which would round it out.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core computation in the first sentence, followed by compact bracketed metadata. Every element is short and useful, though the 'Required: name, date' line partly duplicates the schema's required array.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity two-required-param calculation with an output schema present, the definition is nearly sufficient: name semantics, system, cost, and endpoint are all covered. The remaining gap is the absence of any 'date' semantics and any usage context relative to the dense sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: the two required params (name, date) carry no schema descriptions, while fields/precision do. The description clarifies that 'name' means the full birth name in letters, which is a real semantic gain, but it never explains what 'date' represents (presumably birth date) beyond re-stating it as required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate), resource (Expression/Destiny number), input basis (full birth name letters, all letters, reduced), and system (Pythagorean). This cleanly separates it from the chaldean/kabbalistic/vedic expression siblings and from soul_urge/personality, which use vowels/consonants rather than all letters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what the tool computes but gives no when-to-use, when-not-to-use, or routing advice among the ~70 sibling numerology tools. The system choice is embedded in the name, but no explicit selection guidance or prerequisites are offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_pythagorean_life_pathLife Path Number (pythagorean)ARead-onlyIdempotentInspect
Calculate the Life Path number from birth date (year + month + day, reduced). Numerology: Pythagorean system.
[Group: Numerology: Pythagorean] [Endpoint: POST /v1/numerology/pythagorean/life-path] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| lifePath | No |
TDQS
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 genuinely new operational context: the credit cost ('10 credits (Tier 1)'), the endpoint, and the required-parameter set. It also notes the reduction method, though it doesn't detail error behavior or numeric validation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose in the first sentence, with machine-readable metadata tags kept short. Every element is compact and carries information; the bracket tags are slightly noisy but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 supplies purpose, required inputs, cost, and endpoint for a simple calculation tool. The one meaningful gap is cross-system selection guidance, which the sibling set arguably makes necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only 'fields' and 'precision' are documented in-schema). The description partly compensates by clarifying that 'date' is a birth date and that name/date are required, but it adds nothing about the name format or the compact-mode 'fields'/'precision' interaction beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate'), a specific resource ('Life Path number'), and the disambiguating system ('Pythagorean'). This cleanly separates it from sibling life-path tools in the Chaldean, Kabbalistic, Vedic, numks and nump families without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose the Pythagorean life path over the Chaldean, Vedic, or Kabbalistic life-path siblings, nor any prerequisites or exclusions. The '[Group: Numerology: Pythagorean]' tag is context metadata rather than usage direction, so 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_numerology_pythagorean_maturityMaturity (pythagorean)ARead-onlyIdempotentInspect
Calculate the Maturity number: sum of Life Path and Expression, activates around age 35. Numerology: Pythagorean system.
[Group: Numerology: Pythagorean] [Endpoint: POST /v1/numerology/pythagorean/maturity] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| maturity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and closed-world, so safety is covered. The description adds non-obvious operational facts the annotations omit: the endpoint, the cost (10 credits, Tier 1), and the required inputs, which materially affect invocation decisions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with a one-line purpose, followed by compact bracketed metadata. Every element carries information, though the '[Required: name, date]' line partly duplicates the schema's required array.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 supplies purpose, cost, and endpoint for a simple two-required-param calculator. The main omission is guidance on how this differs in use from sibling numerology tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%; the description only restates the required set ('name, date') already present in the schema's required array. It adds no semantics for the two required params (formats, name handling) or for the optional fields/precision params, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Calculate the Maturity number') and defines the derived quantity ('sum of Life Path and Expression, activates around age 35'), plus the system ('Pythagorean'). This distinguishes it from the many chaldean/kabbalistic/vedic maturity siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'activates around age 35' note gives interpretive context, but there is no explicit when-to-use guidance or routing versus siblings like astroway_numerology_pythagorean_life_path or _chart. Usage is only implied by the taxonomy.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_pythagorean_personalityPersonality (pythagorean)BRead-onlyIdempotentInspect
Calculate the Personality number from the consonants of the full birth name. Numerology: Pythagorean system.
[Group: Numerology: Pythagorean] [Endpoint: POST /v1/numerology/pythagorean/personality] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| personality | No |
TDQS
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 usefully adds the per-call cost (10 credits, Tier 1) and the endpoint, which are real behavioral facts not present in the annotations, but it says nothing about caching, rate limits, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is two tight sentences with the computation basis front-loaded, followed by a compact bracketed metadata block (group, endpoint, required params, cost). Nothing is wasted, though the bracketed boilerplate is not strictly description content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 required inputs plus cost and endpoint are covered. The gaps are interpretive: what the Personality number represents and why to choose this system over the many sibling personality tools are absent, leaving an agent with a numerically complete but contextually thin definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'fields' and 'precision' are documented in the schema, while 'date' has only a regex pattern and 'name' has only length bounds. The description compensates partially by specifying that 'name' must be the full birth name used for consonant extraction, but leaves the meaning/format of 'date' (presumably birth date) unstated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate'), a specific artifact ('Personality number'), and the exact derivation basis ('from the consonants of the full birth name') within the Pythagorean system. This differentiates it from the Chaldean/Kabbalistic/Vedic personality siblings listed in the tool family, though it never names those alternatives directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance. The phrase 'from the consonants of the full birth name' hints that a full birth name (not a nickname) is required, but the description never states a selection condition versus the other numerology system variants or the neighboring Chaldean/Vedic personality tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_pythagorean_personal_yearPersonal Year (pythagorean)BRead-onlyIdempotentInspect
Calculate the Personal Year number for a given calendar year: the 9-year cycle of personal evolution. Numerology: Pythagorean system.
[Group: Numerology: Pythagorean] [Endpoint: POST /v1/numerology/pythagorean/personal-year] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| year | No | Calendar year to read. Defaults to the current year (UTC). | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| personalYear | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds genuinely non-annotated context: the endpoint and the cost (10 credits, Tier 1). It says nothing further about return behavior, but an output schema exists to carry that burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact front-loaded sentence carries the core purpose, followed by tidy bracketed metadata (group, endpoint, requirements, cost). No filler sentences, though the bracket block is slightly noisy against four structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema and full annotations present, the description need not explain return values or safety. It supplies endpoint, required params and cost, which is close to complete for a single-value calculation tool; only usage guidance is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, with 'year', 'fields' and 'precision' already documented in the schema. The description only restates the required set ('name, date') and adds no syntax, format, or meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate'), resource ('Personal Year number'), scope ('for a given calendar year') and system ('Pythagorean'), which distinguishes it from the Chaldean/Kabbalistic/Vedic personal-year siblings. However, it offers no explicit differentiation from the other Pythagorean calculation tools, leaving that routing to 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description frames what the number represents ('the 9-year cycle of personal evolution') but gives no when-to-use guidance, no prerequisites, and no pointer to alternative tools. The agent must infer context entirely from the name and the 9-year-cycle framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_pythagorean_pinnaclesPinnacle Cycles (pythagorean)ARead-onlyIdempotentInspect
Calculate four Pinnacle cycles with their age boundaries: life chapters of opportunity. Numerology: Pythagorean system.
[Group: Numerology: Pythagorean] [Endpoint: POST /v1/numerology/pythagorean/pinnacles] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| system | No | |
| pinnacles | No |
TDQS
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 bar is lower. The description adds genuinely useful operational context the annotations do not: the credit cost ('10 credits (Tier 1)'), the HTTP endpoint, and which inputs are required. It stops short of describing output shape, but an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose in one sentence, followed by a compact metadata block (group, endpoint, required, cost). Nothing is padded, though the metadata lines are template boilerplate rather than prose that earns its place per-tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-required-parameter calculation tool with an output schema and full annotation coverage, the description supplies enough to invoke correctly: what it computes, the system, the endpoint, required inputs, and cost. The main gap is the absence of routing guidance among the many pinnacle siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 'name' and 'date' carry only type/pattern constraints. The description restates the required set ('Required: name, date') but adds no meaning beyond that, so it does not compensate for the undocumented half. Baseline 3 for partial coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate four Pinnacle cycles with their age boundaries') and clarifies the meaning of the output ('life chapters of opportunity'). The 'Pythagorean system' tag plus endpoint differentiate it from the Chaldean/Kabbalistic/Vedic pinnacle siblings, though the differentiation is by label 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.
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. Given ~11 sibling pinnacle tools across systems, the description never explains why an agent would choose Pythagorean over Chaldean/Kabbalistic/Vedic, nor does it state prerequisites or prerequisites for the input date.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_pythagorean_soul_urgeSoul Urge / Heart's Desire (pythagorean)ARead-onlyIdempotentInspect
Calculate the Soul Urge number from the vowels of the full birth name. Numerology: Pythagorean system.
[Group: Numerology: Pythagorean] [Endpoint: POST /v1/numerology/pythagorean/soul-urge] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| soulUrge | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly, idempotent, non-destructive), so the bar is lower. The description adds genuinely useful operational context beyond them: cost (10 credits, Tier 1), the endpoint, and the required inputs. It doesn't mention rate limits or output shape, but annotations already carry the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose in the first sentence, then terse bracketed metadata. Every element earns its place; the bracketed metadata style is dense but readable and free of filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple name+date calculation with an output schema present, the definition covers purpose, cost, endpoint, and required inputs — enough for an agent to call it correctly. The missing piece is guidance on when to prefer it over the parallel soul_urge tools in other systems.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, so baseline 3 applies. The description adds one real nuance — the name should be the 'full birth name' — but leaves the `date` parameter unexplained for a name/vowel-based calculation, and says nothing about `fields`/`precision` beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate the Soul Urge number') plus the method ('from the vowels of the full birth name') and system ('Pythagorean'), which distinguishes it from the Chaldean/Vedic/Kabbalistic soul_urge siblings. The grouping tag reinforces the differentiation, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Pythagorean system' tag and the [Required: name, date] line imply when the tool applies, but there is no explicit when-to-use vs when-not guidance or comparison against the many alternative numerology tools. Usage must be inferred from the group label.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_vedic_balanceBalance (vedic)BRead-onlyIdempotentInspect
Calculate the Balance number from initials of each part of the full name. Numerology: Vedic system.
[Group: Numerology: Vedic] [Endpoint: POST /v1/numerology/vedic/balance] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| balance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds useful behavioral context in the form of the credit cost (10 credits, Tier 1) and the endpoint, but does not describe what the calculation returns or any sensitivity of inputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The working sentence is front-loaded and precise, followed by a compact bracketed metadata block. Nothing is padded, though the metadata block is somewhat template boilerplate rather than tool-specific prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, return values needn't be explained. The description covers purpose, required inputs, endpoint and cost, which is sufficient for calling a read-only calculation endpoint, with only the system-selection reasoning left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% — 'fields' and 'precision' are documented in-schema, while 'name' and 'date' are not. The description partly compensates by naming them as required and clarifying that the name is decomposed into 'each part of the full name' for initials, but adds no format or interpretation detail for 'date' or the compact-mode fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate the Balance number from initials of each part of the full name') and tags the system as 'Vedic', which distinguishes it from the chaldean/kabbalistic/pythagorean balance siblings. It is unambiguous what the tool computes, though it never explicitly contrasts itself with those sibling systems.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists required inputs, group, endpoint and cost, but gives no guidance on when to pick this Vedic balance tool over the chaldean, kabbalistic, pythagorean, or numks/numk balance variants. No prerequisites, no when-not-to-use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_vedic_birthdayBirthday (vedic)BRead-onlyIdempotentInspect
Calculate the Birthday number from the day-of-birth digit. Numerology: Vedic system.
[Group: Numerology: Vedic] [Endpoint: POST /v1/numerology/vedic/birthday] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| birthday | No |
TDQS
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 without the text. The description does add genuine context beyond the annotations, notably the '10 credits (Tier 1)' cost and the POST endpoint, but it says nothing about failure modes, invalid-date behavior, or whether results are cached/reproducible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded purpose sentence followed by a compact bracketed metadata block; nothing is padded or repeated. The metadata lines are somewhat boilerplate, which keeps it just short of ideal, but the whole definition is scannable in one pass.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because an output schema exists, the description need not explain return values, and the read-only annotations cover the safety story, so the remaining burden is light. What is missing is the cross-system selection logic in a family of ~30 near-identically named numerology siblings, which is the main risk for an agent choosing this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: 'fields' and 'precision' are documented in the schema, while 'date' and 'name' are not. The description's 'Required: name, date' merely restates the schema's required array, and the only real semantic addition is the hint that the day-of-birth digit drives the result. It never explains the YYYY-MM-DD format requirement or the name length bound.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description pairs a specific verb and resource ('Calculate the Birthday number') with the system scoping ('Vedic system') and the derivation rule ('from the day-of-birth digit'). That last clause cleanly separates it from siblings like astroway_numerology_pythagorean_birthday and from other Vedic tools such as vedic_life_path or vedic_expression, which use different inputs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool computes but never says when to pick this Vedic variant over the Chaldean, Kabbalistic, or Pythagorean birthday siblings, nor when a birthday number is the wrong reading to request. The only usage-adjacent content is the bracketed 'Required: name, date' and cost line, which are preconditions rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_vedic_challengeChallenge Cycles (vedic)BRead-onlyIdempotentInspect
Calculate four Challenge cycles: life-area difficulties to master, derived from birth date components. Numerology: Vedic system.
[Group: Numerology: Vedic] [Endpoint: POST /v1/numerology/vedic/challenge] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| system | No | |
| challenges | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, destructive=false, openWorld=false, so the safety profile is covered. The description adds genuinely useful non-schema context: a POST endpoint and a 10-credit Tier 1 cost, which helps an agent budget calls. It stops short of noting pricing tiers or whether results are cached/repeatable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose in one sentence, followed by compact bracketed metadata. No filler sentences. The bracket-block formatting is slightly mechanical but each line carries distinct information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return format needn't be described, and annotations cover the safety profile; cost and endpoint are supplied. The one soft gap is the mild tension between 'derived from birth date components' and the required name parameter, which is left unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: fields and precision carry their own descriptions, while name and date have constraints (pattern, min/maxLength) but no explanation. The description merely restates 'Required: name, date', which the schema already encodes in its required array, and adds no meaning for the two undescribed parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Calculate four Challenge cycles') and clarifies the deliverable ('life-area difficulties to master') plus the system ('Vedic'). The [Group: Numerology: Vedic] tag helps separate it from the Chaldean/Kabbalistic/Pythagorean challenge siblings, but the prose itself never names a sibling, so differentiation leans on the tag rather than the sentence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The system label implies when this variant applies (Vedic vs other numerology systems), and the required params/cost line hints at invocation prerequisites. However there is no explicit when-to-use, when-not, or alternative routing against the many sibling challenge tools, leaving usage largely inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_vedic_chartCore Numbers Chart (vedic)ARead-onlyIdempotentInspect
The six core numbers in one call: Life Path, Expression, Soul Urge, Personality, Birthday and Personal Year (year defaults to the current year), each with its meaning. 20 credits instead of 60 for six single calls. Every number carries meaning (English) and meaningLocalized in the requested language (translated: false with the English text while a language's strings are on their way). Numerology: Vedic system.
[Group: Numerology: Vedic] [Endpoint: POST /v1/numerology/vedic/chart] [Required: name, date] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| year | No | Calendar year to read. Defaults to the current year (UTC). | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| year | No | |
| system | No | |
| birthday | No | |
| lifePath | No | |
| soulUrge | No | |
| expression | No | |
| personality | No | |
| personalYear | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so safety is covered. The description adds genuine context beyond them: the 20-credit cost, the guaranteed presence of `meaning` and `meaningLocalized`, and the `translated: false` fallback when a language's strings are not yet available. That translation-fallback behavior is exactly the kind of trait an agent should know before rendering results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core value proposition (six numbers, one call), followed by cost and output-shape details. There is mild redundancy: cost appears in both the body and the trailing '[Cost: 20 credits]' tag, and the endpoint/required tags restate schema facts. Still efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 detailed, and the description still usefully characterizes them (each number carries meaning + localized meaning). For a read-only chart call this is near-complete; the only real gap is the unexplained reference to a 'requested language' that has no corresponding parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, and the description mostly repeats what is already documented: `year` defaults to the current year, which the schema states verbatim. It alludes to a 'requested language' for `meaningLocalized`, but no language parameter exists in the schema, so that reference is ambiguous rather than clarifying. Baseline 3 for a description that does not materially extend the parameter definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: it returns the six named core numbers (Life Path, Expression, Soul Urge, Personality, Birthday, Personal Year) in a single Vedic numerology call, and explicitly frames itself against the six single-number siblings via cost. The closing tag 'Numerology: Vedic system' also separates it from the Chaldean/Kabbalistic/Pythagorean chart variants. An agent can identify it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear selection rationale ('20 credits instead of 60 for six single calls'), which tells the agent to prefer this over repeatedly calling the single-number tools. It does not, however, explicitly name the alternative tools or state when a single-number call would be preferable. Clear context, but no explicit exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_vedic_expressionExpression / Destiny (vedic)ARead-onlyIdempotentInspect
Calculate the Expression (Destiny) number from full birth name letters (all letters, reduced). Numerology: Vedic system.
[Group: Numerology: Vedic] [Endpoint: POST /v1/numerology/vedic/expression] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| expression | No |
TDQS
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 genuinely useful context beyond that: the cost (10 credits, Tier 1), the endpoint, and the reduction method ('all letters, reduced'). It does not address rate limits or response caching, but for a stateless read calculation the disclosure is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and dense with useful specifics; the bracketed metadata block is compact and scannable. Slight redundancy in restating required parameters that the schema already enforces, but nothing egregiously wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover the safety profile; the remaining burden is low for a single-number calculation. The missing piece is disambiguation from the other expression tools across systems, plus any note on how 'date' participates in an expression-number calculation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'fields' and 'precision' are documented in the schema, while 'name' and 'date' carry only type/pattern constraints. The description partially compensates by stating that the name is the full birth name (letters) and by echoing the two required parameters, but it never clarifies date semantics (birth date vs. event date) or name formatting rules. Baseline 3 is appropriate given partial coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Calculate') and an unambiguous resource ('the Expression (Destiny) number'), and names the system ('Vedic system'), which separates it from the Chaldean, Kabbalistic, and Pythagorean variants in the sibling list. It also adds algorithmic scope ('from full birth name letters (all letters, reduced)'). It does not, however, contrast itself with those siblings in prose, relying on the name/group tag to do that work.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to pick Vedic over Chaldean, Kabbalistic, Pythagorean, or the numk/numks/num-p equivalents of Expression, nor any exclusion or prerequisite. The only usage-adjacent content is the bracketed '[Required: name, date]' and cost line, which state constraints rather than selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_vedic_life_pathLife Path Number (vedic)BRead-onlyIdempotentInspect
Calculate the Life Path number from birth date (year + month + day, reduced). Numerology: Vedic system.
[Group: Numerology: Vedic] [Endpoint: POST /v1/numerology/vedic/life-path] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| lifePath | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds cost (10 credits, Tier 1), the endpoint, and required fields — useful operational context — but says nothing about the return payload's character beyond what the output schema implies.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and the bracketed metadata (group, endpoint, required, cost) is scannable and compact. Slightly boilerplate-heavy but nothing is wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, given ~11 sibling system variants of the same operation, the description omits any routing guidance, which is the main gap an agent would need filled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, but 'name' and 'date' have no schema description. The description partially compensates by specifying that date is the birth date (year+month+day, reduced) and that name and date are required, but it never explains what 'name' contributes to a date-only life-path calculation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate the Life Path number from birth date') and tags the Vedic system, which distinguishes it from the chaldean/kabbalistic/pythagorean life_path siblings. It does not explain how the Vedic computation actually differs from those systems, but the naming and group tag are enough for an agent to disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose Vedic over the many sibling systems (chaldean, kabbalistic, pythagorean, numks), nor any exclusions or prerequisites beyond the required-parameter list. The agent is left to infer selection purely from the system name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_vedic_maturityMaturity (vedic)ARead-onlyIdempotentInspect
Calculate the Maturity number: sum of Life Path and Expression, activates around age 35. Numerology: Vedic system.
[Group: Numerology: Vedic] [Endpoint: POST /v1/numerology/vedic/maturity] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| maturity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, covering the safety profile. The description adds the credit cost (10 credits, Tier 1) and endpoint, which are useful operational facts, but says nothing about response shape or rate behavior. Credit cost lifts it slightly above minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence and the bracketed metadata is compact. Slightly padded by the '[Group]/[Endpoint]' block that partly duplicates the name, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover safety. For a 4-param read-only calculator the description supplies purpose, system, cost, and required inputs, leaving little an agent would need to infer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 itself, while 'date' and 'name' carry pattern/length constraints but no prose. The description only restates the required parameters ('Required: name, date') without adding format meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate') and resource ('Maturity number'), then defines the concept as the sum of Life Path and Expression. The 'Vedic system' tag distinguishes it from the chaldean/kabbalistic/pythagorean maturity siblings that share the same name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Vedic system' label implies which variant to pick among the many maturity tools, but there is no explicit when-to-use guidance or routing statement. Usage context is only inferable from the system name 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_numerology_vedic_personalityPersonality (vedic)ARead-onlyIdempotentInspect
Calculate the Personality number from the consonants of the full birth name. Numerology: Vedic system.
[Group: Numerology: Vedic] [Endpoint: POST /v1/numerology/vedic/personality] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| personality | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds operationally useful context beyond them: the endpoint, the required inputs, and the cost (10 credits, Tier 1), which materially affects whether an agent should call it. It does not describe rate limits or what happens on an invalid name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-sentence purpose followed by four dense bracketed metadata lines with no filler. The '[Group: ...]' line is mildly redundant with the title and name, but everything else (endpoint, required params, cost) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 supplies endpoint, required inputs and cost. For a single-purpose deterministic calculator that is close to sufficient; only the ambiguity around the 'date' parameter keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: 'fields' and 'precision' are documented in the schema, while 'name' and 'date' have no descriptions. The description compensates partially by stating the name must be the full birth name (not a nickname) and by listing both as required, though it never states that 'date' is the birth date or which name variant the Vedic system expects. Baseline 3 for this coverage level.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate), a specific resource (the Personality number), the derivation rule (from the consonants of the full birth name) and the system (Vedic). That derivation plus the system label is enough to separate it from the ~20 sibling personality calculators (Chaldean, Kabbalistic, Pythagorean, numks) without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 statement or named alternative. Usage is only implied: the 'Vedic system' tag routes the agent within the numerology family, and the 'consonants of the full birth name' rule implicitly distinguishes it from Soul Urge (vowels) and Expression (all letters). Adequate but no exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_vedic_personal_yearPersonal Year (vedic)ARead-onlyIdempotentInspect
Calculate the Personal Year number for a given calendar year: the 9-year cycle of personal evolution. Numerology: Vedic system.
[Group: Numerology: Vedic] [Endpoint: POST /v1/numerology/vedic/personal-year] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| year | No | Calendar year to read. Defaults to the current year (UTC). | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| personalYear | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered. The description adds genuinely useful operational context beyond that: the POST endpoint, the explicit required inputs, and the cost (10 credits, Tier 1), which an agent needs for budgeting. It stops short of rate limits or auth requirements, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-sentence purpose, then compact bracketed metadata lines that are scannable rather than prose padding. The tag block is slightly mechanical but each line carries distinct information (group, endpoint, required, cost).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover the read-only/idempotent safety profile. Combined with endpoint, required inputs, cost and the "9-year cycle" framing, an agent has everything needed to invoke it correctly; the only omission is cross-system routing guidance, which is a usage-guidelines issue rather than a completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%: year, fields and precision carry their own descriptions, while name and date are undocumented in the schema. The description only restates "given calendar year" and the required list, adding no format or semantics beyond the schema (e.g. nothing about date format beyond the pattern). Baseline 3 is right for a partially documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Calculate") plus a specific resource ("Personal Year number for a given calendar year") and names the system ("Vedic"), which is exactly the axis that separates it from the pythagorean/chaldean/kabbalistic personal_year siblings. An agent can pick this tool out of the ~80-tool list 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to choose Vedic over the Pythagorean, Chaldean or Kabbalistic Personal Year variants, nor what input conditions make this the right call. It only lists required parameters and cost, which is metadata 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_numerology_vedic_pinnaclesPinnacle Cycles (vedic)BRead-onlyIdempotentInspect
Calculate four Pinnacle cycles with their age boundaries: life chapters of opportunity. Numerology: Vedic system.
[Group: Numerology: Vedic] [Endpoint: POST /v1/numerology/vedic/pinnacles] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| system | No | |
| pinnacles | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so safety is covered. The description adds genuinely useful operational context beyond that: the POST endpoint, the required inputs, and the 10-credit Tier 1 cost, which matters for an agent deciding whether to spend a call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is a single efficient sentence and the bracketed metadata block is compact and scannable. Nothing is padded, though the metadata lines are largely restatements of structured data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only calculation with an output schema (so return values need no explanation), the definition covers purpose, cost, and inputs. It falls short on system-selection guidance and on the two undocumented parameters, leaving the agent to guess at the Vedic-vs-other-system choice.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: 'fields' and 'precision' carry their own descriptions, while 'name' and 'date' have none. The description's '[Required: name, date]' merely restates what the schema's required array already declares and adds no format, constraint, or meaning beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate four Pinnacle cycles with their age boundaries') and even characterizes the output ('life chapters of opportunity'). The '[Group: Numerology: Vedic]' tag differentiates it from the Chaldean/Kabbalistic/Pythagorean pinnacle siblings, though that differentiation comes from metadata rather than the prose itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance: nothing says when to pick Vedic pinnacles over vedic_chart, vedic_life_path, or the Chaldean/Kabbalistic pinnacle variants. The agent must infer selection purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numerology_vedic_soul_urgeSoul Urge / Heart's Desire (vedic)ARead-onlyIdempotentInspect
Calculate the Soul Urge number from the vowels of the full birth name. Numerology: Vedic system.
[Group: Numerology: Vedic] [Endpoint: POST /v1/numerology/vedic/soul-urge] [Required: name, date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| soulUrge | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a read-only, idempotent, non-destructive, closed-world operation, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: a concrete cost (10 credits, Tier 1), the endpoint, and the required inputs — the cost in particular is not captured anywhere 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the operation, followed by tight bracketed metadata lines (group, endpoint, required, cost) that each carry non-redundant information. No filler and nothing repeated from the schema or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 rich annotations cover the safety profile. The main gap is the unexplained role of the required date parameter, and the lack of any cross-reference to the sibling soul-urge tools — minor but real omissions for a simple calculation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 name and date are not. The description partly compensates by clarifying that name is the 'full birth name' (and that vowels drive the result), but it never explains why date is required for a calculation ostensibly based only on the name's vowels. Baseline 3 is fair given the partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (calculate the Soul Urge number) and scopes it to vowels of the full birth name, so the agent knows exactly what is computed. The 'Vedic' system tag differentiates it from the many Chaldean/Kabbalistic/Pythagorean soul-urge siblings, though it never explicitly names an alternative, so differentiation is implicit rather than spelled out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use vs when-not guidance and no alternatives named among the ~10 sibling soul-urge tools. The system label implies the context but the agent must infer when Vedic is preferable to Chaldean or Pythagorean variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numk_personal_yearPersonal Year (kabbalistic)ARead-onlyIdempotentInspect
Calculate the Personal Year number for a given calendar year: the 9-year cycle of personal evolution. Numerology: Kabbalistic (phonetic) system.
[Group: Numerology: Kabbalistic (phonetic)] [Endpoint: POST /v1/numerology/kabbalistic/personal-year] [Required: name, date] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_numerology_kabbalistic_personal_year.)
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| year | No | Calendar year to read. Defaults to the current year (UTC). | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| personalYear | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so safety is covered; the description adds cost (10 credits, Tier 1), the endpoint, and the required fields, which are genuinely useful operational context. It stops short of noting anything about determinism of results 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence stating the calculation, followed by a compact metadata block. Every line carries operational signal (group, endpoint, required, cost) with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only calculation with an output schema present, the definition covers what the tool computes, its tradition, cost, and required inputs. Remaining gaps (date format nuance, compact-mode behavior) are handled by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60% (year, fields, precision documented; name and date bare), and the description only restates the two required parameters without adding format or meaning. This matches the baseline for partial schema coverage but adds no compensating detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate') and resource ('Personal Year number for a given calendar year') and names the tradition ('Kabbalistic (phonetic) system'), which helps distinguish it from the Chaldean/Pythagorean/Vedic siblings. It does not, however, differentiate from the closely named kabbalistic_strict_personal_year or the alias target beyond the alias note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description reveals this is a 'Cursor-friendly alias for astroway_numerology_kabbalistic_personal_year', which tells the agent when to prefer this spelling over the canonical tool, but it gives no guidance on choosing between numerology systems or the strict variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numks_balanceBalance (kabbalistic-strict)ARead-onlyIdempotentInspect
Calculate the Balance number from initials of each part of the full name. Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/balance] [Required: name, date] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_numerology_kabbalistic_strict_balance.)
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| balance | No |
TDQS
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 needn't re-state safety. It adds useful metadata operations don't get elsewhere – cost (10 credits, Tier 1), the endpoint method, required inputs, and the alias relationship – which is genuinely valuable for agent budgeting. But it says nothing about auth, rate limits, or failure modes. Its one real work product is a single sentence plus bracketed metadata; a 3 reflects adequate but incomplete behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the action and system in the first sentence, then a compact metadata block. No wasted prose. The alias note is arguably the sole candidate for trimming, but at this size the description is efficient and well-ordered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 described; the description instead supplies the operational context (cost, endpoint, required params, alias). Given the simple 4-param, 2-required shape and existing annotations, this is nearly complete. It only falls short of 5 because the alias relationship to the canonical tool is stated but its selection policy is not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%, so the schema documents `fields` and `precision` while `name` and `date` have types/patterns but no prose description. The description adds only that these are 'Required' and that the balance derives from name initials and the date, which lightly clarifies `name`/`date` semantics. It does not compensate for the 50% gap – it neither explains the pattern/format of `date` nor the minLength/maxLength on `name`. Baseline 3 is appropriate when half the schema is self-documenting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific computation ('Calculate the Balance number from initials of each part of the full name') and names the exact system ('Kabbalistic (Mathers strict)'). Unlike most numerology siblings, it even distinguishes itself semantically from the plain Kabbalistic balance by naming the strict system and describing the initials-based derivation, so an agent can route correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives no when-to-use guidance, no exclusions, and no comparison against the ~80 sibling tools. The '(Cursor-friendly alias for astroway_numerology_kabbalistic_strict_balance)' note implies equivalence but doesn't explicitly say 'prefer one over the other' or 'do not call both'. The agent must infer selection entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numks_birthdayBirthday (kabbalistic-strict)BRead-onlyIdempotentInspect
Calculate the Birthday number from the day-of-birth digit. Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/birthday] [Required: name, date] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_numerology_kabbalistic_strict_birthday.)
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| birthday | No |
TDQS
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 new behavioral context — a 10-credit Tier 1 cost and the required-input set — but says nothing about latency, failure modes, or how the strict system's output differs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and the remaining lines are a scannable metadata block (group, endpoint, required, cost, alias). Every line carries information, though the bracketed boilerplate is slightly heavier than prose would be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 safety; endpoint, required inputs, cost, and system are all stated. The remaining gap — the difference between 'strict' and non-strict Kabbalistic results — is a nice-to-have rather than a blocker.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 `date` and `name` are bare. The description's only parameter content is '[Required: name, date]', which merely restates the schema's required array, and it never explains why `name` is needed for a number derived from the day-of-birth digit — a real ambiguity an agent would want resolved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb+resource ('calculate the Birthday number') and names the system ('Kabbalistic (Mathers strict)'), which separates it from the Chaldean/Pythagorean/Vedic birthday siblings. It never explicitly contrasts itself with the non-strict `astroway_numerology_kabbalistic_birthday`, so the 'strict' distinction is left implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description supplies endpoint, required inputs, cost tier, and a note that this is a 'Cursor-friendly alias' of `astroway_numerology_kabbalistic_strict_birthday`, which is useful routing context. However it never says when to choose this variant over the non-strict Kabbalistic birthday tool or over the canonical name, so usage remains implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numks_challengeChallenge Cycles (kabbalistic-strict)ARead-onlyIdempotentInspect
Calculate four Challenge cycles: life-area difficulties to master, derived from birth date components. Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/challenge] [Required: name, date] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_numerology_kabbalistic_strict_challenge.)
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| system | No | |
| challenges | No |
TDQS
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 genuinely useful context beyond that: the endpoint (POST /v1/...), the required inputs, and a cost of 10 credits (Tier 1). It does not need to describe return format since an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence comes first and the metadata (group, endpoint, required, cost, alias) is stacked in compact bracketed lines. Nothing is wasted, though the endpoint and alias lines are operational bookkeeping rather than selection-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry the safety profile. The description covers purpose, system, required inputs and cost, which is enough to invoke the tool correctly; only the differentiator between the strict and non-strict kabbalistic variants is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 itself, while `name` and `date` are only constrained by pattern/length. The description repeats '[Required: name, date]', which the schema already marks as required, so it adds no meaning beyond the structured data. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) plus resource (four Challenge cycles), and pins the exact system: 'Numerology: Kabbalistic (Mathers strict)'. This lets an agent separate it from the chaldaic, pythagorean, vedic and non-strict kabbalistic challenge siblings without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The [Group] tag and system label imply when this tool applies, but there is no explicit when-to-use statement, no exclusions, and no named alternative among the many sibling variants (e.g. kabbalistic vs kabbalistic_strict, challenge vs pinnacles). Guidance is inferable from the naming, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numks_expressionExpression / Destiny (kabbalistic-strict)ARead-onlyIdempotentInspect
Calculate the Expression (Destiny) number from full birth name letters (all letters, reduced). Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/expression] [Required: name, date] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_numerology_kabbalistic_strict_expression.)
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| expression | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior. The description adds genuinely useful operational context beyond that: the POST endpoint, the required inputs, and a 10-credit (Tier 1) cost. It does not describe output format, but an output schema exists to cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose in one sentence, then uses compact bracketed metadata blocks for group/endpoint/required/cost and a parenthetical alias note. Efficient and scannable, with no wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a calculation tool with an output schema and full safety annotations, the definition supplies the endpoint, cost tier, required inputs, and system disambiguation. The only real gap is the unexplained 'date' parameter, which the schema does not describe either.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% – 'fields' and 'precision' are documented in the schema, while 'name' and 'date' are not. The phrase 'full birth name letters (all letters, reduced)' usefully clarifies what 'name' must contain, but the role of 'date' in an Expression-number calculation is never explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate') and resource ('Expression (Destiny) number from full birth name letters'), names the system (Kabbalistic / Mathers strict), and explicitly identifies itself as a Cursor-friendly alias for the canonical sibling. An agent can distinguish it from the pythagorean/chaldean/vedic expression tools 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the system tag and the alias note, and required parameters plus cost are stated, but there is no explicit when-to-use/when-not guidance or comparison against the non-strict Kabbalistic expression sibling or other systems' expression tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numks_life_pathLife Path Number (kabbalistic-strict)ARead-onlyIdempotentInspect
Calculate the Life Path number from birth date (year + month + day, reduced). Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/life-path] [Required: name, date] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_numerology_kabbalistic_strict_life_path.)
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| lifePath | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotent/non-destructive, and the description adds genuinely useful context beyond them: cost (10 credits, Tier 1), the endpoint, and the required inputs. It doesn't mention latency or failure modes, but for a deterministic calculation tool this is solid added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The leading sentence is front-loaded and the bracketed metadata is scannable rather than prose bloat. The group line slightly duplicates the system name already stated in sentence one, but overall it is tight and earns its space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description covers system, required inputs, cost tier and endpoint. What's missing is any cue on choosing this variant over the ~80 numerology siblings, but the alias note partly covers that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: `fields` and `precision` are self-documented, while `name` and `date` have only type/pattern constraints. The description restates the required pair and explains the reduction ('year + month + day, reduced'), but never explains why a `name` is needed for a Life Path calculation — a real semantic gap the schema also leaves open.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (the Life Path number) and pins the exact variant: 'Kabbalistic (Mathers strict) system', which is exactly what separates it from the pythagorean/chaldean/vedic and non-strict kabbalistic life-path siblings. It even names the canonical tool it aliases, so the agent can disambiguate without reading the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The '[Group: ...]' and '[Endpoint: ...]' metadata imply the context of use, and the alias note clarifies routing, but there is no explicit statement of when to prefer this strict variant over the plain kabbalistic or pythagorean life-path tools. Usage is inferable from the system label 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_numks_maturityMaturity (kabbalistic-strict)ARead-onlyIdempotentInspect
Calculate the Maturity number: sum of Life Path and Expression, activates around age 35. Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/maturity] [Required: name, date] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_numerology_kabbalistic_strict_maturity.)
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| maturity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior. The description adds value beyond them: cost (10 credits, Tier 1), the endpoint, required inputs, and the note that it is a cursor-friendly alias — useful operational context. Return semantics are covered by the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line purpose is front-loaded and every bracketed metadata line (group, endpoint, required, cost, alias) carries distinct routing or operational value. Slightly list-heavy but no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema handling return values and annotations covering the safety profile, the description supplies the remaining essentials: compute inputs, cost, endpoint, and system identity. Only the selection guidance among sibling systems is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 'name' and 'date' are not. The description only restates the required set, adding no format or meaning beyond the schema, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate the Maturity number'), supplies the composing formula ('sum of Life Path and Expression'), and pins the exact system ('Kabbalistic (Mathers strict)'). This distinguishes it from the sibling Kabbalistic, Pythagorean, Vedic, and non-strict variants, and the alias line ties it to astroway_numerology_kabbalistic_strict_maturity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the number means ('activates around age 35') but gives no when-to-use guidance or routing among the many maturity/system siblings. An agent is left to infer selection from the group label alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numks_personalityPersonality (kabbalistic-strict)ARead-onlyIdempotentInspect
Calculate the Personality number from the consonants of the full birth name. Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/personality] [Required: name, date] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_numerology_kabbalistic_strict_personality.)
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| personality | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavioral context the annotations lack: a cost of 10 credits (Tier 1), the required inputs, and the HTTP endpoint. It does not mention rate limits, auth, or failure modes, so it is good but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose leads the description in one clean sentence, with metadata (group, endpoint, required, cost, alias) relegated to bracketed tags that are easy to skim. Slightly tag-heavy, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry the safety profile. Purpose, system, cost, and required inputs are all present, leaving only the role of `date` and cross-tool routing as gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (only `fields` and `precision` are described in the schema). The description usefully clarifies that `name` is the 'full birth name' whose consonants drive the result, but it never explains the required `date` parameter, which is unexplained in both places and odd for a name-derived number. Partial compensation only, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate the Personality number from the consonants of the full birth name') and names the system ('Kabbalistic (Mathers strict)'), which is exactly the axis separating it from the chaldean/pythagorean/vedic personality siblings and from non-strict kabbalistic. An agent can select it 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the system designation and the note that it is an alias for `astroway_numerology_kabbalistic_strict_personality`, which helps disambiguate the duplicate-tool situation. However, there is no explicit when-to-use/when-not or any statement of when to prefer a chart or full-name tool instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numks_personal_yearPersonal Year (kabbalistic-strict)ARead-onlyIdempotentInspect
Calculate the Personal Year number for a given calendar year: the 9-year cycle of personal evolution. Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/personal-year] [Required: name, date] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_numerology_kabbalistic_strict_personal_year.)
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| year | No | Calendar year to read. Defaults to the current year (UTC). | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| personalYear | No |
TDQS
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 genuinely useful operational context the annotations lack: a cost of 10 credits (Tier 1), the required inputs, and the POST endpoint. It does not describe output shape, but an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead sentence is front-loaded and the metadata block is scannable, with no filler prose. Minor waste in repeating 'Required: name, date' already present in the schema, but overall tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only calculation tool with an output schema, the definition supplies system identity, cost, endpoint, required inputs, and the alias relationship. The main residual gap is that the two required string parameters (name, date) get no format or meaning guidance anywhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 60%: `year`, `fields`, and `precision` are documented in the schema, while `name` and `date` are not. The description adds no semantics for those two beyond restating 'Required: name, date', which duplicates the schema's required list, and 'given calendar year' only loosely gestures at the year parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate), resource (Personal Year number), and scope (for a given calendar year, the 9-year cycle), then pins the exact system variant 'Kabbalistic (Mathers strict)'. Against siblings that split into chaldean/pythagorean/vedic and a non-strict kabbalistic line, an agent can pick this one without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The system label implicitly routes the agent within the numerology family, and the alias note tells it when this name is the one to call. But there is no explicit when-to-use versus the sibling variants (chaldean/kabbalistic/pythagorean personal_year) or when to prefer this over the long-form canonical name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numks_pinnaclesPinnacle Cycles (kabbalistic-strict)ARead-onlyIdempotentInspect
Calculate four Pinnacle cycles with their age boundaries: life chapters of opportunity. Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/pinnacles] [Required: name, date] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_numerology_kabbalistic_strict_pinnacles.)
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| system | No | |
| pinnacles | No |
TDQS
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 still adds materially: the credit cost (10 credits, Tier 1) is an invocation-time consideration agents may need to weigh, plus the endpoint and grouping. It does not describe error or validation behavior, but that gap is modest.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and tells the agent what the tool returns before the bracketed metadata. The group/endpoint/required/cost lines are compact and scannable, though the endpoint line duplicates the group line's information for an agent that cannot make HTTP calls.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 unnecessary, and the annotations cover the safety profile. With the system variant named, cost disclosed, alias noted, and required inputs identified, an agent has everything needed to choose and call this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is at 50%: `fields` and `precision` are well documented in the schema, but `name` and `date` carry only constraints (pattern, min/maxLength) with no prose. The description's '[Required: name, date]' merely restates the schema's required array and adds no semantic detail, so it does not compensate for the undocumented half.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate') and resource ('four Pinnacle cycles with their age boundaries') and pins the exact system variant ('Kabbalistic (Mathers strict)'), which is what separates it from the pythagorean/chaldean/vedic pinnacle siblings and from the other kabbalistic-strict aspect tools. It also discloses the alias relationship to `astroway_numerology_kabbalistic_strict_pinnacles`, so an agent can recognize the duplicate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The alias note is genuinely useful for tool selection, telling the agent this and the long-named variant are interchangeable. However, there is no explicit when-to-use / when-not guidance relative to the other numerology aspect tools (life_path, challenge, maturity), leaving the agent to infer that 'pinnacles' means the age-chapter reading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_numks_soul_urgeSoul Urge / Heart's Desire (kabbalistic-strict)ARead-onlyIdempotentInspect
Calculate the Soul Urge number from the vowels of the full birth name. Numerology: Kabbalistic (Mathers strict) system.
[Group: Numerology: Kabbalistic (Mathers strict)] [Endpoint: POST /v1/numerology/kabbalistic-strict/soul-urge] [Required: name, date] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_numerology_kabbalistic_strict_soul_urge.)
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| soulUrge | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety burden is covered. The description adds genuinely useful non-structured context: a fixed price of 10 credits (Tier 1), the required inputs, and the endpoint. It does not describe the returned values, but an output schema exists so that is not a gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first two sentences, with the bracket metadata organized into scannable label/value lines. The block is slightly verbose relative to the tiny calculation it describes, but nothing is truly wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-purpose calculation tool, the definition covers system, endpoint, required inputs, and cost, while annotations carry the safety profile and an output schema covers returns. An agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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-schema but `name` and `date` are not. The description adds real meaning for `name` by specifying it is the full birth name and that only vowels are used, but it never explains why a `date` is required for a soul-urge calculation, leaving that parameter opaque.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate the Soul Urge number from the vowels of the full birth name') and pins the system to 'Kabbalistic (Mathers strict)', which lets an agent separate it from the chaldean/pythagorean/vedic and non-strict kabbalistic siblings. The alias note ties it explicitly to astroway_numerology_kabbalistic_strict_soul_urge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Supplies clear operating context: the system group, the endpoint, the required inputs, and the cost tier, plus the cursor-friendly alias routing. It never states when this should be preferred over the canonical non-alias sibling or when not to use it, so there is context but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_nump_personal_yearPersonal Year (pythagorean)ARead-onlyIdempotentInspect
Calculate the Personal Year number for a given calendar year: the 9-year cycle of personal evolution. Numerology: Pythagorean system.
[Group: Numerology: Pythagorean] [Endpoint: POST /v1/numerology/pythagorean/personal-year] [Required: name, date] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_numerology_pythagorean_personal_year.)
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| name | Yes | ||
| year | No | Calendar year to read. Defaults to the current year (UTC). | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| name | No | |
| system | No | |
| personalYear | No |
TDQS
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 operational context beyond that: a concrete cost of 10 credits (Tier 1), the HTTP endpoint, and the required-field set, which an agent needs for budgeting and validation before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and system are front-loaded in the first sentence, with structured metadata ([Group]/[Endpoint]/[Required]/[Cost]) following. The bracketed lines are somewhat boilerplate, but each carries usable information and the alias note is short and placed last.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. The definition supplies cost, endpoint, required fields, and system context adequate for a simple computation tool; the only minor gap is that `name`/`date` semantics rest entirely on the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60% (year, fields, precision are documented in-schema; name and date are not). The description only restates that name and date are required, which the schema's `required` array already declares, so it adds little meaning for the two undocumented parameters and nothing for the documented ones. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (Personal Year number) for a given calendar year, and locates it in the Pythagorean system. Against siblings sharing the same number type across Chaldean/Kabbalistic/Vedic systems, the 'Pythagorean' qualifier plus the explicit alias note cleanly disambiguates it from astroway_numerology_pythagorean_personal_year and the astroway_numk/numks variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (reading the 9-year personal cycle for a specific calendar year) but gives no explicit when-to-use vs alternatives, e.g. personal_year vs life_path, or Pythagorean vs other numerology systems. The alias note does helpfully signal equivalence with the canonical tool, so the routing hint is partial rather than absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_palmistry_fate_lineFate LineCRead-onlyIdempotentInspect
Career, life direction.
[Group: Palmistry (Cheiro)] [Endpoint: POST /v1/palmistry/fate-line] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| line | No | |
| source | No | |
| disclaimer | No |
TDQS
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's one genuine addition is the cost disclosure (10 credits, Tier 1), which is real operational context the annotations don't carry; it says nothing about what triggers a charge or what the reading contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely compact with no wasted words and the purpose fragment front-loaded ahead of the structured metadata lines. Its only flaw is that the single prose fragment is too fragmentary to anchor the tool, but that is a completeness issue rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and annotations cover safety, so return values and side effects need no explanation. The real remaining gap is input expectation: with zero required parameters, the description never tells the agent what it must supply (or that it supplies nothing) to get a fate-line reading, which is the one thing an agent must know to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 that, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Career, life direction." is a gloss on what the fate line signifies, not a statement of what the tool does — no verb, no resource-action pairing. An agent must infer from the name/title that this returns a palmistry fate-line reading, and nothing distinguishes it behaviorally from the five sibling palmistry line tools beyond the domain gloss.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-routing guidance anywhere in the text. The bracketed Group/Endpoint/Cost lines are metadata, not usage direction, so the agent gets no help choosing this over astroway_palmistry_head_line or life_line.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_palmistry_head_lineHead LineCRead-onlyIdempotentInspect
Intellect, mental approach.
[Group: Palmistry (Cheiro)] [Endpoint: POST /v1/palmistry/head-line] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| line | No | |
| source | No | |
| disclaimer | No |
TDQS
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, covering the safety profile. The description adds endpoint and cost (10 credits, Tier 1), which is useful operational context, but it does not disclose authentication needs or response behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short, front-loaded with the subject, and structured with clean metadata lines. It is efficient with no wasted words, though the opening phrase is too vague to fully earn its place as a functional description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema and annotations exist, the description still does not state what the tool actually computes or returns, nor when to use it over sibling palmistry lines. Endpoint and cost are helpful but insufficient for confident tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both optional parameters (fields and precision) are documented in the schema. The description adds no additional parameter meaning or syntax beyond what the schema already provides, so the baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a thematic phrase ('Intellect, mental approach') but no verb or explicit statement of what the tool returns or does. It does not differentiate from sibling palmistry line tools such as heart_line, life_line, fate_line, or marriage_line beyond the group label.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternatives. The group, endpoint, and cost metadata do not tell an agent when this tool is preferable to other palmistry tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_palmistry_heart_lineHeart LineCRead-onlyIdempotentInspect
Emotional life, romance.
[Group: Palmistry (Cheiro)] [Endpoint: POST /v1/palmistry/heart-line] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| line | No | |
| source | No | |
| disclaimer | No |
TDQS
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), so the description carries a lower burden. It usefully adds cost (10 credits, Tier 1), the endpoint, and the tradition (Cheiro), which are genuine facts not present in structured fields, but says nothing about response content or limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is very short and front-loads the topical anchor before the bracketed metadata lines. Nothing is padded, though the fragmentary first line is terse to the point of incompleteness rather than waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and zero required parameters, the description need not explain returns or inputs extensively. Still, it is thin for a topically distinct reading tool — an agent gets a domain label but no confirmation of what the reading produces or when it is the right line to request.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (fields, precision) are fully documented in the schema, including the compact-mode examples. The description adds no parameter meaning, so the baseline 3 applies with the schema doing all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Emotional life, romance' names the topical domain and does loosely differentiate the heart line from siblings like head_line (intellect) or fate_line (career). However, it never states the action — it doesn't say it generates or interprets a palmistry heart-line reading, leaving the verb implied by the name/endpoint. That makes the purpose understandable but under-specified.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing to alternatives — it doesn't tell the agent to pick this over head_line, life_line, or marriage_line. The group and endpoint metadata hint at context but supply no selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_palmistry_life_lineLife LineCRead-onlyIdempotentInspect
Vitality, health, life force.
[Group: Palmistry (Cheiro)] [Endpoint: POST /v1/palmistry/life-line] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| line | No | |
| source | No | |
| disclaimer | No |
TDQS
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 adds genuinely useful non-schema context: the endpoint and a 10-credit Tier 1 cost, which matters for an agent budgeting calls. It does not describe what the reading contains, but the output schema exists to cover returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short and the metadata block is cleanly structured and front-loadable, but the single prose fragment is cryptic rather than efficient — it saves words by omitting the actual function, which is not conciseness but under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter tool with an output schema the description could be minimal, but it omits the one thing an agent needs: what this tool returns and how it relates to the other palmistry line tools. Cost and endpoint are present; meaning is not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (fields, precision) are fully documented in the schema, including an example dotted path and decimal guidance. The description adds nothing about parameters, so the baseline 3 for high-coverage schemas applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Vitality, health, life force." is a fragment describing what the life line symbolizes, not what the tool does. There is no verb or statement of the operation, so an agent cannot tell from the text that this returns a palmistry reading rather than incidental metadata. The name and title carry essentially all the purpose signal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance whatsoever on when to use this tool, what input it expects, or how it differs from the five sibling palmistry tools (fate_line, head_line, heart_line, marriage_line). The agent is left to guess from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_palmistry_marriage_lineMarriage LineCRead-onlyIdempotentInspect
Significant partnerships.
[Group: Palmistry (Cheiro)] [Endpoint: POST /v1/palmistry/marriage-line] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| line | No | |
| source | No | |
| disclaimer | No |
TDQS
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 does add useful operational context beyond the annotations: the concrete endpoint (POST /v1/palmistry/marriage-line) and the billing cost of 10 credits (Tier 1), which matters for an agent deciding whether to call it. It still says nothing about what the tool actually computes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and the metadata lines are orderly, but the actual purpose sentence is a two-word fragment that carries almost no information, while half the description is spent on bracketed admin metadata. Nothing is bloated, but the single content sentence does not earn its place as a purpose statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero required parameters and an output schema present, return format is rightly omitted, but the description never explains what the tool consumes (palm image? line data? nothing?) or what interpretation it produces beyond 'significant partnerships.' For a tool with no required inputs, failing to say what the call actually does leaves a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (fields, precision) are output-shaping/compact-mode options that the schema documents thoroughly. The description adds nothing about them, which is acceptable here, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a bare noun phrase, 'Significant partnerships,' which restates the meaning of the title 'Marriage Line' rather than stating a verb and resource (e.g. 'interpret the marriage line in a palm reading'). It gives no sense of what the tool operates on and does not distinguish it from the sibling palmistry lines (heart_line, fate_line, life_line).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative routing guidance of any kind; the agent is left to infer from the name alone that this is the marriage-line counterpart to the other palmistry line tools. The only extra information is administrative (group, endpoint, cost).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_pet_best_namesBest Names by SignBRead-onlyIdempotentInspect
Sign-aligned name suggestions; optional gender filter.
[Group: Pet Astrology] [Endpoint: POST /v1/pet/best-names] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| names | No | |
| element | No | |
| sunSign | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is covered. The description adds the cost (10 credits, Tier 1), which is useful, but says nothing about what the result contains or that a full natal chart (date/time/lat/lon) is required to derive the sign. Against existing annotations this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The functional sentence is front-loaded and tight; the group/endpoint/cost metadata lines are boilerplate but compact. No wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, the description leaves a real gap: it implies the tool is driven by a zodiac sign, while the required parameter set is a full natal birth chart with no sign field, which could mislead an agent about the minimum input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description confirms the gender filter is optional, which maps to the nested gender enum in the schema, but adds no explanation of why full birth data is required for a 'sign-aligned' naming tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete output (name suggestions) and the basis for them (sign alignment), plus an optional gender filter. It is distinguishable from most siblings, though it doesn't explicitly separate itself from astroway_business_name_suggestions or explain that the 'sign' comes from natal birth data rather than a direct sign input.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing is given. The agent must infer that this is the pet-naming tool and that other pet_* siblings cover temperament, diet, etc., with no help from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_pet_birth_chartPet Birth ChartBRead-onlyIdempotentInspect
Full natal chart for the pet (sun, moon, ASC + planets) plus disclaimer.
[Group: Pet Astrology] [Endpoint: POST /v1/pet/birth-chart] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| planets | No | |
| sunSign | No | |
| moonSign | No | |
| ascendant | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds genuinely new non-schema context: the 10-credit Tier 1 cost and the presence of a disclaimer in the response. It does not cover rate limits, output size/truncation, or any failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core statement, then bracketed metadata lines that are each short and information-dense (group, endpoint, requirements, cost). No filler prose, though the required-params line partly duplicates the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. The description covers the essentials (what it computes, required inputs, cost) but omits anything about the crucial timezone/zodiac-system choices that materially change the chart, leaving the agent to discover them in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters. The description merely restates the four required fields, which the schema already lists in its required array, and says nothing about the significant optional parameters (timezone, timezoneOffset, zodiacType, ayanamsa, houseSystem, fields, precision). It does not compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Full natal chart for the pet (sun, moon, ASC + planets)'. The 'for the pet' qualifier distinguishes it from the human chart tool astroway_western_chart and from the interpretive pet siblings (personality, temperament, etc.), though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives operational metadata (endpoint, required inputs, cost) but no when-to-use guidance, no exclusions, and no pointer to alternatives such as astroway_western_chart or the pet interpretation tools. An agent must infer that this is the raw-computation step versus the interpretation steps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_pet_communication_styleCommunication StyleCRead-onlyIdempotentInspect
How best to communicate with this pet.
[Group: Pet Astrology] [Endpoint: POST /v1/pet/communication-style] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| communication | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed world, so the safety profile is covered. The description adds genuinely useful non-annotation context: the cost (10 credits, Tier 1), the group, and the endpoint. It does not, however, explain what is computed or any constraints on interpretation, and the output schema carries the return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line purpose is front-loaded and the bracketed metadata block is compact and scannable. Nothing is padded, though the boilerplate tags are structural scaffolding rather than substantive description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter chart-derived tool, the description is thin: it never states that output is computed from a natal chart at the given date/time/location, nor hints at the sidereal/house-system choices that materially change the result. Cost is disclosed and an output schema exists, but the agent is left without enough to call this confidently over its pet_* siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 33% across 15 parameters, so the description must compensate — and it does not. It merely repeats the four required names (date, time, latitude, longitude), which the schema already enforces, while the eleven optional parameters (zodiacType, houseSystem, ayanamsa, precision, fields, etc.) go unexplained. Listing required fields is zero-value duplication rather than added semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"How best to communicate with this pet" gestures at the output but names no verb or method — it doesn't say the result is derived from birth data. It also fails to differentiate from close siblings like astroway_pet_temperament, astroway_pet_personality, or astroway_pet_training_style, which an agent could easily confuse with it. Vague but not tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no pointer to alternatives among the many pet_* siblings. The bracketed [Required] line lists inputs but says nothing about when this tool is the right choice versus temperament, personality, or play_style.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_pet_diet_by_signDiet by SignCRead-onlyIdempotentInspect
Element-based dietary focus.
[Group: Pet Astrology] [Endpoint: POST /v1/pet/diet-by-sign] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| diet | No | |
| element | No | |
| sunSign | No | |
| disclaimer | No |
TDQS
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 structurally. The description adds genuinely useful operational context the annotations do not carry: the endpoint, the four required inputs, and a cost of 10 credits (Tier 1). It still says nothing about what the response contains, though an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata block is compact and front-loads the endpoint, required inputs and cost, with no filler prose. It is efficient, though the leading sentence is too thin to anchor the entry.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter chart-derived tool with 33% schema coverage, the definition omits the input semantics the schema does not document and never explains how a pet's sign/element translates into a dietary result. The output schema excuses it from describing return values, but the input and usage gaps remain substantial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters at only 33% schema description coverage, the description is expected to compensate, but the only parameter content is the required list (date, time, latitude, longitude), which merely repeats the schema's required array. Nothing is said about ayanamsa, zodiacType, houseSystem, precision, fields, or timezone semantics that the schema leaves thin.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Element-based dietary focus" conveys a topic (pet diet guidance derived from an astrological element) but never states an action or what artefact it produces, and unlike siblings such as astroway_pet_health_tips or astroway_pet_exercise_needs it does nothing to distinguish itself. The name/title combination plus this phrase is close to a restatement rather than a distinct definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this over the neighbouring pet tools (astroway_pet_health_tips, astroway_wellness_diet) or over astroway_pet_grooming_by_element, which is the obvious near-duplicate in the family. Usage must be entirely inferred from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_pet_exercise_needsExercise NeedsBRead-onlyIdempotentInspect
Element-based daily exercise minutes + recommended activities.
[Group: Pet Astrology] [Endpoint: POST /v1/pet/exercise-needs] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| element | No | |
| sunSign | No | |
| exercise | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond annotations — the POST endpoint, the 10-credit Tier 1 cost, and the group — but says nothing about response shape, determinism, or rate behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single substantive sentence is front-loaded, and the bracketed tags (group, endpoint, required, cost) are compact and scannable. Nothing is padded, though the 'Required' tag is redundant with the schema and could be dropped.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a 15-parameter tool with three enums, the description leaves too much unspecified — notably what 'element-based' derivation implies and how the pet's chart inputs map to the output — making it merely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description carries a real burden, yet it only restates the four required parameters already declared in the schema's required array. Undocumented parameters (zodiacType, cosmogram, ayanamsaId, houseSystem, latitude/longitude semantics) get no clarification here, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource and output concretely: 'Element-based daily exercise minutes + recommended activities,' which tells an agent exactly what the call produces for a pet. It does not, however, differentiate itself from overlapping pet siblings like astroway_pet_play_style, astroway_pet_diet_by_sign, or the human-facing astroway_wellness_exercise, so an agent cannot tell which to pick from purpose alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when/when-not guidance and no alternatives named. The agent is never told under what circumstances exercise-minutes advice is appropriate versus the neighboring play-style, temperament, or wellness-exercise tools, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_pet_grooming_by_elementGrooming by ElementCRead-onlyIdempotentInspect
Grooming focus + frequency by element.
[Group: Pet Astrology] [Endpoint: POST /v1/pet/grooming-by-element] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| grooming | No |
TDQS
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-schema context: a 10-credit Tier 1 cost and the mandatory inputs, which matter for an agent budgeting calls. It still says nothing about what the response contains or how the element is derived.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very compact and front-loaded: the core purpose leads, with structured bracket metadata for group, endpoint, requirements, and cost. Nothing is padded, though the endpoint string is redundant with the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. But for a 15-parameter astrological computation, the description omits how the element is determined, what the grooming guidance is keyed to, and any hint about the optional chart-shaping parameters — leaving the agent under-informed relative to the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a compensation burden it does not meet. It merely restates the four required fields (date, time, latitude, longitude) that the schema already marks as required, and leaves city, name, cosmogram, zodiacType, houseSystem, and ayanamsaId completely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment 'Grooming focus + frequency by element' names the resource (grooming guidance) and the shaping dimension (astrological element), so an agent can broadly infer the output. But it is a terse noun phrase with no verb and never says what 'grooming focus' or 'frequency' actually mean in practice, and it does nothing to separate itself from the many sibling pet_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use guidance, no when-not-to-use conditions, and never names an alternative among the pet_* siblings. The bracketed metadata (required inputs, cost tier) is operational detail, 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_pet_health_tipsHealth Watch-OutsARead-onlyIdempotentInspect
Sign-specific health vulnerabilities. NOT veterinary advice.
[Group: Pet Astrology] [Endpoint: POST /v1/pet/health-tips] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| element | No | |
| sunSign | No | |
| disclaimer | No | |
| healthTips | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, non-destructive), so the description's strongest additions are the cost (10 credits, Tier 1), the endpoint, and the medical disclaimer — all behavioral context the annotations do not carry. It does not describe response shape, but an output schema exists to cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is one tight sentence and the bracketed metadata block is front-loaded and scannable. Nothing is wasted, though the single prose sentence carries little beyond the title/name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
It supplies the required inputs, cost, and endpoint for a 15-param tool, and an output schema handles return values. It leaves unaddressed how the sign is derived (the pet's chart from date/time/location) and how this tool relates to the many other pet-reading siblings, which is a notable gap given the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema description coverage across 15 params, the description compensates partially by enumerating the four required inputs (date, time, latitude, longitude). It says nothing about the optional but consequential parameters (timezone, ayanamsa, zodiacType, houseSystem, fields, precision), which significantly affect output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource ('sign-specific health vulnerabilities') for pet astrology, so the agent knows exactly what it returns. It does not differentiate itself from nearby pet siblings such as astroway_pet_diet_by_sign, astroway_pet_exercise_needs, or astroway_pet_temperament, so an agent must infer the boundary 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'NOT veterinary advice' caveat is a genuine usage constraint and steers the agent away from presenting output as medical guidance. However, there is no when-to-use guidance relative to the other pet tools and no statement of prerequisites beyond the required-params list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_pet_lucky_dayLucky DaysCRead-onlyIdempotentInspect
Days of week traditionally aligned with the sign.
[Group: Pet Astrology] [Endpoint: POST /v1/pet/lucky-day] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| luckyDays | No |
TDQS
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 by structured data. The description adds genuinely useful non-schema context — endpoint, required inputs, and a 10-credit Tier 1 cost — which helps an agent budget before calling. It says nothing about what the response contains, and nothing contradicts 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short, front-loaded with the functional sentence, and the bracketed metadata block is easy to scan. Nothing is padded. The only weakness is that its brevity comes at the cost of substance rather than from tight editing of rich content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter astronomical calculation with only 33% schema coverage, the description does not explain how the optional chart parameters interact (sidereal vs tropical, ayanamsa selection, timezone resolution rules) or what distinguishes the output. The presence of an output schema excuses it from describing return values, but the input complexity is left largely undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate, yet it merely repeats the four required names that the schema already declares as 'required', adding zero semantic meaning. The numerous chart-shaping options (ayanamsa vs ayanamsaId, zodiacType, houseSystem, precision/fields compact mode, timezone vs timezoneOffset) receive no explanation or interaction guidance in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the resource ('days of week traditionally aligned with the sign'), and the '[Group: Pet Astrology]' tag clarifies the domain, so an agent can tell it is about lucky weekday identification for a pet. However, it never states a verb, never explains whose 'sign' is meant (presumably the pet's Sun sign derived from the birth data), and is close to a restatement of the title 'Lucky Days'. It does not distinguish the tool from sibling lucky-day tools such as astroway_financial_lucky_day or astroway_chinese_feng_shui_lucky_directions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of the alternatives (astroway_pet_sun_sign_meaning, astroway_financial_lucky_day, the calendar/muhurat tools). The required-parameter and cost lines are operational facts, not usage guidance. An agent must infer the use case entirely from the tool name and group tag.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_pet_owner_pet_compatibilityOwner-Pet CompatibilityARead-onlyIdempotentInspect
Compatibility score (0-100) based on element + sign distance.
[Group: Pet Astrology] [Endpoint: POST /v1/pet/owner-pet-compatibility] [Required: owner, pet] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| pet | Yes | Birth 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. | |
| owner | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| compatibility | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so safety is covered. The description adds genuinely useful context beyond that: the scoring methodology (element + sign distance), the 0-100 output range, and the 10-credit Tier 1 cost, which matters for budget-aware tool selection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and every remaining line is structured metadata (group, endpoint, required, cost) with no filler. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 unnecessary, and required inputs plus scoring basis and cost are provided. For a read-only scoring endpoint this is nearly complete, with only usage routing left unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the nested owner/pet birth-data objects are richly documented in the schema itself. The description only restates the two required params (owner, pet) without adding format or semantics, so the baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-like outcome, a compatibility score from 0-100, and its basis (element + sign distance), so an agent knows exactly what this returns. It is clear but does not explicitly differentiate itself from other pet tools, relying on the name/title for that.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus alternatives such as astroway_pet_personality or astroway_horoscope_compatibility. The 'Required: owner, pet' line is prerequisite metadata, not usage context, and no exclusions or alternative-selection rules are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_pet_personalityPet Personality ProfileCRead-onlyIdempotentInspect
Full personality breakdown.
[Group: Pet Astrology] [Endpoint: POST /v1/pet/personality] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| quirks | No | |
| element | No | |
| sunSign | No | |
| bestSuited | No | |
| disclaimer | No | |
| temperament | No |
TDQS
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 context the annotations lack: the endpoint (POST /v1/pet/personality) and the credit cost/tier, which matters for an agent deciding whether to spend a call. It says nothing about what the breakdown contains or whether the call is expensive in latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loads the one-sentence purpose, then switches to bracketed metadata lines that are easy to scan. However, the leading sentence is so thin that the brevity reflects under-specification rather than efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter chart calculation with an output schema present, the return values need no explanation, but the description is still far too thin: it never says what the 'personality breakdown' comprises, how it differs from other pet tools, or how the many optional chart settings affect the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only ~33% schema description coverage, the description needs to compensate, but it only re-lists the four required fields (date, time, latitude, longitude) that the schema already enforces. It adds nothing about timezone vs timezoneOffset interaction, ayanamsa, house system, or the compact-mode fields parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Full personality breakdown' merely restates the title 'Pet Personality Profile' without naming a verb, a resource, or the pet subject. It does not distinguish this tool from close siblings like astroway_pet_temperament, astroway_pet_sun_sign_meaning, or astroway_pet_birth_chart, so an agent cannot tell which of them to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 its pet-domain siblings, and no prerequisites beyond the bare list of required inputs. The only usable routing signal is the cost line (10 credits, Tier 1), which is operational rather than guidance about selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_pet_play_stylePlay Style + ToysCRead-onlyIdempotentInspect
Preferred play and toy types.
[Group: Pet Astrology] [Endpoint: POST /v1/pet/play-style] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| play | No | |
| sunSign | No | |
| disclaimer | No |
TDQS
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 genuinely new operational facts the annotations lack: the endpoint, that four inputs are required, and a 10-credit Tier 1 cost. It does not disclose auth needs or rate limits, but with an output schema present that is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The metadata block is dense and front-loads the required inputs and cost efficiently. However, the actual purpose sentence is a four-word fragment that carries almost no information, so the structure is tidy but under-informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool at 33% schema description coverage, the description should compensate with parameter semantics or usage context and does not. It gives only cost and required inputs; the output schema covers returns, so the remaining gap is parameter meaning and purpose detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so several inputs (city, name, ayanamsaId, cosmogram, zodiacType, houseSystem) are undocumented anywhere. The description's '[Required: date, time, latitude, longitude]' merely repeats the schema's required array, adding no syntax or meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is the noun phrase 'Preferred play and toy types', which essentially restates the title 'Play Style + Toys' rather than stating a verb and outcome. The group/endpoint tags situate it within Pet Astrology, but no sibling (e.g. astroway_pet_personality, astroway_pet_exercise_needs) is distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this instead of the many adjacent pet tools such as pet_personality, pet_temperament, or pet_exercise_needs. The '[Group: Pet Astrology]' tag implies a domain but gives no selection guidance or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_pet_sun_sign_meaningPet Sun-Sign MeaningCRead-onlyIdempotentInspect
Personality + temperament + best-suited household.
[Group: Pet Astrology] [Endpoint: POST /v1/pet/sun-sign-meaning] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| element | No | |
| sunSign | No | |
| disclaimer | No | |
| personality | No |
TDQS
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 genuinely useful operational context the annotations do not: cost (10 credits, Tier 1), the endpoint, and the group. It stops short of describing anything about the computation or output beyond annotations, so it is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very compact and front-loaded: one content line followed by tagged metadata. The bracketed fields are scannable and every line carries information. Slightly hurt by being so terse it becomes fragmentary rather than explanatory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter astrological computation tool with low schema coverage, the description is thin: it never explains why a full birth date/time/location is needed for a 'sun sign' reading, nor scopes the output. The output schema relieves it of return-value documentation, and cost/endpoint are given, but the parameter and usage gaps leave it inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate for undocumented fields (city, name, date, time, latitude, longitude, cosmogram, zodiacType, houseSystem, ayanamsaId). Instead it merely restates the four required parameters already present in the schema and adds no format, unit, or coordination detail (e.g. how timezone interacts with timezoneOffset, or why lat/long are needed for a sun-sign reading).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is a fragment listing output content ('Personality + temperament + best-suited household') rather than a verb+resource statement. Combined with the name/title, an agent can infer it returns a sun-sign-based reading for a pet, but it never states what it computes or distinguishes the sun-sign variant from siblings like astroway_pet_personality, astroway_pet_temperament, or astroway_pet_birth_chart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing to alternatives, despite a dense sibling set of overlapping pet tools (pet_personality, pet_temperament, pet_communication_style, pet_birth_chart). An agent must guess whether this or pet_personality is the right call for a given request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_pet_temperamentPet TemperamentCRead-onlyIdempotentInspect
Short temperament-only summary.
[Group: Pet Astrology] [Endpoint: POST /v1/pet/temperament] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| quirks | No | |
| element | No | |
| sunSign | No | |
| disclaimer | No | |
| temperament | No |
TDQS
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 non-schema context: the credit cost (10, Tier 1) and the endpoint. It does not explain what 'short' means for depth or output size, nor whether the result is deterministic across calls, so it adds some but not rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main line is a single fragment with zero waste, and the bracketed tags are consistently structured and front-loaded. However, the brevity is closer to under-specification than disciplined concision, and the tag block carries more informational weight than the actual description sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 required-parameter set plus cost are stated. For a 15-parameter chart-derived tool, though, the description is thin: it never says what the temperament summary contains or why sidereal/house-system options matter here, leaving the agent to rely entirely on schema descriptions that cover only a third of the parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, and 3 of them are enums whose meanings rest entirely on bare enum lists (zodiacType, houseSystem codes). The description's '[Required: date, time, latitude, longitude]' merely restates the schema's required array and clarifies nothing about the 11 optional parameters, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear resource and scope ('Short temperament-only summary'), and the endpoint tag (POST /v1/pet/temperament) confirms what is produced. The word 'only' plus 'short' gives some purchase against the sibling astroway_pet_personality, but there is no verb and no explicit statement of how it differs from the other pet readings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Nothing tells the agent when to choose this over astroway_pet_personality, astroway_pet_sun_sign_meaning, or the other ~13 pet_* siblings. It also does not say when this narrow summary is preferable to a fuller reading. The only inferred usage comes from the title and the word 'only'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_pet_training_styleTraining StyleCRead-onlyIdempotentInspect
Preferred training style + 3 tips.
[Group: Pet Astrology] [Endpoint: POST /v1/pet/training-style] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| sunSign | No | |
| training | No | |
| disclaimer | No |
TDQS
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), so the description does not need to restate it. It usefully adds the billing behavior — 'Cost: 10 credits (Tier 1)' — which is genuine context absent from the annotations, but says nothing about latency, caching, or what the three tips are keyed to.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first line and the bracketed metadata lines are each compact and additive (group, endpoint, required set, cost). No filler sentences, though the metadata block is dense and slightly beyond what an agent needs inline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with a low description-coverage schema, the description leaves the bulk of the contract implicit — no mention of defaults, no guidance on whether only date/time/lat/long are usable alone, and no note on how the payload differs when sidereal options are supplied. The output schema covers return values, so that omission is excusable, but the input-side gaps are not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description is expected to compensate, yet it merely repeats the four required parameters already declared in the schema's required array. The eleven optional parameters (timezone, ayanamsa, houseSystem, precision, fields, etc.) receive no explanation or interaction guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line states a concrete resource and output shape: 'Preferred training style + 3 tips.' An agent knows this produces a training-style reading, not a generic chart. It does not differentiate itself from close pet siblings such as astroway_pet_play_style or astroway_pet_temperament, 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.
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 routing to alternatives — the only context is an endpoint, a required-parameter list, and a credit cost. The agent must infer from the name alone that this belongs to the pet reading family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_firdariaFirdariaBRead-onlyIdempotentInspect
Calculate Firdaria planetary periods: the traditional Persian time-lord system based on sect and planet order.
[Group: Prognostics] [Endpoint: POST /v1/firdaria] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus the number of years of firdaria periods to return. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| periods | No |
TDQS
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 without the description. The description does add non-annotation context — the endpoint and a concrete billing cost (20 credits, Tier 2) — which is genuinely useful for an agent weighing call cost, but says nothing about determinism, limits, or output shape 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence states the action and the technique, followed by a compact metadata block for group, endpoint, and cost. Nothing is padded, though the sentence is more definitional than operational.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema, 100% parameter description coverage, and complete annotations, the description only needs to frame the operation, which it does. The gaps are minor — no note on the default period span or how sect is derived — and largely inferable from the schema's maxYears field.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already carries the parameter semantics, including the nested birth-data requirements and the timezone/timezoneOffset interplay. The description adds nothing about maxYears, fields, or precision, so it sits at the baseline of 3 when structured data does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and a precise resource (Firdaria planetary periods), then adds the domain gloss 'traditional Persian time-lord system based on sect and planet order', which tells an agent what class of technique this is. It does not name or contrast any sibling prognostic tool, so an agent must rely on the technique name alone to distinguish it from profections, progressions, or returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 many sibling prognostic endpoints (profections, primary directions, solar return, etc.). The only implicit cue is the technique name itself, which leaves routing between prognostics tools 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_prognostics_forecast_calendarForecast CalendarBRead-onlyIdempotentInspect
Generate a combined forecast calendar including transits, lunar phases, ingresses, and retrograde stations for a given period.
[Group: Prognostics] [Endpoint: POST /v1/forecast-calendar] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Wrapper { natal: ChartInput } used by endpoints that take a base natal plus extra parameters in flat fields. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | No | |
| cells | No | |
| maxAbsTotal | No | |
| dailySummary | No |
TDQS
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's only extra behavioral fact is the cost line ('100 credits (Tier 4)'), which is genuinely useful for planning but is not expanded (no mention of what the cost scales with, e.g. period length).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence with the resource and its contents front-loaded, followed by three short bracketed metadata lines that carry real signal (group, endpoint, cost). No filler, though the endpoint/cost lines are boilerplate that could be trimmed or merged.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 input schema is fully described. Still missing: how the natal chart is used to produce the calendar (transits to natal vs general sky events?), what the temporal granularity of the output is, and the year-vs-period mismatch against the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the natal chart fields, timezone rules, compact-mode 'fields' and 'precision' are all already documented in the schema; baseline is 3. The description adds nothing parameter-specific and its phrase 'for a given period' is actually looser than the schema, which takes a single integer 'year'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Generate) and resource (forecast calendar) and enumerates the four contents (transits, lunar phases, ingresses, retrograde stations), which lets an agent infer this is a superset of a plain transit calendar. However, it never names the sibling astroway_prognostics_transit_calendar, so the agent must infer the distinction rather than being told it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use / when-not-to-use guidance and no alternative is named, despite astroway_prognostics_transit_calendar sitting right next to it in the sibling list with an obviously overlapping purpose. 'For a given period' is also unhelpfully vague and does not match the schema's single required 'year' field.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_lunar_returnLunar ReturnBRead-onlyIdempotentInspect
Find the next date when the Moon returns to its natal longitude. Returns full lunar return chart.
[Group: Prognostics] [Endpoint: POST /v1/lunar-return] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| antiscia | No | |
| julianDay | No | |
| returnMoment | No | |
| siderealTime | No | |
| antisciaAspects | No | |
| parallelAspects | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds genuinely useful non-schema context — the cost tier (50 credits, Tier 3) and the endpoint — but says nothing about auth requirements, rate limits, or how far ahead the 'next' return is searched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences plus tagged metadata lines; the core purpose is front-loaded and nothing is padded. The bracketed Group/Endpoint/Cost lines are terse and scannable rather than verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 input schema is thoroughly self-documenting. Purpose, cost, and endpoint are present; only sibling differentiation is missing, which is minor given this coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested body schema documents timezone, timezoneOffset, houseSystem, and coordinate conventions in depth. The description adds nothing about parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: finds the next date the Moon returns to its natal longitude and returns the full lunar return chart. This clearly distinguishes it from non-return tools, though it never names its closest siblings (solar_return, planetary_return) to make the boundary explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, prerequisites, or alternatives. In a prognostics family containing solar_return, planetary_return, transits, and progressions, an agent gets no signal about which return technique fits a given request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_minor_progressionsMinor ProgressionsBRead-onlyIdempotentInspect
Calculate minor progressions (lunar month-for-a-year) to a target date. Supports converse direction.
[Group: Prognostics] [Endpoint: POST /v1/minor-progressions] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus a target date for time-based calculations: progressions, directions, profections, returns. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| antiscia | No | |
| julianDay | No | |
| siderealTime | No | |
| antisciaAspects | No | |
| parallelAspects | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds two genuinely useful behavioral facts beyond that: a 50-credit Tier 3 cost, which lets an agent budget calls, and support for the converse direction, which changes how results are interpreted. It does not describe output shape, but an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the technique definition, followed by compact group/endpoint/cost metadata. Nothing is wasted, though the bracketed metadata lines are structural boilerplate rather than prose that helps selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Parameters are fully documented in the schema and an output schema exists, so return values need no explanation. The remaining gap is purely usage-level: nothing tells the agent how this differs operationally from the other progression-style tools in the same family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's 'to a target date' and 'converse direction' gesture at targetDate/targetTime/targetTzOffset and converse but add no syntax, format, or default information beyond what the schema already spells out in detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (minor progressions), and the parenthetical 'lunar month-for-a-year' defines the technique precisely enough to distinguish it conceptually. It never names the confusable siblings (progressions, tertiary_progressions), so an agent must infer which progression variant to pick 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Says 'to a target date', which implies a forecast-style use, but there is no when-to-use guidance, no prerequisites, and no routing against the several progression siblings (major progressions, tertiary progressions, symbolic directions). The agent gets the technique name and nothing about when this one 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_prognostics_planetary_returnPlanetary ReturnBRead-onlyIdempotentInspect
Find all returns of any planet to its natal longitude within a given year. Returns full charts for each return.
[Group: Prognostics] [Endpoint: POST /v1/planetary-return] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| returns | No |
TDQS
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 the useful detail that full charts come back per return and the cost tier (50 credits, Tier 3), but it does not say how many returns to expect or how they are ordered, which matters for fast-moving planets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose and scope, followed by compact metadata for endpoint and cost. Every element earns its place; only the bracketed tags make it slightly denser than a pure prose statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return-value explanation is unnecessary, and the description still notes that full charts are returned per event. With 100% schema coverage on a three-parameter tool, what remains missing is only usage routing, not invocation detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the body fields, fields and precision parameters are already documented in structured data. The description names a 'year' and implies a planet selector but adds no syntax or semantics beyond what the schema provides; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find all returns of any planet to its natal longitude within a given year') and pins the scope to a single year. 'Any planet' implicitly differentiates it from the solar_return and lunar_return siblings, but that differentiation is left for the agent to infer rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of the alternatives (solar_return, lunar_return, transits) that a user with a planetary-return question might also reach for. The agent gets a definition but no routing logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_primary_directionsPrimary DirectionsBRead-onlyIdempotentInspect
Calculate primary directions (Ptolemaic or Regiomontanus) up to a maximum age. Returns a timeline of directed aspect hits.
[Group: Prognostics] [Endpoint: POST /v1/primary-directions] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus the directional rate in degrees per year (Naibod 0.9856353 by default), the age to search to, and the aspect angles to test. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| directions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld=false, so the safety profile is covered. The description adds genuinely useful non-annotation context: the cost (50 credits, Tier 3), the endpoint, and the fact that output is 'a timeline of directed aspect hits'. It says nothing about rate limits, auth, or the effect of the key/rate choice on results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences plus bracketed metadata lines; the core purpose and the return shape are front-loaded with no filler. The group/endpoint/cost lines are functional rather than padding, though the endpoint adds little for an agent that already has the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 unnecessary, and the cost is disclosed. The main gap is disambiguation: in a Prognostics family with a dozen timing techniques, the description never tells an agent why primary directions rather than symbolic directions or progressions is the right call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested body schema fully documents date/time/latitude/longitude, timezone, houseSystem and the key/maxAge/aspectAngles group. The description only loosely maps to maxAge ('up to a maximum age'); it never explains the key parameter's degrees-per-year semantics. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Calculate primary directions') and scopes it with the method variants (Ptolemaic/Regiomontanus) and the 'up to a maximum age' bound, which matches the maxAge parameter. It does not explicitly distinguish itself from close siblings like symbolic_directions or progressions, so an agent must still infer which direction technique fits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use primary directions versus the many other prognostic siblings (firdaria, profections, symbolic_directions, transits). No prerequisites, no exclusions, no named alternative — the agent gets no routing help in a crowded Prognostics family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_profectionsProfectionsARead-onlyIdempotentInspect
Calculate annual profections: profected Ascendant, lord of the year, activated house, and monthly profection sub-rulers.
[Group: Prognostics] [Endpoint: POST /v1/profections] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus a target date for time-based calculations: progressions, directions, profections, returns. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mc | No | |
| age | No | |
| sun | No | |
| moon | No | |
| ascendant | No | |
| signIndex | No | |
| lordOfYear | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description's meaningful additions are the endpoint and the 20-credit Tier 2 cost, which is real behavioral context an agent should weigh before calling; however it says nothing about defaults, error conditions, or what the calculation assumes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence states purpose and return contents with no filler, followed by three compact metadata lines. Efficient, though the bracketed metadata block is formulaic rather than explanatory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not explain return values, and the input schema is exhaustively documented for the natal-plus-target-date body. The one gap is that it doesn't confirm the natal-plus-targetDate input shape or mention the credit cost in the prose, but overall an agent has what it needs to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the birth-data body, fields, and precision parameters are already thoroughly documented in the schema, including the timezone/ayanamsa/houseSystem subtleties. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific technique (annual profections) with a precise verb and enumerates the exact artifacts returned: profected Ascendant, lord of the year, activated house, monthly sub-rulers. That level of output specificity separates it cleanly from siblings such as firdaria, progressions, and primary directions without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: naming a distinct time-lord technique plus 'annual' signals this is the yearly profection tool, but the description never says when to choose it over astroway_prognostics_firdaria or the progression tools, nor does it state prerequisites such as needing natal birth data plus a target date. The Group/Endpoint/Cost metadata adds operational context but 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_prognostics_progressionsSecondary ProgressionsARead-onlyIdempotentInspect
Calculate secondary progressed chart (day-for-a-year) for a target date. Returns progressed planets, houses and angles, and the aspects between progressed planets.
[Group: Prognostics] [Endpoint: POST /v1/progressions] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus a target date for time-based calculations: progressions, directions, profections, returns. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| antiscia | No | |
| julianDay | No | |
| siderealTime | No | |
| antisciaAspects | No | |
| parallelAspects | No |
TDQS
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 genuine context beyond that: the day-for-a-year methodology, the response contents (planets, houses, angles, aspects), and the 50-credit Tier 3 cost, which is useful for budgeting calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences carry the core meaning, followed by short structured metadata lines (group, endpoint, cost). Nothing is padded, though the return-value sentence is partly redundant with the output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 schema coverage, the description need not document return shape or parameter syntax, and it doesn't. The one real gap is routing guidance versus sibling progression tools, which matters given a toolset full of them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the natal body, targetDate/targetTime/targetTzOffset, ayanamsa, houseSystem, and the compact fields/precision params in detail. The description adds nothing about parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (secondary progressed chart) with the day-for-a-year technique and target-date scope, so the agent knows exactly what comes back. It does not differentiate itself from the very similar siblings astroway_prognostics_minor_progressions and astroway_prognostics_tertiary_progressions, so an agent choosing among progression types gets no help distinguishing them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use secondary progressions versus the minor/tertiary progressions siblings, nor any alternative or exclusion guidance. The description simply says what the tool computes; the agent must infer selection from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_rectificationRectificationBRead-onlyIdempotentInspect
Rectify an approximate birth time using a list of life events and transit/direction hits to narrow the birth time window.
[Group: Prognostics] [Endpoint: POST /v1/rectification] [Required: baseInput, events] [Cost: 500 credits (Tier 6)] ⚠️ Heavy — confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| orb | No | ||
| events | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| methods | No | ||
| baseInput | Yes | Birth 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| stepMinutes | No | ||
| searchRangeMinutes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| candidates | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description goes beyond them with the credit cost (500 credits, Tier 6) and an explicit human-confirmation requirement, which is genuinely useful pre-invocation context not present in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is stated first in a single efficient sentence, with cost/required-parameter metadata bracketed below. The tag block is somewhat redundant scaffolding, but nothing is verbose or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter, nested, heavy-cost tool, the description omits how the search window is controlled and how this differs from the rectification_trutine sibling. An output schema exists so return values need no explanation, but the invocation-shaping gaps remain significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38% across 8 parameters, so the description carries a compensation burden it does not meet. It gestures at 'events' and 'transit/direction hits' but says nothing about the search-window controls (searchRangeMinutes, stepMinutes, orb, methods) that are central to narrowing a birth time.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Rectify') plus resource ('approximate birth time') and the mechanism ('life events and transit/direction hits') make the operation unambiguous. However, it does not distinguish itself from the near-identical sibling astroway_prognostics_rectification_trutine, which an agent would need to choose between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (you have an approximate birth time and known life events) and adds an explicit operational guard ('Heavy — confirm with user before invoking'). It never states when to prefer this over rectification_trutine or other prognostics tools, so routing 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_prognostics_rectification_trutineTrutine of HermesARead-onlyIdempotentInspect
Apply the Trutine of Hermes (Animodar) technique to derive the birth time from the Moon's prenatal syzygy position.
[Group: Prognostics] [Endpoint: POST /v1/rectification/trutine] [Required: date, time, latitude, longitude] [Cost: 250 credits (Tier 5)] ⚠️ Heavy — confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| syzygyDate | No | |
| syzygyType | No | |
| moonAtSyzygy | No | |
| correctedTime | No | |
| correctedAscendant | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint/idempotentHint/destructiveHint already declared, the description's additional disclosure of the 250-credit tier and the explicit confirm-with-user instruction is genuinely useful behavioral context that annotations cannot carry. It stops short of describing runtime characteristics such as latency or failure modes, and does not contradict any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence of real description followed by compact bracketed metadata; the technique and its mechanism are front-loaded. No filler sentences and every bracketed field (group, endpoint, required, cost) is actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover the safety profile, leaving the cost/confirmation note and required-param list to round things out. It still leaves a gap on how the result relates to the caller's inputs — e.g., whether settings like zodiacType or ayanamsa change the derived time — which matters for a 15-parameter endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% across 15 parameters, so the description must compensate; it does so partially by naming the four required inputs (date, time, latitude, longitude). It adds nothing about the many optional knobs (fields, precision, zodiacType, houseSystem, timezone/offset, ayanamsa) that a caller of a rectification technique may need to set deliberately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (derive) and a specific resource (birth time) via a named technique, the Trutine of Hermes (Animodar), and explains the underlying mechanism (Moon's prenatal syzygy). It does not explicitly contrast itself with the closest sibling, astroway_prognostics_rectification, so an agent must infer the relationship from the technique name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The '⚠️ Heavy — confirm with user before invoking' note plus the 250-credit cost gives real invocation guidance, and the required parameters are listed inline. However, there is no statement of when this technique is preferable to astroway_prognostics_rectification or the other prognostics tools, and no prerequisites (e.g., that a birth time is what is being solved for).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_solar_returnSolar ReturnBRead-onlyIdempotentInspect
Find the exact moment when the Sun returns to its natal longitude in a given year. Returns full solar return chart.
[Group: Prognostics] [Endpoint: POST /v1/solar-return] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| antiscia | No | |
| julianDay | No | |
| returnMoment | No | |
| siderealTime | No | |
| antisciaAspects | No | |
| parallelAspects | No |
TDQS
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 adds genuinely useful operational context beyond that: the endpoint (POST /v1/solar-return) and the cost (50 credits, Tier 3). It does not, however, describe return format or pagination, though an output schema exists to cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences state the operation and the output, followed by compact bracket metadata for group, endpoint, and cost. Nothing is padded; the only minor cost is that the bracketed tags are somewhat terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a 100%-covered schema and an output schema present, the description need not restate parameters or return values. It covers purpose, endpoint, and cost, leaving only sibling routing (solar vs lunar vs planetary return) unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself documents date, time, coordinates, timezone, ayanamsa, houseSystem, year, and the compact-mode fields/precision parameters in depth. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Find the exact moment when the Sun returns to its natal longitude in a given year,' plus the deliverable ('full solar return chart'). The word 'Sun' implicitly separates it from sibling lunar_return and planetary_return, though it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 how this differs from the closely-named siblings astroway_prognostics_lunar_return, astroway_prognostics_planetary_return, or astroway_prognostics_transits. The agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_symbolic_directionsSymbolic DirectionsBRead-onlyIdempotentInspect
Calculate symbolic arc directions to natal points for a target date. Key: "one_degree" (default), "naibod", or "solar_arc" (the arc of the progressed Sun).
[Group: Prognostics] [Endpoint: POST /v1/symbolic-directions] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus a target date and the directional key: one degree per year, the Naibod rate, or the arc of the progressed Sun. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| arc | No | |
| key | No | |
| houses | No | |
| planets | No |
TDQS
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 description is not required to restate that. It does add genuinely useful context the annotations cannot convey: the endpoint (POST /v1/symbolic-directions) and the cost (50 credits, Tier 3). It says nothing about input validation failures, precision behavior, or limits beyond cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior and the key options are front-loaded in two tight sentences, followed by a clean metadata block for group, endpoint and cost. Every sentence earns its place and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich nested input schema, an output schema, and full annotations, the description only needs to supply the domain semantics and cost, which it does. The one remaining gap is that it gives an agent no basis for choosing this tool over the neighbouring direction/progression tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema carries the parameter burden and the baseline is 3. The description names the three `key` options and marks 'one_degree' as the default, which the schema's enum does not state, but it otherwise repeats the schema's own body description of the directional keys. Net addition is modest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Calculate symbolic arc directions to natal points') plus the target scope, which is far more than the title alone. It does not, however, distinguish itself from the many proximate siblings (primary_directions, progressions, minor_progressions, tertiary_progressions), so an agent must infer the difference from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 reference to any alternative tool. The only routing signal is the phrase 'for a target date', which is a weak implication rather than an instruction. With this many prognostics siblings, explicit differentiation is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_tertiary_progressionsTertiary ProgressionsARead-onlyIdempotentInspect
Calculate tertiary progressions (day-for-a-lunar-month) to a target date. Supports converse direction.
[Group: Prognostics] [Endpoint: POST /v1/tertiary-progressions] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus a target date for time-based calculations: progressions, directions, profections, returns. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| antiscia | No | |
| julianDay | No | |
| siderealTime | No | |
| antisciaAspects | No | |
| parallelAspects | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a read-only, idempotent, non-destructive, closed-world call, so the safety profile is covered. The description adds genuinely non-redundant context: the converse-direction mode and, notably, the cost (50 credits, Tier 3) and endpoint, which matter for an agent budgeting calls. It stops short of describing output shape or pagination, but the output schema covers returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences state what it computes and the direction option, followed by compact bracketed metadata for group, endpoint and cost. No sentence is wasted, though the technique definition in parentheses could arguably be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and 100% parameter documentation, the description need not explain return values or input formats. It covers purpose, direction mode and cost, leaving only sibling differentiation and usage routing unaddressed for a tool family crowded with similar progression techniques.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters (including the richly documented body, fields and precision) are already fully specified structurally, and the baseline is 3. The description only incidentally touches the converse flag and adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (tertiary progressions) and even defines the technique's rate (day-for-a-lunar-month) and scope (to a target date). This distinguishes it from a generic 'progressions' tool, but it never names the closely related siblings (progressions, minor_progressions, symbolic_directions) that an agent must choose between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage-relevant detail is 'to a target date' and 'supports converse direction'; there is no statement of when to pick tertiary progressions over secondary/minor progressions, primary directions, or profections, and no prerequisites or exclusions. An agent must infer the selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_transit_calendarTransit CalendarARead-onlyIdempotentInspect
List the exact moments of transit-to-natal aspects in a date range, one event per exact pass, so a retrograde triple pass gives three events.
[Group: Prognostics] [Endpoint: POST /v1/transit-calendar] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Wrapper { natal: ChartInput } used by endpoints that take a base natal plus extra parameters in flat fields. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| events | No | |
| maxOrb | No | |
| endDate | No | |
| startDate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, non-destructive and closed-world, so the safety profile is settled. The description adds two pieces of context beyond that - the 100-credit Tier 4 cost and the event-per-pass counting behavior - which is useful for planning a paid call, but it says nothing about auth, rate limits, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence front-loads the purpose and the event-count semantics, followed by three compact metadata lines (group, endpoint, cost) that each carry distinct, useful information. Nothing is padded or repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema documents the natal chart requirements, aspect defaults, transit body defaults and the inert maxOrb in unusual depth, and an output schema exists so return values need no explanation here. For a tool whose per-parameter contracts are this thoroughly specified in structured fields, the description covers what it must.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is effectively 100%, and the nested natal/chart fields, aspectAngles, transitPlanetIds and maxOrb all carry their own detailed prose in the schema. The description only implies 'date range' filtering; it adds no syntax, defaults, or constraints beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource - listing exact transit-to-natal aspect moments within a date range - and the clause about 'one event per exact pass, so a retrograde triple pass gives three events' pins down the granularity of the output. This clearly separates it from a continuous transit-position tool in spirit, but it never names the close sibling astroway_prognostics_transits, leaving that disambiguation to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no named alternative. It never says to prefer this over astroway_prognostics_transits or astroway_prognostics_forecast_calendar, nor when a calendar of exact hits rather than a positions listing 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_prognostics_transitsTransitsBRead-onlyIdempotentInspect
Calculate transit planet aspects to natal planets for a given date. Returns applying and separating aspects.
[Group: Prognostics] [Endpoint: POST /v1/transits] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| antiscia | No | |
| julianDay | No | |
| siderealTime | No | |
| antisciaAspects | No | |
| parallelAspects | No |
TDQS
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 that it returns both applying and separating aspects and that a call costs 50 credits (Tier 3), which is genuine extra context. It does not disclose anything about precision of aspect orbs, output size, or what inputs are mandatory beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core action front-loaded, followed by the return content, then bracketed group/endpoint/cost metadata. Zero filler, though the bracket lines are metadata rather than description and could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the body schema is richly documented, so much of the burden is carried elsewhere. What remains missing is the routing information an agent needs among a dozen prognostics siblings and any note that full natal birth data plus a transit date are required. Adequate but with a clear gap at the decision level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested body schema is extensively documented, so the baseline is 3. The description adds nothing about the body, fields, or precision parameters; 'for a given date' gestures at transitDate but no syntax or constraint is added beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Calculate transit planet aspects to natal planets for a given date.' That is far more precise than a tautology. It stops short of differentiating from the sibling astroway_prognostics_transit_calendar, which an agent could easily confuse with this tool, so it is not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, despite astroway_prognostics_transit_calendar and astroway_mcp_ai_explain_transit sitting in the same family. The only operational note is the cost line, which tells the agent the price but not when to choose this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psya_cycle_of_becomingArroyo: Cycle of BecomingCRead-onlyIdempotentInspect
Arroyo's evolutionary cycle.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/arroyo/cycle-of-becoming] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_psychological_modern_arroyo_cycle_of_becoming.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| fullCycle | No | |
| currentAge | No | |
| disclaimer | No | |
| currentPhase | No |
TDQS
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 behavior facts — cost of 10 credits (Tier 1), the POST endpoint, and the required input set — which is real value, though it says nothing about what the computation yields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded, with the purpose line first and bracketed metadata after. Nothing is padded, though the content is thin rather than tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema and annotations exist, so return values and safety need not be restated, but for a 15-parameter psychological astrology computation the description gives no domain explanation, no usage context, and no differentiation from its near-identical sibling and the longer canonical name.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, but the description only re-lists the four required ones (date, time, latitude, longitude) that the schema already marks required. It adds nothing about ayanamsa, zodiacType, houseSystem, timezone, fields, precision, or cosmogram, leaving the coverage gap unfilled.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Arroyo's evolutionary cycle" restates the title and name rather than stating what the tool computes or returns. The operative content is metadata scaffolding (group, endpoint, required params, cost), not a description of the operation, so an agent cannot tell what output this produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 conditions for choosing this over the many sibling psychological/evolutionary tools (e.g. astroway_psyr_cycles_of_becoming, rudhyar_cycles_of_becoming). The only routing hint is that it is a "cursor-friendly alias" for the long-named form.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psya_element_balanceArroyo: Element BalanceCRead-onlyIdempotentInspect
Element distribution and integration.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/arroyo/element-balance] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_psychological_modern_arroyo_element_balance.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| counts | No | |
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| dominantElement | No | |
| deficientElement | No |
TDQS
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 genuinely useful context beyond that: the endpoint, the 10-credit cost tier, and the required inputs. It stops short of describing the return content or any constraints on interpretation, and the alias note is a packaging detail rather than behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The block is short, bracketed, and front-loaded with the one-line purpose before logistics. Each line carries information, though the alias parenthetical is marginally useful metadata.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a 15-parameter tool with 33% schema coverage, the description leaves the purpose ambiguous relative to its near-identical sibling and provides no differentiation, which is the main gap an agent needs filled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. It merely restates the four required fields already marked in the schema and adds no meaning for undocumented params such as `cosmogram`, `zodiacType`, `houseSystem`, or `ayanamsaId`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Element distribution and integration' names the resource loosely but blurs it with the sibling `astroway_psya_element_integration`, which the description does not distinguish itself from. It never says whether this returns a weighted tally, a narrative, or a chart, so an agent cannot confidently pick it over the very similarly named neighbors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of any alternative, despite the presence of close siblings like `astroway_psya_element_integration` and `astroway_psychological_modern_arroyo_element_integration`. The block only supplies endpoint, required inputs, and cost, which are logistics rather than usage selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psya_element_integrationArroyo: Element IntegrationCRead-onlyIdempotentInspect
Strategies for integrating weak elements.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/arroyo/element-integration] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_psychological_modern_arroyo_element_integration.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| counts | No | |
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| recommendations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely useful non-annotation facts: the endpoint path and the 10-credit (Tier 1) cost, which the agent cannot learn elsewhere. It does not explain what a 'weak element' calculation depends on or what the response contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line purpose leads, followed by a compact bracketed metadata block. Nothing is padded, though the alias parenthetical and group/endpoint lines are administrative rather than interpretive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter astrological tool with low schema coverage, the description leaves the agent guessing about most optional inputs and how this differs from element_balance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters. The description merely repeats the four required fields (date, time, latitude, longitude), which the schema already marks required, and says nothing about city, name, cosmogram, zodiacType, houseSystem, or ayanamsaId. It does not compensate for the undocumented portion of the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Strategies for integrating weak elements' gestures at the output (interpretive strategies for weak astrological elements) but never states a clear verb+resource. It gives no differentiation from the very close sibling astroway_psya_element_balance, relying instead on the alias note to distinguish itself from its long-form twin.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this versus astroway_psya_element_balance or the related Arroyo siblings. The only routing information is that it is an alias for astroway_psychological_modern_arroyo_element_integration, which addresses duplicate naming rather than use-case selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psya_relational_element_mapArroyo: Relational MapCRead-onlyIdempotentInspect
Relational element compatibility map.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/arroyo/relational-element-map] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_psychological_modern_arroyo_relational_element_map.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| synergyWith | No | |
| tensionWith | No | |
| yourDominant | No | |
| partnerSeeking | No |
TDQS
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 covered. The description adds genuinely useful operational context — the cost (10 credits, Tier 1) and the POST endpoint — but says nothing about the nature of the computation, precision of results, or how ayanamsa/zodiac choices affect output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata block is compact, front-loaded and free of filler; every line (group, endpoint, required, cost, alias) is a discrete fact. It is appropriately sized, though the space is spent on metadata rather than the substantive description that is actually missing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a 15-parameter computational endpoint with an output schema (so return values need not be explained), but the definition never states what the relational element map computes or how it differs from its many psychological/relational siblings. For this level of complexity the description is inadequate, despite correctly surfacing the required-parameter set and cost.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a heavy compensation burden, yet it only re-lists the four required params (date, time, latitude, longitude) that the schema already marks as required. It adds no meaning to the undocumented params (name, city, fields, cosmogram, ayanamsaId, zodiacType, houseSystem) and does not explain the interaction between the two ayanamsa fields or timezone vs timezoneOffset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Relational element compatibility map' essentially restates the title 'Arroyo: Relational Map' and the tool name without supplying a verb or explaining what is actually computed (a chart? a score? an aspect map?). No sibling is distinguished; the only differentiator is the '[Group: Modern Psychological]' tag, which the sibling naming already conveys.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains no when-to-use guidance and names no alternative among the many overlapping psychological/relational siblings (e.g. astroway_psya_element_balance, astroway_relational_element_* tools). It lists structural facts (endpoint, cost, required params) but never says 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_psya_water_houses_traumaArroyo: Water Houses TraumaCRead-onlyIdempotentInspect
Water-house trauma patterns.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/arroyo/water-houses-trauma] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_psychological_modern_arroyo_water_houses_trauma.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| h4_roots | No | |
| h8_shared | No | |
| disclaimer | No | |
| h12_unconscious | No | |
| totalPlanetsInWater | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint true, openWorldHint false, destructiveHint false, so the safety profile is covered. The description adds genuinely useful behavioral context the annotations lack: cost (10 credits, Tier 1), the HTTP endpoint, and the required-parameter set. It says nothing about output shape or interpretation content, so it stays at baseline-plus.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata block is compact and front-loaded, and the alias note is short. However, nearly all of the content is structured metadata rather than a description, so the single-line purpose carries too little for its prominence. No wasted sentences, but low information density on the actual tool behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter psychological calculation with an output schema, the definition omits what the tool computes, how it differs from the four sibling psya_* psychological tools, and how the eleven undocumented parameters shape the result. The output schema removes the need to describe return values, but the purpose and parameter gaps leave the definition materially incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the description needs to compensate and does not. It merely repeats the four required parameters (date, time, latitude, longitude) already stated as required in the schema, adding no format, semantics, or meaning for the other eleven parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is essentially a restatement of the tool name/title: 'Water-house trauma patterns' with no verb saying what it computes or returns from the birth data. The bracket metadata (group, endpoint, required fields, cost) adds operational facts but no real statement of purpose. An agent cannot tell from this what the tool actually produces beyond the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative guidance. The sibling psya_* tools (cycle_of_becoming, element_balance, element_integration, relational_element_map) are not mentioned, and no condition selects this tool over them. Only the '[Required: date, time, latitude, longitude]' line hints that it consumes birth data, which is weak implicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psychological_modern_arroyo_cycle_of_becomingArroyo: Cycle of BecomingCRead-onlyIdempotentInspect
Arroyo's evolutionary cycle.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/arroyo/cycle-of-becoming] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| fullCycle | No | |
| currentAge | No | |
| disclaimer | No | |
| currentPhase | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds useful operational context — the endpoint, the required inputs, and the 10-credit cost — which is exactly the kind of extra context that earns credit with annotations present, but nothing about output shape or limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loaded, but the opening sentence is vague while the bracket block is mostly boilerplate metadata. It is concise without being informative — brevity at the cost of substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, but for a 15-parameter computation tool with 33% schema coverage and no usage guidance, key things remain unexplained: what the cycle actually yields, how it differs from the Rudhyar variant, and the meaning of most parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate for the many undocumented fields. Instead it merely repeats the four required parameters that the schema's 'required' array already lists, adding no meaning for ayanamsa, houseSystem, zodiacType, or the compact-mode fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description amounts to "Arroyo's evolutionary cycle," which essentially restates the title and name rather than stating a concrete verb+resource. It does not explain what the tool actually computes or returns, and it fails to differentiate itself from near-identical siblings like astroway_psychological_modern_rudhyar_cycles_of_becoming or astroway_psyr_cycles_of_becoming.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, no prerequisites, and no routing to alternatives despite several overlapping 'cycle of becoming' / psychological-modern siblings. The bracketed metadata (group, endpoint, required params, cost) is logistical, 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_psychological_modern_arroyo_element_balanceArroyo: Element BalanceCRead-onlyIdempotentInspect
Element distribution and integration.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/arroyo/element-balance] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| counts | No | |
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| dominantElement | No | |
| deficientElement | No |
TDQS
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 genuinely new behavioral facts — the POST endpoint and the 10-credit Tier 1 cost — but says nothing about auth needs, rate limits, or what the computation returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, front-loaded, and free of filler, which is good. But for a 15-parameter computation tool the extreme brevity reads as under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, with 15 params at 33% coverage and an equally named sibling, the description leaves too much unresolved: no chart-interpretation context, no guidance on the enum parameters, and no sibling differentiation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate, and it does not: it merely repeats the four required fields already marked required in the schema. Nothing is said about the astrologically consequential choices (ayanamsa, zodiacType, houseSystem) that the agent must select.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Element distribution and integration" is a noun fragment that restates the title (Arroyo: Element Balance) rather than stating what the tool does with the supplied birth data. It offers no verb and, worse, blurs into the sibling astroway_psychological_modern_arroyo_element_integration, so an agent cannot tell the two apart 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives only the required inputs and cost, never when to use this tool versus element_integration or the bazi/relational element-balance siblings. The bracketed tags supply prerequisites (date, time, lat/long) but no selection 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_psychological_modern_arroyo_element_integrationArroyo: Element IntegrationCRead-onlyIdempotentInspect
Strategies for integrating weak elements.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/arroyo/element-integration] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| counts | No | |
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| recommendations | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description adds genuinely new behavioral context in the cost (10 credits, Tier 1) and endpoint, but says nothing about what is computed, prerequisites, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line purpose is front-loaded and the bracketed metadata (group, endpoint, required, cost) is compact and scannable with no filler prose. It is efficiently sized, even if thin on substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter astrological computation with rich configurable inputs, the description leaves the agent guessing what 'weak elements' means, how the result should be interpreted, and how it differs from the sibling element_balance tool. The existing output schema covers return values, but the conceptual gap remains large.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate, and it does not — it merely repeats the four required fields already listed in the schema's required array. Meaningful inputs like ayanamsa, houseSystem, zodiacType, precision, fields, and timezone get no clarification from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
'Strategies for integrating weak elements' names a domain concept but no verb/resource that says what the endpoint computes or returns. It is nearly a restatement of the title 'Arroyo: Element Integration' and gives no signal distinguishing it from the near-identical sibling astroway_psychological_modern_arroyo_element_balance or the alias astroway_psya_element_integration.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance. The only operative line is the required-parameter list, which is invocation mechanics rather than usage guidance, so an agent cannot tell when this tool beats its many element-related siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psychological_modern_arroyo_relational_element_mapArroyo: Relational MapCRead-onlyIdempotentInspect
Relational element compatibility map.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/arroyo/relational-element-map] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| synergyWith | No | |
| tensionWith | No | |
| yourDominant | No | |
| partnerSeeking | No |
TDQS
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 adds genuinely useful operational facts: the POST endpoint, the four required inputs, and a 10-credit Tier 1 cost, which helps an agent budget calls. It stops short of saying what the map contains or how results are shaped, but the output schema covers returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a tight, front-loaded label followed by a compact metadata block with zero filler. Every line is short and scannable, though the extreme brevity is what creates gaps elsewhere rather than crowding anything out.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter astrological computation with several enums and a rich output schema, the description supplies no information about what the map contains or how the many sidereal/house-system options change the result. Annotations and the output schema carry safety and returns, but the agent is left to infer the tool's domain from the name alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate, and it does not. It merely restates the four required params (date, time, latitude, longitude) that the schema already marks required, and says nothing about ayanamsa, zodiacType, houseSystem, fields, precision, or timezone semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Relational element compatibility map' names the resource but uses no verb and gives no scope beyond the tool name itself. It does not distinguish this tool from near-identical siblings such as astroway_psya_relational_element_map or astroway_relational_synastry_element_balance. An agent can guess it produces some compatibility/element output, but the purpose stays at the level of a label.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing to alternatives among the many relational and psychological siblings. The bracketed metadata states required inputs and cost, which is operational rather than usage guidance. Nothing tells the agent which scenario selects this tool over its aliases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psychological_modern_arroyo_water_houses_traumaArroyo: Water Houses TraumaCRead-onlyIdempotentInspect
Water-house trauma patterns.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/arroyo/water-houses-trauma] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| h4_roots | No | |
| h8_shared | No | |
| disclaimer | No | |
| h12_unconscious | No | |
| totalPlanetsInWater | No |
TDQS
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 adds the genuinely useful billing fact "Cost: 10 credits (Tier 1)" plus the HTTP endpoint. It does not disclose computational method, assumptions, or what the report contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and front-loaded with no padding, but the bracketed metadata lines fire in place of substance: the single content sentence is too thin to orient the agent. Structure is fine; information density is low.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with a third of parameters undescribed and no explanation of what the output report is, the definition is materially incomplete. The output schema removes the need to document return values, but the method (Arroyo psychological reading of the 4th/8th/12th) and sidereal/tropical selection context are absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate — instead it only repeats the four required fields already declared in the schema's `required` array. High-impact knobs (ayanamsa vs ayanamsaId, zodiacType, houseSystem, fields, precision) get no explanation from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Water-house trauma patterns." is a bare noun phrase that essentially restates the title "Arroyo: Water Houses Trauma" — no verb describing what the tool computes or returns. The endpoint, group, and cost tags are operational metadata, not purpose. An agent cannot tell from this what distinguishes it from the many other psychological/Arroyo siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, and no pointer to alternatives, despite close siblings like astroway_psya_water_houses_trauma and the other astroway_psychological_modern_arroyo_* tools. The required-parameter list is input spec, 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_psychological_modern_greene_archetypal_figuresGreene: Archetypal FiguresCRead-onlyIdempotentInspect
Archetypal patterns in the chart per Liz Greene.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/greene/archetypal-figures] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| figures | No | |
| doctrine | No | |
| disclaimer | No |
TDQS
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 non-annotation context: the credit cost (10 credits, Tier 1) and the endpoint. It still says nothing about the shape or volume of the archetypal output beyond what the output schema presumably carries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The block is short and front-loads the purpose before the bracket metadata. Each line carries some value (group, endpoint, required, cost), though the required-parameter line is redundant with the schema and could be dropped.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with 33% schema coverage, no usage guidance, and several near-duplicate siblings (including the verbatim twin astroway_psyg_archetypal_figures), the description leaves the agent under-equipped. The presence of an output schema excuses it from explaining return values, but it does not excuse the missing disambiguation and parameter context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (15 parameters, most undocumented), so the description must compensate and does not. Its only parameter content is 'Required: date, time, latitude, longitude', which merely restates the schema's required array; none of the optional parameters (fields, precision, timezone, ayanamsa, zodiacType, houseSystem) receive any clarification in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific subject matter ('Archetypal patterns in the chart per Liz Greene'), which separates it from the other Greene-family tools (lunar_myth, parental_imagos, saturn_shadow). However, it is a noun phrase with no verb describing what is produced or returned, and it does not acknowledge the near-identical companion tool astroway_psyg_archetypal_figures, so an agent cannot confidently choose between them 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.
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, no mention of alternatives, and no prerequisites beyond a bare required-parameter list. The bracket metadata tells the agent how to call it, not why or when.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psychological_modern_greene_individuation_pathGreene: Individuation PathCRead-onlyIdempotentInspect
Individuation arc per natal chart.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/greene/individuation-path] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| keyAges | No | |
| doctrine | No | |
| disclaimer | No | |
| individuationMarkers | No |
TDQS
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 covered. The description adds genuinely useful non-schema behavior (10 credits, Tier 1 cost) but says nothing about compute latency, quotas, or how the arc is derived.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content is front-loaded (purpose first, then bracketed metadata) and wastes no words, but it is under-specified rather than concisely informative — the brevity leaves the definition thin for a 15-parameter endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter chart tool with 33% schema coverage the description supplies none of the missing parameter semantics, no indication of what the individuation output contains, and no guidance on supplying birth data. It is well short of complete for this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% and the description merely relists the four required parameters, which the schema already marks required. It adds no meaning for the eleven optional parameters (ayanamsa, zodiacType, houseSystem, fields, timezone, precision, etc.) that the schema leaves undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Individuation arc per natal chart' names a recognizable resource tied to a natal chart, so the agent knows roughly what is computed. However there is no distinguishing detail against the many sibling psychological tools (greene_archetypal_figures, greene_saturn_shadow, psyg_individuation_path, etc.), so the purpose is stated but not differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no conditions that select this tool over its near-identical siblings, and no prerequisites beyond the required-field list. Group, endpoint and cost tags are metadata, 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_psychological_modern_greene_lunar_mythGreene: Lunar MythCRead-onlyIdempotentInspect
Lunar archetypes by sign and house.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/greene/lunar-myth] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| moon | No | |
| theme | No | |
| shadow | No | |
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| mythicFigure | No |
TDQS
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 genuinely useful operational context the annotations lack: the POST endpoint, the mandatory date/time/latitude/longitude inputs, and the 10-credit Tier 1 cost. It does not describe response shape, but an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: the subject line comes first, followed by compact bracketed metadata. Each metadata line carries operational value (endpoint, required inputs, cost), though the required-parameter line is redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a 15-parameter astrology request with 33% schema coverage, the description gives no guidance on zodiacType/ayanamsa selection or timezone-vs-offset choice, and nothing to distinguish this tool from its psyg duplicate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, and the description compensates for none of it. It merely restates the four required parameters that the schema already marks as required, adding no meaning about ayanamsa, zodiacType, houseSystem, fields, precision, or timezone handling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Lunar archetypes by sign and house' identifies the subject matter (Greene-style psychological interpretation of the Moon) but uses no verb and does not say what is actually returned or computed. It also fails to differentiate from the near-identical sibling astroway_psyg_lunar_myth, leaving the agent to guess which of the two to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides only boilerplate metadata: group, endpoint, required inputs, and cost. There is no statement of when to use this tool versus Greene siblings (archetypal_figures, individuation_path, saturn_shadow) or the psyg/psya/psyr lunar-myth variants, 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_psychological_modern_greene_parental_imagosGreene: Parental ImagosCRead-onlyIdempotentInspect
Parental imagos analysis.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/greene/parental-imagos] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| shadowMarkers | No | |
| exteriorParent | No | |
| interiorParent | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description usefully adds behavioral facts the annotations lack: the POST endpoint and the 10-credit (Tier 1) cost. It stops short of describing output shape or interpretation depth, but given the annotation coverage this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is terse and front-loads the purpose token before bracketed metadata, with zero filler sentences. Structure is clean and scannable, though the bracketed blocks function more as header data than explanatory prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, domain-specific chart tool, the description is thin. An output schema exists and the annotations carry the safety profile, so those needs are met, but the description never explains what 'parental imagos' yields, how it differs from the psyg variant, or how the many optional parameters affect results. Too little for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% across 15 parameters, so the description must compensate for the many undocumented options (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId). Instead it merely lists the four required fields already marked required in the schema, adding no format, meaning, or interaction detail beyond what the schema shows. It fails to close the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Parental imagos analysis" essentially restates the tool name and title (Greene: Parental Imagos) without explaining what the analysis produces or the domain concept it computes. It names no verb beyond a generic 'analysis' and does nothing to distinguish itself from the near-identical sibling astroway_psyg_parental_imagos. This lands at tautology level rather than a clear purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use guidance, no prerequisites, and never points to or away from alternatives such as astroway_psyg_parental_imagos or the other Greene methods (archetypal_figures, saturn_shadow). The required-parameter block is a structural fact, not usage guidance. An agent is left to infer applicability entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psychological_modern_greene_saturn_shadowGreene: Saturn ShadowCRead-onlyIdempotentInspect
Saturn-as-shadow integration work.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/greene/saturn-shadow] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| saturn | No | |
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| shadowTheme | No | |
| integrationPrompt | No |
TDQS
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 behavioral context the annotations lack: cost (10 credits, Tier 1) and the endpoint. It does not, however, describe scope, depth, or limits of the analysis.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata block is compact and skimmable, and required-parameter and cost lines are useful. However, the only prose sentence is a vague restatement, so structure is efficient but content-light.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter analysis tool with an output schema, the description still leaves the agent without any indication of what the 'Saturn shadow integration' analysis produces or how it differs from sibling modules. Cost and endpoint help, but the core purpose gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate, but it only lists the four required names (date, time, latitude, longitude) already visible in the schema's required array. It adds no format, default, or meaning guidance for the many undocumented params like houseSystem, zodiacType, or cosmogram.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Saturn-as-shadow integration work" essentially restates the name/title (Greene: Saturn Shadow) without a concrete verb or explanation of what the tool computes or returns. It does not distinguish it from the numerous sibling Greene psychological tools (individuation_path, lunar_myth, parental_imagos).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative selection guidance. The [Group: Modern Psychological] tag implies a domain but does not tell the agent when this is the right tool versus the other Greene modules or psyg_saturn_shadow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psychological_modern_rudhyar_cycles_of_becomingRudhyar: Cycles of BecomingCRead-onlyIdempotentInspect
Outer-planet cycles as becoming.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/rudhyar/cycles-of-becoming] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| cycles | No | |
| source | No | |
| doctrine | No | |
| currentAge | No | |
| disclaimer | No |
TDQS
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 needs no restating. The description does add genuinely useful non-schema context: the credit cost (10 credits, Tier 1) and the concrete endpoint. It does not, however, disclose what the computation returns or any limits on it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The metadata-block format is compact, front-loaded, and wastes no words; the required params and cost are easy to scan. It is efficient, though the brevity is partly under-specification rather than deliberate concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, 10-credit specialized astrology computation with many confusable siblings, this is far too thin: no explanation of the Rudhyar cycle concept, no guidance on sidereal vs tropical or ayanamsa choice, no note about which optional parameters matter. The output schema relieves it of describing return values, but the selection and configuration story is still missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate — it does not. It merely repeats the four required fields already enforced by the schema's required array, and says nothing about city, name, cosmogram, zodiacType, houseSystem, timezone interaction, or the compact-mode fields, several of which are undocumented in the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Outer-planet cycles as becoming" names a subject area but never states the operation performed or what the agent receives back. With many near-duplicate siblings (astroway_psyr_cycles_of_becoming, astroway_psychological_modern_arroyo_cycle_of_becoming), the description does nothing to distinguish this tool. It leans toward a poetic restatement rather than a specific verb+resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains no when-to-use guidance, no prerequisite conditions, and no mention of the closely related Rudhyar/Arroyo cycle siblings. The only operational metadata is the required-parameter list and credit cost, neither of which tells an agent when to select this tool over an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psychological_modern_rudhyar_lunation_phaseRudhyar: Lunation PhaseCRead-onlyIdempotentInspect
8-phase lunation classification.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/rudhyar/lunation-phase] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| phase | No |
TDQS
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 adds genuinely useful operational context — credit cost (10, Tier 1) and the explicit endpoint — but says nothing about what the returned classification contains or any behavioral caveats 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: the classification line comes first, followed by compact bracketed group/endpoint/required/cost facts. Every line carries some information, though the extreme brevity shades into under-specification rather than efficient concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with tropical/sidereal, ayanamsa, house-system, and timezone options, this description is too thin — it never explains what the 8 phases are, how sidereal mode interacts with ayanamsa, or when the extra parameters matter. An output schema exists, so return-value explanation is not required, but the input-side complexity is left undocumented in prose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only ~33% schema description coverage, the description must compensate, yet it only lists the four required parameters, which the schema's `required` array already states. It adds no meaning for the many undocumented knobs (cosmogram, zodiacType, houseSystem, ayanamsaId, ayanamsa selection) or for the timezone vs timezoneOffset interaction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific output ('8-phase lunation classification'), which is more than a restatement of the title, but it is a bare noun phrase with no verb and no differentiation from near-identical siblings such as astroway_psyr_lunation_phase, astroway_calendar_moon_phase, astroway_stream_lunar_phase, and astroway_render_moon_phase. An agent cannot tell from this text why it should pick the Rudhyar/Modern Psychological variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance. The bracketed metadata gives required inputs and price, which are operational facts rather than usage guidance, so the agent is left to infer the tool's place among the many lunation/moon-phase siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psychological_modern_rudhyar_personality_keynoteRudhyar: Personality KeynoteCRead-onlyIdempotentInspect
Single-keynote signature for the chart.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/rudhyar/personality-keynote] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| keynote | No |
TDQS
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 covered. The description adds one piece of behavior not in annotations - the cost ('10 credits, Tier 1') and the underlying POST endpoint - which is genuinely useful, but it says nothing about what the single keynote output contains or its interpretive scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single content sentence plus bracketed metadata lines are compact and front-loaded, with no filler prose. However, three of the four bracketed lines (group, endpoint) mainly restate catalog metadata while the one sentence carrying the actual meaning does almost no work.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and annotations cover the safety profile. But for a 15-parameter domain-specific interpretive endpoint with weak schema documentation and a vague term ('keynote') at its core, the description leaves the agent without enough to select or configure the call confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate, yet it only re-lists the four required fields already declared in the schema's required array. The eleven optional parameters (fields, ayanamsa, timezone, zodiacType, houseSystem, precision, etc.) receive no clarification from the description at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says only 'Single-keynote signature for the chart', which is close to a restatement of the name/title rather than an explanation of what a Rudhyar personality keynote is or how it differs from the many neighboring psychological tools. It does not distinguish itself from the near-identical sibling astroway_psyr_personality_keynote or from rudhyar_cycles_of_becoming / lunation_phase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of alternatives among the large sibling set (e.g. psyr_personality_keynote, rudhyar_symbolic_degrees). The 'Required: date, time, latitude, longitude' line is input preconditions, not usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psychological_modern_rudhyar_symbolic_degreesRudhyar: Symbolic DegreesCRead-onlyIdempotentInspect
Symbolic-degree analysis.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/rudhyar/symbolic-degrees] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| ackNote | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so safety is covered. The description adds only the cost (10 credits, Tier 1) and the HTTP endpoint – useful but minimal. It does not explain what the symbolic-degree output entails, computation scope, or how ayahuasca-related sidereal options like the ayanamsa parameter would meaningfully change results for a Rudhyar (western) technique.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded with the (uninformative) purpose statement first, then bracket metadata. It is concise but underwritten – brevity here reflects under-specification rather than efficient communication.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 15 parameters, three enum groups, and heavy sibling overlap in the Modern Psychological Rudhyar family, the description is inadequate. The presence of an output schema means return format needn't be explained, but the description should at least characterize what symbolic degrees are and why an agent would reach for this over the four neighbouring Rudhyar endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 33% with 15 parameters, and the description adds nothing about semantics. It only re-lists the four required parameters (date, time, latitude, longitude) which the schema's required array already declares. Undocumented parameters such as cosmogram, ayanamsaId, zodiacType, and houseSystem go unmentioned, and no indication is given for which parameters matter for a Rudhyar analysis specifically.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description says only 'Symbolic-degree analysis' – a restatement of the title with no verb or explanation of what a Rudhyar symbolic degree is or what the tool returns. It does not differentiate this endpoint from sibling astroway_psychological_modern_rudhyar_cycles_of_becoming, astroway_psychological_modern_rudhyar_lunation_phase, or astroway_psychological_modern_rudhyar_personality_keynote, all of which share the same Modern Psychological prefix.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 Rudhyar technique versus other Rudhyar endpoints, or versus Sabian symbols (astroway_aspects_sabian_symbols). The bracketed metadata lists required inputs and cost but says nothing about selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psychological_modern_rudhyar_transits_as_rebirthRudhyar: Transits as RebirthCRead-onlyIdempotentInspect
Reframe major transits as rebirth.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/rudhyar/transits-as-rebirth] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| rebirthThemes | No | |
| natalRebirthSignatures | No |
TDQS
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 genuinely useful non-annotation context: it is a paid POST costing 10 credits (Tier 1), which matters for budgeting and for not treating it as a free local read. Beyond cost, it discloses nothing about output shape or auth (output schema exists, so return values are partly excused).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose line is front-loaded and the tool is very compact, with no redundant prose. The bracketed metadata block (group, endpoint, required set, cost tier) carries selection-relevant facts rather than filler. Slight deduction because the tag template is generic across the catalog and the one purpose sentence does little work.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, credit-costing tool with 33% schema coverage, the definition is too thin: no explanation of what 'rebirth' analysis produces, no guidance on zodiacType/ayanamsa/houseSystem selection, and no prerequisite or input-format notes beyond the required list. The existing output schema excuses return-value description, but the input and routing gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. It merely restates the four required fields (date, time, latitude, longitude) that the schema already marks as required, and adds no meaning for the undocumented fields such as zodiacType, houseSystem, cosmogram or ayanamsaId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The verb+resource ("Reframe major transits as rebirth") is present but thematic rather than functional — it never says what artifact the agent gets back or what 'rebirth framing' means operationally. It also fails to distinguish itself from the near-identical sibling astroway_psyr_transits_as_rebirth or from astroway_ai_interpret_transits / astroway_prognostics_transits. An agent can guess the domain but not why this tool over its twins.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use, when-not-to-use, or alternative-routing guidance. The bracketed tags give group, endpoint, required params and cost, which is context but not usage guidance. With multiple closely named transit/psychological siblings, the absence of routing advice is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psyg_archetypal_figuresGreene: Archetypal FiguresBRead-onlyIdempotentInspect
Archetypal patterns in the chart per Liz Greene.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/greene/archetypal-figures] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_psychological_modern_greene_archetypal_figures.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| figures | No | |
| doctrine | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new operational facts: a per-call cost of 10 credits (Tier 1) and the fact that this is an alias of the canonical Greene endpoint, which matters for budgeting and for avoiding duplicate calls. It stops short of describing latency or any special chart assumptions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the one-line purpose and then uses compact bracketed metadata with zero filler; the alias note is short and placed last. It is lean, though arguably too lean for a 15-parameter tool — the terseness shades into under-specification rather than pure conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 alias/endpoint/cost metadata is present. However, for a complex 15-parameter chart tool, the description gives no sense of what distinguishes the output from its many siblings, leaving the agent to infer selection from the name alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, and the description contributes nothing beyond restating the four required fields (date, time, latitude, longitude) that the schema and required array already supply. Parameters like houseSystem, zodiacType, ayanamsaId and cosmogram are left with no guidance in either place.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource: it derives 'archetypal patterns in the chart' using Liz Greene's framework, which distinguishes it from the Arroyo and Rudhyar siblings and from the other Greene tools (lunar myth, parental imagos, Saturn shadow). The phrase 'archetypal patterns' is still somewhat abstract about what is actually produced, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not, or alternative-selection guidance is given. The group tag 'Modern Psychological' and the author name imply a context, but the description never tells the agent how to choose between this and astroway_psyg_individuation_path, lunar_myth, or the canonical astroway_psychological_modern_greene_archetypal_figures beyond a bare equivalence note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psyg_individuation_pathGreene: Individuation PathCRead-onlyIdempotentInspect
Individuation arc per natal chart.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/greene/individuation-path] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_psychological_modern_greene_individuation_path.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| keyAges | No | |
| doctrine | No | |
| disclaimer | No | |
| individuationMarkers | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description usefully adds the cost (10 credits, Tier 1) and the HTTP endpoint, which annotations do not provide, but says nothing about what the response contains or any limits on the computed arc.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded with the one-line purpose, and the bracketed metadata lines are scannable. Little is wasted, though the tag lines are boilerplate rather than substantive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter computed astrology tool, the description leaves the agent without any sense of what the output covers or how optional inputs change it. An output schema exists, so return values need not be spelled out, but the near-total absence of usage and parameter context leaves it under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters at 33% schema description coverage, the description should compensate, but it only recites the four required fields already listed in the schema's required array. It adds no meaning for ayanamsa, houseSystem, zodiacType, fields, precision, or the timezone/timezoneOffset interaction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names a specific artifact ('individuation arc') and its input basis (natal chart), which is better than a bare name restatement, but 'individuation arc' is unexplained jargon and the tool is essentially identified only as the aliased Greene endpoint. It gives no differentiation from siblings like astroway_psyg_saturn_shadow, astroway_psyg_archetypal_figures or the psyr_* family beyond the group label.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this tool over the many other psychological/Greene tools, no prerequisites, and no exclusions. The only routing information is the alias note, which points to the identical tool rather than an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psyg_lunar_mythGreene: Lunar MythBRead-onlyIdempotentInspect
Lunar archetypes by sign and house.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/greene/lunar-myth] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_psychological_modern_greene_lunar_myth.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| moon | No | |
| theme | No | |
| shadow | No | |
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| mythicFigure | No |
TDQS
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 bar is lower. It usefully adds billing tier (10 credits, Tier 1), the endpoint, and the group, none of which are in the annotations or schema. It says nothing about what the interpretation returns or how it is computed, but the output schema covers the return shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded: the purpose sentence leads, and machine-relevant metadata is bracketed in a scannable block. Every element is short, though the required-parameter line is pure duplication of structured data and earns no place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 definition supplies cost, endpoint, group, and alias. Still, a 15-parameter tool with 33% schema coverage and no interpretation of the optional chart-construction parameters leaves the agent under-informed for anything beyond the default call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate — and it does not. Its '[Required: date, time, latitude, longitude]' line merely repeats the four required fields already declared in the schema, adding no syntax, format, or semantics for the eleven optional parameters (ayanamsa, houseSystem, fields, precision, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource and scope concretely: 'Lunar archetypes by sign and house', which is a specific interpretive output rather than a restatement of the name. It also discloses that this is an alias for astroway_psychological_modern_greene_lunar_myth, which lets the agent deduplicate. It does not, however, distinguish itself from the other Greene tools (archetypal_figures, parental_imagos, saturn_shadow) beyond the word 'lunar'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given. It never says which question this answers versus astroway_psyg_archetypal_figures or the other modern-psychological siblings, nor does it state prerequisites beyond the required-parameter list. The alias note routes to an equivalent tool, not to an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psyg_parental_imagosGreene: Parental ImagosCRead-onlyIdempotentInspect
Parental imagos analysis.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/greene/parental-imagos] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_psychological_modern_greene_parental_imagos.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| shadowMarkers | No | |
| exteriorParent | No | |
| interiorParent | No |
TDQS
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 usefully adds non-annotation context: the POST endpoint, the required-field set, and a cost of 10 credits (Tier 1), which an agent needs for budgeting. It does not mention rate limits, latency, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata block is compact, front-loaded, and easy to scan, with no filler sentences. The trade-off is that terseness is achieved by omitting explanatory content rather than by tight prose, but the structure itself is clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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; the cost and endpoint metadata round out the operational picture. However, for a 15-parameter tool with low schema coverage, the description leaves an agent without guidance on the sidereal/house-system options that materially change the result, so it is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only ~33% schema description coverage, the description should compensate, but it only lists the four required fields (date, time, latitude, longitude), which the schema already marks as required. Optional but consequential params like `ayanamsa`, `houseSystem`, `zodiacType`, `fields`, and `precision` receive no guidance in the description beyond what partial schema descriptions provide.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description's only prose is "Parental imagos analysis," which essentially restates the title "Greene: Parental Imagos" rather than defining what the analysis computes or returns. It does add one differentiating fact — that it is a cursor-friendly alias of `astroway_psychological_modern_greene_parental_imagos` — which helps an agent recognize the canonical sibling, but the core purpose remains vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 other psychological/Modern Psychological siblings (e.g., `astroway_psyg_archetypal_figures`, `astroway_psyg_saturn_shadow`) or the canonical long-named twin. The alias note implies interchangeability with the canonical tool but gives no selection criteria, exclusions, or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psyg_saturn_shadowGreene: Saturn ShadowCRead-onlyIdempotentInspect
Saturn-as-shadow integration work.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/greene/saturn-shadow] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_psychological_modern_greene_saturn_shadow.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| saturn | No | |
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| shadowTheme | No | |
| integrationPrompt | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, destructive=false, openWorld=false, so the safety profile is covered. The description adds genuinely new context: the POST endpoint, the 10-credit Tier 1 cost, and the required-input set, which is useful for planning calls. It does not, however, describe what computation or behavioral edge cases (e.g. sidereal vs tropical requirements) apply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded with the concept, followed by tight bracketed metadata (group, endpoint, required, cost) and the alias note. Nearly every line carries information, though the opening phrase is too vague to be the headline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema and annotations are present, so return values and safety need not be restated. Still, for a 15-parameter computational chart tool the description leaves the agent guessing about the doctrinal/psychological framing and which optional inputs matter, making it only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate; instead it merely restates the four required fields already marked required in the schema. No meaning is added for the many undocumented options (zodiacType, houseSystem, cosmogram, name, city, etc.) that an agent would need to select correctly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line 'Saturn-as-shadow integration work' identifies the subject (Liz Greene's Saturn shadow concept) but is a vague noun phrase without a clear verb or output, and it does not distinguish this from its psyg siblings (archetypal_figures, individuation_path, lunar_myth, parental_imagos). The Endpoint and Group tags help place it within the Modern Psychological family but not the specific work performed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states required inputs (date, time, latitude, longitude), the endpoint, and the cost, but gives no guidance on when to choose this tool over the sibling Greene/psyg psychological tools or what use case it serves. No alternatives or exclusions are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psyr_cycles_of_becomingRudhyar: Cycles of BecomingCRead-onlyIdempotentInspect
Outer-planet cycles as becoming.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/rudhyar/cycles-of-becoming] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_psychological_modern_rudhyar_cycles_of_becoming.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| cycles | No | |
| source | No | |
| doctrine | No | |
| currentAge | No | |
| disclaimer | No |
TDQS
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 does add non-obvious operational context the annotations cannot: the 10-credit Tier 1 cost, the required input quartet, and the fact that this is a cursor-friendly alias of the fully-named endpoint. It discloses nothing about computation or result content, so it earns moderate rather than high credit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single fragment plus the bracketed metadata block is front-loaded and free of padding, so nothing is wasted. However the terseness is under-specification rather than true conciseness, and the useful metadata (endpoint, cost, alias) is tucked below the near-empty headline sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter chart-computation tool this is far too thin. An output schema exists, so return values need not be described, and annotations cover safety, but the description never says what the tool computes, what tradition-specific output to expect, or how the alias relates to the canonical endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description carries a real burden here, yet it only repeats the four required fields already listed in the schema. Parameters such as city, name, cosmogram, zodiacType and houseSystem are undocumented in both places, and the description adds no meaning for any of them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is the fragment "Outer-planet cycles as becoming." It names a subject area (outer-planet cycles) but supplies no verb and no statement of what the tool actually produces, so it largely restates the title "Cycles of Becoming". It also gives no basis for distinguishing it from siblings like astroway_psyr_lunation_phase or astroway_psyr_transits_as_rebirth.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-selection guidance anywhere in the text. A reader cannot tell from this description whether to reach for this tool or for the many adjacent Rudhyar/psychological tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psyr_lunation_phaseRudhyar: Lunation PhaseCRead-onlyIdempotentInspect
8-phase lunation classification.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/rudhyar/lunation-phase] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_psychological_modern_rudhyar_lunation_phase.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| phase | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful non-annotation context: the 10-credit cost tier, the POST endpoint, and the group. However it says nothing about computation semantics, precision defaults, or error behavior beyond the required-parameter list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata format is compact and front-loads the core purpose before the endpoint/cost details. Nothing is padded or redundant, though the required-parameter line duplicates the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter endpoint with an output schema present (so return values need not be explained), the description still omits how the classification is derived, how to choose between tropical/sidereal and the ayanamsa options, and how to use compact mode. Only the required fields and the credit cost are conveyed, leaving the agent under-equipped to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. It merely restates the four required fields (date, time, latitude, longitude) that the schema already marks required, and never mentions the 11 optional parameters such as ayanamsa, timezone, fields, precision or houseSystem.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase '8-phase lunation classification' names a specific astrological resource and the title scopes it to Rudhyar, so an agent can tell it computes a lunation-phase classification rather than a generic moon phase. It also disambiguates itself from its canonical sibling by declaring it is a Cursor-friendly alias for `astroway_psychological_modern_rudhyar_lunation_phase`. The weakness is the absence of a verb (compute/return) and no differentiation from near-neighbours like astroway_calendar_moon_phase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 statement and no named alternative among the many lunation-related siblings (calendar_moon_phase, render_moon_phase, stream_lunar_phase). The only routing information is the alias equivalence, which tells the agent this is interchangeable with the long-named tool rather than when to pick it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psyr_personality_keynoteRudhyar: Personality KeynoteCRead-onlyIdempotentInspect
Single-keynote signature for the chart.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/rudhyar/personality-keynote] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_psychological_modern_rudhyar_personality_keynote.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| keynote | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely new operational context the annotations do not carry: the HTTP endpoint, the 10-credit Tier 1 charge, and the required input set — useful for budgeting and call planning.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded: the purpose leads, bracketed metadata follows, and the alias note is placed last. No filler sentences, though the bracket block is terse enough that some lines (endpoint) carry little decision value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, credit-charged endpoint with low schema coverage, the description leaves major gaps: no indication of which optional parameters matter, no defaults guidance, and no differentiation from the psychological sibling family. The existing output schema and annotations cover return shape and safety, but the input-side context is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate, and it does not. It merely restates the four required parameters already marked required in the schema and says nothing about ayanamsa, timezone/timezoneOffset, houseSystem, fields, or precision semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Single-keynote signature for the chart" names a resource and a method (Rudhyar, via title/alias) but never explains what a 'keynote signature' actually is or what it returns conceptually. It is distinguishable from other Rudhyar tools only weakly, through the 'keynote' word; the alias sentence adds identification value but not purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to choose this tool over the many sibling psychological/interpretation tools (e.g. astroway_psyr_symbolic_degrees, astroway_ai_interpret_element). Only required inputs and cost are given, which is operational metadata, 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_psyr_symbolic_degreesRudhyar: Symbolic DegreesCRead-onlyIdempotentInspect
Symbolic-degree analysis.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/rudhyar/symbolic-degrees] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_psychological_modern_rudhyar_symbolic_degrees.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| ackNote | No | |
| doctrine | No | |
| perPlanet | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds genuinely useful context: the endpoint, the 10-credit Tier 1 cost, and the required inputs. It still says nothing about what is returned or computed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata block is compact and front-loads the key facts (group, endpoint, required inputs, cost). Nothing is wasted, though the content is largely administrative rather than explanatory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a 15-parameter, 10-credit specialized analysis tool, the description omits any conceptual explanation of symbolic degrees, leaving an agent unable to judge what it will get.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The listed required params (date, time, latitude, longitude) merely duplicate the schema's required array, and schema description coverage is only 33%. With 15 parameters, several of which (zodiacType, houseSystem, ayanamsa) are unannotated, the description does nothing to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource ('symbolic-degree analysis') and gives the endpoint, group, and cost, which is useful orientation. But it never says what a symbolic-degree analysis actually computes or produces, and the only sibling differentiation comes from the parenthetical alias note rather than from describing the output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance. It does not say when an agent should pick symbolic degrees over the other Rudhyar tools (cycles_of_becoming, lunation_phase, personality_keynote) nor confirm that this alias and the full-name tool are interchangeable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_psyr_transits_as_rebirthRudhyar: Transits as RebirthBRead-onlyIdempotentInspect
Reframe major transits as rebirth.
[Group: Modern Psychological] [Endpoint: POST /v1/modern/rudhyar/transits-as-rebirth] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_psychological_modern_rudhyar_transits_as_rebirth.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| rebirthThemes | No | |
| natalRebirthSignatures | No |
TDQS
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). The description adds context annotations don't carry: the POST endpoint, the 10-credit Tier 1 cost, and the alias relationship to the canonical tool name. It does not disclose return shape, but an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line purpose followed by compact bracketed metadata blocks; nothing is padded or redundant. Slightly terse for the amount of behavior it still needs to convey.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and cost/required inputs are covered. But for a 15-param interpretive tool with 33% schema coverage and heavy sibling overlap, the absence of any usage routing or param clarification leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 params; several user-facing params (city, date, time, zodiacType, houseSystem, cosmogram) are undocumented in both schema and description. The description only restates the four required params already declared in `required`, adding no semantic value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Reframe major transits as rebirth') and, via the cursor-friendly alias note, ties itself to the canonical sibling `astroway_psychological_modern_rudhyar_transits_as_rebirth`, which aids disambiguation. However, 'rebirth' is an abstract framing that doesn't tell the agent what output form (interpretation text vs. chart) to expect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no routing vs. alternatives such as `astroway_prognostics_transits` or `astroway_ai_interpret_transits`, both of which plausibly compete. Only required inputs and cost are given, which is invocation metadata 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_reference_natal_textsNatal texts (static)ARead-onlyIdempotentInspect
Edited interpretation texts for a chart, no AI at request time. keys is a comma list of up to 64: sun.aries (planet in sign, also chiron, ascendant), moon.h4 (planet in house), sun_moon.trine (major aspect between two of Sun..Pluto). lang is required; a text that does not exist in that language is listed in missing, never replaced by another language. Planet in sign covers 20 languages; houses and aspects are being written. Plain text, paragraphs separated by a blank line.
[Group: Reference] [Endpoint: GET /v1/natal-texts] [Required: keys, lang] [Cost: 10 credits (Tier 1)]
Keys with no text in the requested lang come back listed in missing, not in texts. Do not invent, translate or guess a replacement body for a key that comes back in missing; report it as unavailable.
| Name | Required | Description | Default |
|---|---|---|---|
| keys | Yes | Comma list of up to 64 distinct keys: `<body>.<sign>` (planet in sign, also `chiron`, `ascendant`, `north_node`, `south_node`, `lilith`), `<body>.h<1-12>` (planet in house, also `chiron`, `lilith`), `<body>_<body>.<aspect>` (conjunction, sextile, square, trine, opposition between two of Sun..Pluto), `pattern.<name>` (t_square, grand_trine, grand_cross, stellium, yod, kite; kind `pattern`, a general text for the figure, the planets are yours to list). Nodes, Lilith in sign and patterns are written in every language listed for `lang`. | |
| lang | Yes | Language of the texts. No fallback: a text missing in this language is listed in `missing`. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lang | No | |
| texts | No | |
| missing | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnly, idempotent, non-destructive, closed-world), and the description adds substantive behavior beyond them: cost tier, the strict no-fallback language policy, the `missing` list contract, and the partial content coverage (planet-in-sign spans 20 languages; houses and aspects are still being written). That coverage disclosure materially changes how an agent should call and report this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose and the key-grammar essentials are front-loaded, and each sentence carries information. The `missing`/no-fallback rule is arguably restated in the trailing instruction, which costs a little efficiency but reinforces a high-stakes behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not document return shape, and it instead covers the non-obvious parts: language fallback policy, the `missing` list, cost, and content coverage per key type. An agent has everything needed to call it and to interpret a partial response correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning beyond the schema: the 64-key ceiling, concrete key grammar examples, and the fact that language coverage differs by key family (planet-in-sign vs houses/aspects), which affects how the `keys` parameter should be chosen.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it returns edited (static) interpretation texts for chart points, explicitly 'no AI at request time', which distinguishes it from the AI/mcp siblings like astroway_mcp_ai_explain_aspect and from the translation siblings. An agent can tell what this tool returns 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use: it is a static-lookup tool, costs 10 credits, requires keys and lang, and instructs how to handle `missing` results (report unavailable, do not invent or translate). It does not name an explicit alternative tool to use for AI-generated interpretations, so the routing guidance is strong but not complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_relational_coalescentCoalescent ChartBRead-onlyIdempotentInspect
Calculate a coalescent chart: the harmonic chart that resonates most strongly between two charts.
[Group: Comparisons] [Endpoint: POST /v1/coalescent] [Required: input1, input2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| input1 | Yes | Birth 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. | |
| input2 | Yes | Birth 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | No | |
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| antiscia | No | |
| chartSect | No | |
| julianDay | No | |
| houseAspects | No | |
| siderealTime | No | |
| antisciaAspects | No | |
| parallelAspects | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safety profile (readOnlyHint, idempotentHint, destructiveHint=false, closed world), so the description carries a reduced burden. It adds the cost tier (50 credits, Tier 3), which is real operational context not present in annotations, but says nothing about what the calculation destroys, requires, or how heavy the response is. Adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded definition followed by a compact metadata block; every line is short and scannable. The [Required: input1, input2] line mildly duplicates the schema's required array, which is the only wasted element in an otherwise tight description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 two-chart input is implied by 'between two charts'. Combined with exhaustive per-parameter schema docs and annotations covering the safety profile, nothing an agent needs to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with input1/input2 carrying very detailed nested docs (timezone handling, houseSystem letters, rejected short forms) and precision/fields documented inline. The description only restates the two required parameters, adding nothing beyond what the schema already provides. Baseline 3 applies when the schema does all the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (calculate) and resource (coalescent chart), and adds a definitional gloss — 'the harmonic chart that resonates most strongly between two charts' — which is genuinely useful for an obscure technique. However, it never distinguishes itself from close siblings like astroway_relational_composite, astroway_relational_davison, or astroway_relational_synastry, so the agent cannot tell from the text alone which two-chart tool to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use or when-not-to-use guidance and names no alternatives among the many relational tools. The [Group: Comparisons] tag and [Required: input1, input2] block are structural metadata rather than selection guidance, and the cost line tells the agent the price but not the condition that should make it choose this over a composite or synastry chart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_relational_compositeComposite ChartBRead-onlyIdempotentInspect
Calculate a midpoint composite chart by averaging the planetary positions and house cusps of two natal charts.
[Group: Comparisons] [Endpoint: POST /v1/composite] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| antiscia | No | |
| julianDay | No | |
| siderealTime | No | |
| antisciaAspects | No | |
| parallelAspects | No |
TDQS
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 genuine extra context: the 50-credit Tier 3 cost and the required parameters. However it says nothing about output shape or what the composite is useful for, so it only partially extends beyond structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence states the operation and method, followed by compact bracketed metadata (group, endpoint, required, cost). No filler, though the bracketed block is terse rather than prose and the whole thing is quite sparse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich output schema and full annotations, the description carries a light load, and it does supply method, cost, and required inputs. The one real gap is the absence of any sibling differentiation among the many relational comparison tools, which the agent would need to choose correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the nested chart1/chart2 objects and the fields/precision compact-mode parameters are already fully documented in the schema. The description only repeats the two required params, adding no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (midpoint composite chart) and explains the method — averaging planetary positions and house cusps of two natal charts. This implicitly distinguishes it from the Davison sibling (a different composite method), though it never names any sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given. Nothing tells the agent when to pick a midpoint composite over astroway_relational_davison, astroway_relational_synastry, or astroway_relational_coalescent. The only routing help is the structural [Group: Comparisons] tag.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_relational_davisonDavison ChartBRead-onlyIdempotentInspect
Calculate a Davison relationship chart using the midpoint in time and space between two birth moments.
[Group: Comparisons] [Endpoint: POST /v1/davison] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | No | |
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| antiscia | No | |
| midpoint | No | |
| chartSect | No | |
| julianDay | No | |
| houseAspects | No | |
| siderealTime | No | |
| antisciaAspects | No | |
| parallelAspects | No |
TDQS
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 the credit cost and tier (50 credits, Tier 3) and the endpoint, which are not in the annotations. It does not describe the output shape or any constraints on the two input charts.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One substantive sentence followed by compact bracketed metadata — front-loaded and free of filler. The bracketed lines are terse and skimmable rather than prose padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations, a rich nested input schema, and an output schema, the description need not explain returns. Its one real gap is relational-sibling routing: given the dense cluster of composite/coalescent/synastry tools, an agent needs at least a hint about which to pick.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested chart objects carry extensive field documentation, so the baseline of 3 applies. The description only restates that chart1 and chart2 are required, adding no semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Calculate') and resource ('Davison relationship chart') and even explains the method — the midpoint in time and space between two birth moments. However, it never differentiates itself from its closest sibling, astroway_relational_composite, which is the alternative an agent would most 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The bracketed metadata lists required parameters and cost, but there is no statement of when to choose a Davison chart over a composite, coalescent, or synastry chart — all siblings in the same relational group. The agent gets operational facts, 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_relational_group_synastryGroup SynastryBRead-onlyIdempotentInspect
Calculate synastry aspects among 2–8 charts simultaneously, returning all pairwise cross-chart aspect matrices.
[Group: Comparisons] [Endpoint: POST /v1/group-synastry] [Required: inputs] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| inputs | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pairs | No | |
| charts | No | |
| matrix | No | |
| averageScore | No |
TDQS
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 useful operational context beyond the annotations in the form of the endpoint and, notably, a cost tier (100 credits, Tier 4). It does not add rate limits or failure behavior, so 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core sentence, followed by compact bracketed metadata lines. No filler or repetition, though the '[Required: inputs]' line merely restates the schema requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 unnecessary, and annotations already cover the safety profile. The description supplies cost and endpoint context, leaving the agent adequately equipped to call this read-only multi-chart calculation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema description coverage at 67% and the schema fully documenting the non-obvious fields (timezone, timezoneOffset, houseSystem, ayanamsa), the schema does most of the heavy lifting. The description adds no parameter syntax or format detail, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Calculate), resource (synastry aspects) and scope (simultaneously across 2–8 charts, returning all pairwise cross-chart aspect matrices). This scope distinguishes it from the 2-chart astroway_relational_synastry, but no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to pick this tool over astroway_relational_synastry, astroway_relational_synastry_aspect_grid, or astroway_relational_composite. The '2–8 charts' bound and '[Group: Comparisons]' tag hint at multi-chart use but provide no explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_relational_match_scoreMatch Score (dating compatibility)ARead-onlyIdempotentInspect
One-call dating-compatibility aggregate over the synastry engine: overall score (0-100) + label + harmony/tension, the attraction score (Venus-Mars / Moon-Venus / 5th-house), the most influential cross-aspects, and green/red flags surfaced from those aspects. Built for dating apps that want a single call instead of synastry + attraction + their own flag logic. Same TwoChart input as /synastry.
[Group: Comparisons] [Endpoint: POST /v1/match/score] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| label | No | |
| score | No | |
| harmony | No | |
| tension | No | |
| redFlags | No | |
| attraction | No | |
| greenFlags | No | |
| topAspects | No |
TDQS
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 structurally. The description adds genuinely useful behavior beyond that: the endpoint (POST /v1/match/score), the cost (50 credits, Tier 3), and the fact that one call replaces a multi-call workflow — which matters for cost-aware planning. It does not discuss latency or auth, keeping it at a solid 4 rather than 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool's identity and output payload in the first sentence, followed by the positioning rationale and the input note. The bracketed Group/Endpoint/Required/Cost block is structured metadata rather than prose, and no sentence is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 prose explanation, and the input schema fully documents the nested chart objects. The description still supplies the selection-critical facts an agent needs — what the aggregate returns, what it replaces, the endpoint, the credit cost, and the shared input shape — leaving no material gap for calling it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested TwoChart object is exhaustively documented, so the schema carries the parameter burden and 3 is the baseline. The description adds only 'Same TwoChart input as /synastry', which is orientation rather than new field-level semantics; the fields/precision compaction parameters are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource — a one-call dating-compatibility aggregate over the synastry engine — and enumerates the exact outputs (overall 0-100 score, label, harmony/tension, attraction score, influential cross-aspects, green/red flags). It also distinguishes itself from the constituent siblings by naming what it replaces (synastry + attraction + custom flag logic), so an agent can tell it apart from astroway_relational_synastry and astroway_relational_synastry_attraction_score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Built for dating apps that want a single call instead of synastry + attraction + their own flag logic' clause gives a clear selection condition against the sibling tools, and 'Same TwoChart input as /synastry' tells the caller the input contract is shared. It stops short of explicit when-not guidance or naming the sibling tool identifiers directly, so it is clear context rather than full routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_relational_synastrySynastryARead-onlyIdempotentInspect
Calculate cross-chart aspects between two natal charts for relationship analysis. Either partner may set timeUnknown: true: cross-aspects are still returned, while that partner's houses, angles and sect come back null.
[Group: Comparisons] [Endpoint: POST /v1/synastry] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth data where the clock time may be unknown. Either pass time (HH:mm:ss), or set timeUnknown: true and omit it. In the second case the response carries planets and aspects but no houses, angles or sect. | |
| chart2 | Yes | Birth data where the clock time may be unknown. Either pass time (HH:mm:ss), or set timeUnknown: true and omit it. In the second case the response carries planets and aspects but no houses, angles or sect. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| chart1 | No | |
| chart2 | No | |
| crossAspects | No | |
| compatibility | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is lower. The description nonetheless adds real behavioral context the annotations cannot carry: with timeUnknown: true the cross-aspects are still returned while that partner's houses, angles and sect come back null. Cost (50 credits, Tier 3) is also surfaced, though that is arguably structured metadata rather than prose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded: the core action is in the first clause and the exception case follows immediately. The bracketed metadata block (group, endpoint, required, cost) is scannable and non-redundant. Slightly dense but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description's burden, and annotations cover the safety profile. Two required charts are identified and the timeUnknown degradation is disclosed. The one gap is routing against the many relational siblings, which is a usage-guideline issue rather than missing call mechanics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the nested chart1/chart2 objects and the fields/precision parameters are already fully documented in structured form; baseline 3 applies. The description reinforces timeUnknown semantics but adds little about chart1/chart2 payload content that the schema does not already state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Calculate cross-chart aspects between two natal charts.' That is unambiguous and a step beyond the bare title 'Synastry'. However, it never distinguishes itself from near-name siblings such as astroway_relational_synastry_aspect_grid, astroway_relational_synastry_house_overlay or astroway_relational_composite, so an agent must open the schemas to route correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for relationship analysis' implies the context of use, but there is no explicit when-to-use vs when-to-use-an-alternative guidance, no note that layered-render tools or the composite/davison siblings exist, and no prerequisites beyond the required-params metadata line. Usage is inferred 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_relational_synastry_aspect_gridSynastry Aspect GridARead-onlyIdempotentInspect
NxM matrix of cross-chart aspects between the two charts (default 13×13: Sun..Pluto + nodes + Lilith + Chiron). Cells contain aspect or null.
[Group: Comparisons] [Endpoint: POST /v1/synastry/aspect-grid] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| grid | No | |
| totals | No | |
| bodies1 | No | |
| bodies2 | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior, so the description's extra disclosure is commendable. It adds the cost tier (50 credits, Tier 3), the endpoint method, and output cell semantics ('aspect or null'), which are useful behavioral details beyond the annotations. It does not discuss auth or rate limits, but with a rich schema and output schema, this is a reasonable level of transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is tightly structured and front-loaded: the core output description comes first, followed by compact metadata (group, endpoint, required, cost). Every sentence and tag earns its place with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with a nested input schema, an output schema, and full annotations, the description supplies the key calling context: required parameters, endpoint, cost, and the default point set. The only notable gap is the absence of guidance on when to choose this over sibling relational tools, but it is otherwise complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 chart1, chart2, fields, and precision in detail. The description only restates the two required parameters (chart1, chart2) and does not add semantics for fields or precision, which is acceptable given the high schema coverage baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool produces: an NxM matrix of cross-chart aspects between two charts, with the default 13×13 point set and cell contents. It does not explicitly contrast this with sibling tools such as astroway_relational_synastry or astroway_render_aspect_grid, but the resource and output type are specific enough for an agent to understand the core purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides group, endpoint, required parameters, and cost, but gives no guidance on when to use this tool versus alternatives like a full synastry report or a rendered aspect grid. There are no exclusions or conditional recommendations, so the agent must infer usage from the name and basic context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_relational_synastry_attraction_scoreSynastry Attraction ScoreARead-onlyIdempotentInspect
Weighted 0–100 attraction score from Sun-Moon, Mars-Venus, ASC/DSC, Mars-Mars, Sun-Mars, Moon-Venus contacts and 5th-house overlay.
[Group: Comparisons] [Endpoint: POST /v1/synastry/attraction-score] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| score | No | |
| components | No |
TDQS
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: the 50-credit Tier 3 cost, the HTTP endpoint, and the group. That cost disclosure is material for an agent deciding whether to call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense but front-loaded sentence gives the output and its inputs, followed by four short bracketed tags for group, endpoint, required params and cost. No filler, no repetition, easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 plus schema cover safety and parameters. The description supplies cost and scoring composition, but omits the sibling differentiation that would matter in a family this crowded with overlapping compatibility tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested chart object is exhaustively documented in the schema itself. The description only restates that chart1 and chart2 are required and says nothing about the fields/precision compact-mode parameters, so it adds little beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific output (a weighted 0–100 attraction score) and enumerates the exact contacts that feed it (Sun-Moon, Mars-Venus, ASC/DSC, etc.), which is far more informative than the title alone. It does not, however, distinguish itself from close siblings such as astroway_relational_match_score, astroway_horoscope_compatibility, or the near-identically named astroway_rel_synastry_attraction_score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to reach for this tool versus the many other relational/compatibility endpoints, nor any stated prerequisites beyond the [Required: chart1, chart2] tag. The agent is left to infer usage from the name and factor list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_relational_synastry_element_balanceSynastry Element BalanceBRead-onlyIdempotentInspect
Element (fire/earth/air/water) and modality (cardinal/fixed/mutable) tallies for each chart and the combined pair, with dominant and missing elements.
[Group: Comparisons] [Endpoint: POST /v1/synastry/element-balance] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| chart1 | No | |
| chart2 | No | |
| balance | No | |
| combined | No |
TDQS
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 fully covered. The description adds cost/tier (50 credits, Tier 3) and the endpoint, which is useful operational context, but says nothing about computation time, output shape, or precision/compact-mode behavior that the caller might care about.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense front-loaded sentence states what is produced, and the bracketed metadata block (group, endpoint, required, cost) is compact and scannable. Nothing is redundant, though the sentence is fairly packed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 still outlines what the response contains. With 100% schema coverage and full annotation coverage, the definition is complete enough to invoke correctly; only the absence of alternative-tool routing keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the nested chart1/chart2 birth-data objects, fields, and precision are already documented in the schema. The description only restates that chart1 and chart2 are required, adding no new semantics, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific computation (element and modality tallies) and specifies the outputs precisely: per-chart and combined-pair tallies plus dominant and missing elements. That distinguishes it from a generic chart tool, though it never names the sibling element-balance tools (e.g. astroway_psya_element_balance, astroway_bazi_element_balance) that also tally elements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not guidance. The 'Group: Comparisons' tag and the required chart1/chart2 hint that this is a two-chart relational tool, but the description never routes the agent away from alternatives such as astroway_relational_synastry or astroway_psya_relational_element_map, which also operate on pairs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_relational_synastry_house_overlaySynastry House OverlayBRead-onlyIdempotentInspect
Locate each chart’s personal planets in the partner’s houses; reports top-3 emphasized houses on either side.
[Group: Comparisons] [Endpoint: POST /v1/synastry/house-overlay] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| chart1InChart2 | No | |
| chart2InChart1 | No | |
| emphasizedHouses | No |
TDQS
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 the output shape (top-3 emphasized houses per side), but that is also captured by the output schema. It adds little behavioral context beyond structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single front-loaded sentence describing the operation, followed by a compact metadata block (group, endpoint, required, cost). No filler. Slightly longer than strictly necessary because the metadata partly duplicates the schema's required list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema and complete annotations, the description need not explain returns. What is missing is positional context: with ~30 relational siblings, an agent needs a sentence on when this overlay is the right choice versus aspect-grid or composite variants. Otherwise it is adequate for calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and chart1/chart2 are richly documented inline (timezone handling, house system letters, rejected short forms). The description adds nothing about parameters, so the baseline 3 applies — the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource: placing each chart's personal planets in the partner's houses and reporting the top-3 emphasized houses on either side. That is specific and unambiguous. It does not, however, distinguish itself from the dense set of sibling relational tools (synastry_aspect_grid, synastry_attraction_score, synastry_element_balance, composite, davison).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The metadata block lists required inputs and cost but never says how this differs from astroway_relational_synastry, astroway_relational_synastry_aspect_grid, or astroway_relational_composite, which is exactly the decision an agent must make in this crowded group.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_rel_synastry_attraction_scoreSynastry Attraction ScoreCRead-onlyIdempotentInspect
Weighted 0–100 attraction score from Sun-Moon, Mars-Venus, ASC/DSC, Mars-Mars, Sun-Mars, Moon-Venus contacts and 5th-house overlay.
[Group: Comparisons] [Endpoint: POST /v1/synastry/attraction-score] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
(Cursor-friendly alias for astroway_relational_synastry_attraction_score.)
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| score | No | |
| components | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, closed-world, so the safety profile is covered. The description adds only the cost tier and that it is an alias. It does not explain pagination/cursor behavior (despite 'cursor-friendly' label), and 'Cursor-friendly' is vestigial wording that edges toward contradicting the read-only, non-paginated synastry result. No return-shape or error semantics are provided.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded single sentence that names the score and its algorithm, followed by compact metadata lines (group, endpoint, required params, cost) and the alias note. No filler, though the 'Cursor-friendly alias' phrasing is slightly awkward.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a present output schema and 100% schema coverage, the description does not need to explain return values. It covers required inputs and cost, but omits usage context vs. sibling score/match tools, which is the main gap for a routing decision among ~600 siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 chart1/chart2, housesystem, timezoneOffset, fields and precision in rich detail. The description adds nothing about parameters beyond naming the two charts. Baseline 3 applies when the schema does all the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it produces a weighted 0-100 attraction score from named synastry contacts, distinguishing it from generic siblings like astroway_relational_synastry or astroway_relational_match_score. It does not explicitly contrast with the sibling attraction-score tool or explain how the score differs, but the algorithmic detail and note that it is a cursor-friendly alias are clarifying.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given. The description names the inputs (chart1, chart2) and notes it is an alias, but never says when to choose this over astroway_relational_synastry_attraction_score or astroway_relational_match_score. An agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_render_aspect_gridAspect Grid (SVG)BRead-onlyIdempotentInspect
Triangular aspect matrix: rows × columns = planets, each cell shows aspect glyph + orb. Standard textbook layout.
[Group: Visualization] [Endpoint: POST /v1/render/aspect-grid] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| svg | No | |
| format | No | |
| byteLength | No |
TDQS
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 the credit cost ('10 credits, Tier 1') and the endpoint, which is genuinely useful context the annotations do not carry. It does not mention the cheaper chart-passthrough path (1 credit) or any rendering behavior, leaving some value on the table.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short lines, with the substantive description of the output front-loaded ahead of the bracketed metadata. No wasted words, though the metadata lines could have been spent on usage guidance instead.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover the safety profile. However, for a render tool sitting among a dozen render_* siblings, the absence of any indication of when this grid is preferable to a wheel or aspect bar leaves an agent guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is a middling 67% and the description adds nothing about the three parameters — body, fields or precision — nor about options like format, theme, size or bodies. Baseline 3 is appropriate given the schema itself carries detailed nested descriptions ('A chart you already hold, drawn as is: no birth data, 1 credit').
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb+resource: it renders a triangular aspect matrix where rows/columns are planets and each cell carries an aspect glyph and orb, and it names the layout style ('standard textbook layout'). This clearly separates it from data-oriented siblings like astroway_aspects_aspect_bar or astroway_calendar_aspects, but it never explicitly contrasts itself with the other render_* visualization tools (e.g. render_wheel_western), so no positive sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives are named. An agent must infer from the name alone that this is the grid-format visualization of aspects rather than the wheel or timeline. The only supplied context is metadata (group, endpoint, cost), not usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_render_biorhythmBiorhythm (SVG)BRead-onlyIdempotentInspect
Three-curve sine plot of physical (23d), emotional (28d), and intellectual (33d) cycles since birth.
[Group: Visualization] [Endpoint: POST /v1/render/biorhythm] [Required: birthDate, rangeStart, rangeEnd] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| options | No | ||
| rangeEnd | Yes | ||
| birthDate | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| rangeStart | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| svg | No | |
| format | No | |
| byteLength | No |
TDQS
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 does add a genuinely useful behavioral fact beyond the annotations: the 10-credit Tier 1 cost, which affects invocation decisions. Endpoint and required-parameter tags, however, merely repeat the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence carrying the substance, followed by compact bracketed metadata. Nothing is padded or redundant within the prose itself. The required-params tag is slightly wasteful given the schema, but overall it is tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/endpoint are disclosed. But for a tool with six parameters, a nested options object and a non-obvious default (format defaults to 'json' while the title advertises SVG), the description does not help the agent choose the output format or theme variants, leaving meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the description compensates only by restating the three required params already in the schema. The nested options object (theme with its long css explanation, format, size, width, height) and the fields/precision compact-mode params get no coverage in the description at all, leaving a real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb-and-resource with unusual precision: 'three-curve sine plot' of the named physical/emotional/intellectual cycles with their exact periods. An agent knows exactly what artifact this produces. It does not distinguish itself from sibling render_* tools (e.g. render_timeline) by name or use case, 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.
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 mention of alternatives among the many render_* siblings. Usage is only implied by the tool name and the [Required] tag. A cost note and endpoint are present but neither tells 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_render_bi_wheelBi-Wheel (SVG)BRead-onlyIdempotentInspect
Two concentric wheels: inner natal + outer ring with transit (or progression) planets. Standard bi-wheel layout.
[Group: Visualization] [Endpoint: POST /v1/render/bi-wheel] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| svg | No | |
| format | No | |
| byteLength | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, non-destructive read, so the safety profile is covered. The description adds the endpoint and the 10-credit cost, which is useful operational context, but it omits the 1-credit pre-computed-chart path and the svg-vs-json default that materially affect how the call behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the layout described first, followed by structured metadata tags for group, endpoint, and cost. No filler; the only slight redundancy is repeating the wheel metaphor in the title and body.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover the safety profile. However, for a tool with a dual-mode input (natal birth data vs. two pre-computed charts) and a rich options object, the description leaves the agent to discover the calling modes entirely from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the nested object descriptions are exhaustive, so the schema carries the parameter burden. The description adds nothing about the birth-data vs. pre-computed-chart union, the options object, or field/precision compaction. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a concrete verb and resource ('render' a 'bi-wheel') and explains the layout: an inner natal ring plus an outer transit (or progression) ring. 'Two concentric wheels' implicitly distinguishes it from tri-wheel and single-wheel siblings, though it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over astroway_render_tri_wheel, astroway_render_composite, or astroway_render_wheel_western, nor on when a bi-wheel is the right visualization. The '(or progression)' aside hints at a use case but gives no selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_render_compositeComposite Chart (SVG)BRead-onlyIdempotentInspect
Composite-chart wheel from two natal inputs. Computes midpoint composite then renders as Western wheel.
[Group: Visualization] [Endpoint: POST /v1/render/composite] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Pair of natal charts for relationship calculations: synastry, composite, davison. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| svg | No | |
| format | No | |
| byteLength | No |
TDQS
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 the cost (10 credits, Tier 1) and the endpoint, which are genuinely useful operational facts, but says nothing about output format choice (svg vs json) or the credit being charged per render.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences carrying the core operation, followed by terse bracketed metadata. Front-loaded and free of filler, though the bracketed tags add length without much descriptive value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and 100% schema coverage, the description need not explain returns. However, for a rendering tool with an option-heavy schema (theme, size, labels, format) it omits any hint about output form or that a two-chart input pair is required, leaving the agent to infer from the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with rich prose on chart1/chart2, timezone, houseSystem, theme and fields, so the schema does the heavy lifting. The description adds no parameter-level meaning beyond that, which makes the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Computes midpoint composite then renders as Western wheel' from 'two natal inputs'. This distinguishes it from single-chart siblings like astroway_render_wheel_western and from astroway_render_bi_wheel, though it never names any sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this over alternatives such as the Davison or synastry variants, and no prerequisites or preconditions. The only routing signal is the '[Group: Visualization]' tag, which is implied rather than stated guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_render_cosmogramCosmogram: Hamburg School 90° dial (SVG)BRead-onlyIdempotentInspect
Cosmobiology 90° dial. Plots planets at (longitude mod 90)° across 4 quadrants, Cardinal/Fixed/Mutable repeated.
[Group: Visualization] [Endpoint: POST /v1/render/cosmogram] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| svg | No | |
| format | No | |
| byteLength | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, non-destructive read, so the safety profile needs no restating. The description adds a credit price (10 credits, Tier 1) and the mod-90 projection math, which are genuine extras, but it says nothing about whether the default output is JSON or SVG despite the title advertising SVG.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense, front-loaded sentence carries the domain definition, followed by three short bracketed metadata lines. Zero filler, though the endpoint string duplicates what the transport layer already knows.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the deep birth-data schema is fully annotated, so little is owed on params or returns. The gaps are the missing format default (the title implies SVG while the schema defaults to json) and the absence of any routing versus the ten other render_* siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (birth data, timezone/timezoneOffset behavior, houseSystem letters, options.theme, fields/precision all documented in the schema), so the baseline is 3. The description contributes no parameter meaning of its own.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action ("Plots planets at (longitude mod 90)° across 4 quadrants") on a named resource (Cosmobiology 90° dial / Hamburg School cosmogram), which is clearly distinct from wheel_western or bi_wheel. However it never names a sibling or says what makes this the right chart versus the other render_* tools, so differentiation is by domain knowledge only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative routing anywhere in the text. The bracketed group/endpoint/cost lines are metadata, not guidance, so an agent has to infer from the tool name alone when a 90° dial is the intended output.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_render_eclipse_pathEclipse Path Map (SVG)CRead-onlyIdempotentInspect
Equirectangular world graticule with caller-supplied eclipse track. Renders centerline + shaded band of given degree-width.
[Group: Visualization] [Endpoint: POST /v1/render/eclipse-path] [Required: path] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| title | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| options | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| bandWidthDeg | No | ||
| centerlinePoints | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| svg | No | |
| format | No | |
| byteLength | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, non-destructive read, so the safety profile is covered. The description adds genuinely useful context beyond that: the 10-credit Tier 1 cost and the fact that the caller must supply the eclipse track themselves. It does not address output form or the interaction between path and centerlinePoints, so it is moderate rather than rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences followed by compact bracketed metadata; the core behavior is front-loaded and nothing is padded. The metadata block is dense but skimmable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter nested tool with 29% schema coverage, the description is thin. An output schema exists so return values need not be explained, but key semantics — how `path` relates to `centerlinePoints`, what `options.theme`/`format` control, and the compact-mode fields/precision flags — are left undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 29% across 7 parameters, so the description must carry more weight than it does. It gestures at `path` ('caller-supplied eclipse track') and `bandWidthDeg` ('band of given degree-width') but leaves `centerlinePoints`, `title`, `fields`, `precision`, and the whole `options` object unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Renders') and resource ('centerline + shaded band' on an 'equirectangular world graticule'), making it clear this produces an eclipse-track map. It does not explicitly differentiate itself from siblings like astroway_render_star_map or astroway_geo_eclipse_analysis, but the eclipse-track framing is distinctive enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no alternatives. The bracketed metadata only lists the required parameter, endpoint and cost, which is operational data 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_render_moon_phaseMoon Phase (SVG)BRead-onlyIdempotentInspect
Render the moon disk with its illuminated fraction at the given moment. Returns SVG plus illumination metrics.
[Group: Visualization] [Endpoint: POST /v1/render/moon-phase] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| svg | No | |
| phase | No | |
| waxing | No | |
| elongationDeg | No | |
| illuminationFraction | No |
TDQS
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 the cost tier (10 credits) and endpoint, which are genuinely useful behavioral facts not in the annotations, but says nothing about rate limits, error modes, or rendering latency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight, front-loaded sentences followed by compact metadata lines. Nothing is padded, though the [Group]/[Endpoint]/[Cost] block is boilerplate rather than tool-specific guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and annotations carry the safety profile. The remaining gap is that the description says it "Returns SVG" while the format option defaults to json, a discrepancy an agent may trip over, and it omits any sibling differentiation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the nested body/options objects are thoroughly documented in-schema (timezone, ayanamsa, houseSystem letters, format default, etc.). The description adds nothing beyond "at the given moment," so the schema does all the work — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Render the moon disk with its illuminated fraction at the given moment") and names the outputs. However it never distinguishes itself from close siblings such as astroway_calendar_moon_phase (data) or other astroway_render_* tools, leaving the agent to infer that this is the image-producing variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use statement, no prerequisites, and no mention of alternatives despite a large sibling set that includes a moon-phase calendar tool. The agent gets no routing guidance beyond the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_render_star_mapStar Map (SVG)CRead-onlyIdempotentInspect
Stereographic projection of caller-supplied points (RA/Dec). Handles brightness magnitude scaling and labels.
[Group: Visualization] [Endpoint: POST /v1/render/star-map] [Required: points] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| points | Yes | ||
| options | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| zenithDecDeg | No | ||
| capAltitudeDeg | No | ||
| observerLatDeg | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| svg | No | |
| format | No | |
| byteLength | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so safety is covered. The description adds real value beyond that: brightness magnitude scaling, label handling, and the cost/endpoint lines. It stays silent, however, on output shape and on the fact that the options.format enum defaults to 'json' despite the SVG title.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the projection method front-loaded, followed by a compact bracketed metadata block. Every element is short and none is redundant padding, though the endpoint line duplicates information the platform likely already carries.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter tool with nested objects and a low description coverage rate, this is thin: observer position and altitude-cap parameters that materially change the rendering are never mentioned, nor is compact mode (fields/precision). The existing output schema does relieve it of explaining return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 8 parameters and only 25% schema description coverage, the description must compensate and largely does not. It maps loosely to the point fields (RA/Dec, magnitude), but observerLatDeg, zenithDecDeg, capAltitudeDeg, precision, and the whole nested options object (theme, size, format, showAspects) receive no explanation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific rendering operation ('Stereographic projection of caller-supplied points (RA/Dec)') plus the two rendering behaviors it implements (magnitude scaling, labels). It clearly identifies the resource and method, but does not differentiate itself from the many render_* siblings (cosmogram, eclipse_path, bi_wheel, etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, no prerequisites, and no exclusions. The '[Required: points]' and '[Cost: 10 credits]' lines are operational metadata, not usage guidance, so an agent gets no help deciding between this and sibling renderers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_render_timelineTimeline (SVG)BRead-onlyIdempotentInspect
Gantt-style horizontal timeline of transit/aspect events over a date window. Caller supplies events array.
[Group: Visualization] [Endpoint: POST /v1/render/timeline] [Required: rangeStart, rangeEnd, events] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| events | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| options | No | ||
| rangeEnd | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| rangeStart | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| svg | No | |
| format | No | |
| byteLength | No |
TDQS
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 and the bar is lower. The description usefully adds operational context (endpoint, 10-credit cost, required fields), but does not disclose the default output format, rendering behavior, or rate/limit considerations beyond the credit line.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose sentence, then uses bracketed metadata for group, endpoint, required params and cost. Every line earns its place with no padding, though the metadata block is fairly terse relative to what the tool actually needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. Still, for a 6-parameter tool with a nested events array and an options object, the description leaves the semantics of nearly half the surface undocumented, making it only minimally complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description is expected to compensate, yet it mentions only that the caller supplies the events array. It says nothing about the events item structure (label/start/end/exact/color/category), the date-window relationship between rangeStart/rangeEnd and each event, or the options object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: rendering a 'Gantt-style horizontal timeline of transit/aspect events over a date window', which clearly conveys what the tool produces. It does not, however, distinguish itself from the nearby sibling astroway_aspects_aspect_timeline, leaving the agent to guess which timeline tool applies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Caller supplies events array' implies this is a pure rendering utility rather than a computation tool, which is useful context. But there is no explicit when-to-use/when-not guidance and no routing to alternatives such as astroway_aspects_aspect_timeline or the other render_* tools, so 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_render_tri_wheelTri-Wheel (SVG)ARead-onlyIdempotentInspect
Three concentric wheels: natal + progressed + transit. Used for advanced forecasting visuals.
[Group: Visualization] [Endpoint: POST /v1/render/tri-wheel] [Required: natal, middle, outer] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| natal | Yes | Birth 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. | |
| outer | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| middle | Yes | Birth 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. | |
| options | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| svg | No | |
| format | No | |
| byteLength | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/destructive=false, so the safety profile is covered. The description adds genuinely useful operational context (endpoint, 10-credit Tier 1 cost, required inputs), but says nothing about output format or that the schema's format field defaults to json despite the 'SVG' title.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core sentence, then structured bracketed metadata (group, endpoint, required, cost) that an agent can scan quickly. No wasted prose; only the bracketed cost/endpoint lines are non-essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a render tool backed by a detailed nested schema, existing output schema, and full annotations, the description supplies the remaining essentials: what it draws, the wheel mapping, required inputs, and cost. Complete enough to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 83% schema coverage the schema does most of the work, but the description adds real meaning by mapping the abstract param names: middle = progressed, outer = transit, and natal = natal. That mapping is not derivable from the schema property names alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource (renders a tri-wheel) and specifies composition: 'Three concentric wheels: natal + progressed + transit.' It naturally distinguishes itself from two-wheel/cosmogram siblings via 'three concentric' and 'advanced forecasting,' though it never names a sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Used for advanced forecasting visuals' implies a use context but gives no when-to-use, no when-not-to-use, and no pointer to alternatives like astroway_render_bi_wheel or astroway_render_wheel_western. Adequate minimum, clear gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_render_wheel_vedic_eastVedic Wheel: East Indian (SVG)BRead-onlyIdempotentInspect
East Indian (Bengali) layout: square with diagonals + inner rotated square forming 12 sectors.
[Group: Visualization] [Endpoint: POST /v1/render/wheel-vedic-east] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| svg | No | |
| format | No | |
| byteLength | No |
TDQS
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 and the description does not contradict it. The description adds genuine non-annotation behavior in the credit cost (10 credits, Tier 1) and the POST endpoint, but says nothing about auth requirements, rate limits, or that output can be SVG or JSON per the format option.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The substantive sentence is front-loaded and zero-waste, and the metadata block is compact and scannable. It is arguably too terse rather than bloated, but nothing in it is redundant with the structured fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a render tool with a large options object (theme, size, labels, bodies, format) and two near-identical siblings (vedic_north, vedic_south), the most important missing context is how to choose among the three Indian layout variants. The output schema excuses it from explaining return values and cost is given, but the selection-critical gap against its siblings is left entirely to the reader.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the body, fields, precision, timezone, ayanamsa and label options in detail. The description adds no parameter meaning beyond what the schema provides, which is the baseline-3 case when structured fields do the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific layout variant (East Indian/Bengali, square with diagonals plus an inner rotated square forming 12 sectors), which is the one thing that visually separates it from the vedic_north and vedic_south siblings. It never states the verb ('render a chart wheel') explicitly, but the tool name and title carry that, so the combined signal is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 to pick this when the user asks for an East Indian/Bengali style chart, and no alternative (vedic_north, vedic_south, western wheel) is named or contrasted. The only routing context is the [Group: Visualization] tag, which is structural rather than advisory.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_render_wheel_vedic_northVedic Wheel: North Indian (SVG)BRead-onlyIdempotentInspect
North Indian diamond chart layout: 12 fixed positions, signs rotate per ascendant. Standard BPHS rendering.
[Group: Visualization] [Endpoint: POST /v1/render/wheel-vedic-north] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| svg | No | |
| format | No | |
| byteLength | No |
TDQS
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 non-schema context: the cost (10 credits, Tier 1) and the POST endpoint. It does not disclose anything about output delivery or size limits beyond what the schema carries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences lead with the distinguishing layout traits, followed by compact metadata tags for group, endpoint, and cost. Nothing is padded, though the metadata lines are boilerplate rather than explanatory prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 owed here, and the annotations cover the safety profile. The description supplies the chart-style identity and the cost/endpoint context an agent needs before calling; only sibling-selection guidance is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested body/options parameters are thoroughly documented in the schema itself. The description adds no parameter-level meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (North Indian diamond chart wheel) and its defining traits: 12 fixed positions, signs rotating per ascendant, BPHS standard. This distinguishes it from the sibling Vedic east/south wheels without naming them. A clear verb is absent, but 'rendering' plus the endpoint tag makes the action unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no routing to the alternatives it sits beside (astroway_render_wheel_vedic_east, astroway_render_wheel_vedic_south). The layout description implies a stylistic choice, but the agent must infer that North vs South vs East is a convention preference rather than getting an explicit rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_render_wheel_vedic_southVedic Wheel: South Indian (SVG)BRead-onlyIdempotentInspect
South Indian 4×4 grid layout (Pisces top-left, signs fixed). House numbers placed where lagna sign falls.
[Group: Visualization] [Endpoint: POST /v1/render/wheel-vedic-south] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| svg | No | |
| format | No | |
| byteLength | No |
TDQS
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 behavioral context beyond that — the credit cost (10 credits, Tier 1), the endpoint, and the visualization group — but says nothing about rendering constraints, the svg-vs-json default, or output size behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences that state the layout and the house-numbering rule, followed by a compact bracketed metadata block. Nothing is padded, though the endpoint line duplicates information already implied by the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 parameter surface is fully documented in the schema. The remaining gap is routing: nothing tells the agent when this South Indian wheel is the right choice versus its north/east siblings, which is the main decision an agent faces here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the birth-data body, fields, and precision all documented in the schema itself, so the baseline of 3 applies. The description adds no parameter-level meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource (render a Vedic wheel) and pins down the exact layout convention that defines the 'South Indian' variant — 4x4 grid, Pisces top-left, fixed signs, house numbers at the lagna sign. That layout detail is what separates it from astroway_render_wheel_vedic_north and _east, though those siblings are never named, so the differentiation is implicit rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this wheel over the north/east Vedic variants or the Western wheel, and no prerequisites or context for use. The layout sentence implies a use case but the agent is left to infer which chart style the user wants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_render_wheel_westernWestern Wheel (SVG)BRead-onlyIdempotentInspect
Render a Western natal wheel as SVG: signs ring, houses ring, planets, aspect lines. Pure server-side, no browser needed.
[Group: Visualization] [Endpoint: POST /v1/render/wheel-western] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| svg | No | |
| format | No | |
| byteLength | No |
TDQS
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 usefully adds that rendering is 'pure server-side, no browser needed' and the 10-credit Tier 1 cost, but omits that supplying a pre-computed chart instead of birth data drops the cost to 1 credit (only in the schema).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the rendering purpose front-loaded, followed by a compact bracketed metadata block. Nothing is padded or duplicated, though the metadata block is slightly less critical than the core sentence it follows.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry the safety profile. The description covers purpose, delivery mechanism and cost; the two-mode input (birth data vs pre-computed chart) is left to the schema, which handles it well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% and the schema is very rich (validation rules, timezone/ayanamsa semantics, house system notes, labels/theme docs). The description adds no parameter-level meaning at all, so it neither compensates for the coverage gap nor earns credit over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Render) and resource (Western natal wheel) and enumerates the rendered content (signs ring, houses ring, planets, aspect lines). The 'Western natal' qualifier implicitly separates it from the Vedic wheels and from bi/tri-wheel and composite siblings, but 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.
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 mention of sibling renderers (vedic wheels, bi-wheel, aspect grid). The only contextual lines are metadata (group, endpoint, credit cost), which do not help an agent choose between tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_ai_monthly_narrativeAI Monthly NarrativeAInspect
Single-month forecast. Tighter scope than year-ahead: uses fast and slow planet transits within the month. Inputs: chart, year, month (1-12), language, tone, length.
[Group: AI Reports] [Endpoint: POST /v1/reports/ai/monthly-narrative] [Required: chart, year, month] [Cost: 250 credits (Tier 5)] ⚠️ Heavy — confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| tone | No | warm | |
| year | Yes | ||
| chart | Yes | Birth 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. | |
| month | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| length | No | medium | |
| language | No | uk | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | No | |
| tokens | No | |
| narrative | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, idempotent=false, destructive=false, openWorld=true, so the safety profile is covered. The description adds material behavioral context beyond that: the 250-credit Tier 5 cost and the requirement to confirm with the user first, which is genuinely decision-relevant. It does not describe side effects or result handling, keeping 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded, then structured metadata lines (group, endpoint, required, cost) carry the rest with no filler. Every line earns its place, though the bracketed tag block is somewhat boilerplate rather than prose that aids selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not explain return values, and it covers purpose, required inputs, cost and a confirmation warning. The main gap is that two optional parameters (fields, precision) and the tone/length/language semantics 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38%, so the description is expected to compensate. It lists chart, year, month, language, tone and length as inputs but adds meaning only for month ('1-12'), leaving fields and precision unmentioned and tone/length/language values unexplained. This is minimum-viable, not compensating for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete resource ('single-month forecast') and explicitly scopes it ('uses fast and slow planet transits within the month'), which lets an agent separate it from the year-ahead sibling. The verb is implicit rather than stated ('generate a narrative'), but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly contrasts scope with the year-ahead sibling ('Tighter scope than year-ahead'), giving a selection cue, and adds a strong operational directive: 'Heavy — confirm with user before invoking' at Tier 5 / 250 credits. No exclusion rules against the natal/synastry/transit narrative siblings are given, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_ai_natal_narrativeAI Natal NarrativeAInspect
Long-form natal-chart narrative (markdown). Inputs: chart, language (21 codes), tone (warm/professional/concise), length (short/medium/long; ≤3200 tokens). Returns the narrative text plus model and token usage. AI grounded on the computed natal chart: Sun/Moon/Asc, 13 bodies, 12 houses, ≤25 major aspects.
[Group: AI Reports] [Endpoint: POST /v1/reports/ai/natal-narrative] [Required: chart] [Cost: 250 credits (Tier 5)] ⚠️ Heavy — confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| tone | No | warm | |
| chart | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| length | No | medium | |
| language | No | uk | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tone | No | |
| model | No | |
| length | No | |
| tokens | No | |
| language | No | |
| narrative | No | |
| disclaimer | No | |
| duration_ms | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose openWorld/not-idempotent/not-read-only behavior, and the description adds value beyond them: the exact credit cost, the heavy/confirm-first warning, the output shape (narrative text plus model and token usage), and the ≤3200-token length cap. The grounding scope (Sun/Moon/Asc, 13 bodies, 12 houses, ≤25 aspects) is genuinely informative behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then inputs, then return values, then a bracketed metadata block. Every line carries information (group, endpoint, required, cost). Slightly dense but no wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 fully enumerated, yet the description still notes them briefly. Required param, cost/tier, grounding detail, and token budget round out what an agent needs. The only shortfall is that fields/precision semantics 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%, so the description must compensate. It covers chart, language ('21 codes'), tone (warm/professional/concise) and length (short/medium/long; ≤3200 tokens), which is useful. However, it omits meaning for the compact-mode params fields and precision, which the schema carries, leaving a partial gap. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Long-form natal-chart narrative (markdown)' grounded on a computed natal chart. This clearly separates it from the AI monthly/synastry/transit/year-ahead narrative siblings. It does not, however, explicitly contrast with astroway_reports_natal or astroway_ai_interpret_natal, so sibling differentiation is incomplete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The metadata block gives a crucial usage cue: 'Cost: 250 credits (Tier 5)' and 'Heavy — confirm with user before invoking.' That is real when-to-invoke guidance. But there is no explicit routing against alternatives (e.g., when to prefer the non-AI reports_natal or a shorter narrative variant), so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_ai_synastry_narrativeAI Synastry NarrativeAInspect
Long-form relationship narrative grounded in cross-chart aspects. Inputs: chart1, chart2, language, tone, length.
[Group: AI Reports] [Endpoint: POST /v1/reports/ai/synastry-narrative] [Required: chart1, chart2] [Cost: 250 credits (Tier 5)] ⚠️ Heavy — confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| tone | No | warm | |
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| length | No | medium | |
| language | No | uk | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | No | |
| tokens | No | |
| narrative | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the mutation/regeneration profile is partly covered. The description adds material context the annotations do not: cost of 250 credits at Tier 5, the 'Heavy' flag, and the explicit instruction to confirm with the user first, which is exactly the kind of operational disclosure 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence gives the purpose, followed by a compact bracketed metadata block (group, endpoint, required, cost). No wasted prose, though the metadata is appended rather than integrated into the prose flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. Required parameters, cost, heavy-invocation warning, and endpoint are all present, giving an agent everything needed to decide and call correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 57%, and the description only enumerates chart1, chart2, language, tone, length by name without adding format, defaults, or semantic meaning. The nested chart-object details live entirely in the schema, so the description does not compensate for the coverage gap but the enumeration is a marginal help. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific output (long-form relationship narrative) with its basis (cross-chart aspects), which distinguishes it from the natal/transit/monthly/year-ahead narrative siblings. It does not, however, explicitly contrast itself with the closely-related astroway_reports_synastry or astroway_ai_interpret_synastry tools, so the agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'Heavy — confirm with user before invoking' warning plus the 250-credit cost is genuine usage guidance and the required params are listed. But there is no explicit when-to-use-vs-alternative routing (e.g. why this over astroway_ai_interpret_synastry), leaving the selection rationale implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_ai_transit_narrativeAI Transit Narrative (single date)BInspect
Snapshot transit interpretation for a specific date. Inputs: chart + transitDate (+optional transitTime/tzOffset), language, tone, length. Returns narrative grounded in transit-to-natal aspects (orb ≤1°).
[Group: AI Reports] [Endpoint: POST /v1/reports/ai/transit-narrative] [Cost: 250 credits (Tier 5)] ⚠️ Heavy — confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| model | No | |
| tokens | No | |
| narrative | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false/openWorldHint=true/idempotentHint=false, and the description adds genuinely useful behavioral context: it is a POST endpoint, costs 250 credits (Tier 5), and is flagged heavy enough to require user confirmation. It does not cover auth or rate limits, but the cost/confirmation disclosure is real added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose in the first sentence, then inputs and output basis, with metadata lines clearly separated. Efficient with little waste, though the input listing is both inaccurate and space-consuming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return-value explanation is unnecessary, and the cost/heaviness warning is present. But the parameter-description mismatch leaves the agent unable to reliably map inputs, which is a meaningful completeness gap for an 8-param tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists inputs 'chart + transitDate (+optional transitTime/tzOffset), language, tone, length', but the schema exposes date, time, fields, ayanamsa, ayanamsaId, timezone, timezoneOffset, precision. Several named inputs (chart, language, tone, length) do not exist, and the actual compaction params (fields, precision, ayanamsa) are ignored — the description misleads rather than supplements the 63%-documented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Snapshot transit interpretation for a specific date' returning a narrative. The 'single date' scope implicitly distinguishes it from monthly/year-ahead narrative siblings, but no sibling is named explicitly, so differentiation relies on inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Conveys when this applies (a single-date transit reading) and adds a critical 'confirm with user before invoking' warning tied to the 250-credit cost. However, it never explicitly contrasts against the many transit/report siblings (e.g. astroway_ai_interpret_transits, astroway_reports_transit_yearly), leaving alternative selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_ai_year_ahead_narrativeAI Year-Ahead NarrativeAInspect
Long-form annual report. Combines natal context with the year's major outer-planet transits clustered by month. Inputs: chart, year (default = next year), language, tone, length (use long for full annual report).
[Group: AI Reports] [Endpoint: POST /v1/reports/ai/year-ahead-narrative] [Required: chart] [Cost: 250 credits (Tier 5)] ⚠️ Heavy — confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| tone | No | warm | |
| year | No | ||
| chart | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| length | No | medium | |
| language | No | uk | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | No | |
| tokens | No | |
| narrative | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false. The description adds genuinely novel behavioral context the annotations lack: a 250-credit Tier 5 cost and an explicit instruction to confirm with the user before invoking. It does not describe output size/latency, but the cost disclosure is the key operational trait.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose sentence, then inputs, then bracketed metadata for group/endpoint/required/cost. Every line carries information; no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists, return format needn't be explained, and the description covers the core intent, required input, cost, and a key default. The only gap is sibling differentiation and fuller parameter coverage for a 7-param tool with a nested chart object.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 43%, so the description should compensate more than it does. It names most key inputs and adds real semantics not in the schema ('year default = next year', 'use long for full annual report'), but leaves fields and precision unexplained. It adds moderate value over the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: a long-form annual report that combines natal context with the year's major outer-planet transits clustered by month. It is clearly distinct from the monthly/transit/synastry narrative siblings by scope, though it never names the alternative it differs from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides useful invocation guidance ('use long for full annual report') and a strong cost warning ('Heavy — confirm with user before invoking'), which shapes when to call it. However, it never contrasts this tool with the nearby alternatives (monthly narrative, transit narrative, transit_yearly), so selection among siblings 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_reports_businessGenerate Business Astrology Report (PDF or HTML)AInspect
Founding-chart analysis (mundane astrology). Highlights Sun (purpose), MC (reputation), Jupiter (growth), Saturn (structure). Disclaimer: "not financial advice".
[Group: Reports] [Endpoint: POST /v1/reports/business] [Required: chart] [Cost: 5,000 credits (Tier 7)] ⚠️ Premium — ~50% of free monthly budget. Confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| chart | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| whitelabel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare this is a non-read-only, non-idempotent, open-world operation, and the description adds genuinely new behavioral context beyond that: a premium per-call cost, an explicit instruction to confirm before invoking, and a 'not financial advice' disclaimer that signals the report's liability scope. It does not cover async/PDF delivery timing or credit-refund behavior on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact statements: what the report analyzes, what it highlights, and the disclaimer, followed by a bracketed metadata block with endpoint, required param, and cost. Front-loaded and free of filler, though the planetary parenthetical list is slightly dense relative to the rest.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. For what remains — the expensive, confirm-first nature of the call, the required chart input, the endpoint, and the scope limitation implied by the disclaimer — the definition is complete. An agent has everything it needs to decide and invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60% and the nested chart object carries very rich inline documentation (date/time formats, timezone handling, houseSystem letters), so the schema does the heavy lifting. The description adds no parameter information at all — notably nothing about language, whitelabel branding, or the compact-mode fields/precision options — so it neither compensates for the uncovered 40% nor adds beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete deliverable (a founding-chart business astrology report) and enumerates the content it emphasizes (Sun/purpose, MC/reputation, Jupiter/growth, Saturn/structure), which distinguishes it from the many astroway_business_* analysis tools that compute raw factors rather than a report. It never states the output medium (PDF or HTML) in the body text — that only appears in the title — and states no verb, so it is clear but slightly implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The bracketed cost line gives real usage guidance: 5,000 credits / Tier 7, roughly half the free monthly budget, confirm with the user first. That is the strongest routing signal here. However there is no guidance on when to pick this report over sibling reports (business_founding_chart, reports_career, reports_money) or what input conditions make it appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_careerGenerate Career Compass Report (PDF or HTML)AInspect
Career-themed natal: MC, 10th-house cusp, Saturn placement, Mars motivation, aspects to Sun. Self-knowledge tool, not directive.
[Group: Reports] [Endpoint: POST /v1/reports/career] [Required: chart] [Cost: 5,000 credits (Tier 7)] ⚠️ Premium — ~50% of free monthly budget. Confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| chart | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| whitelabel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare it is a non-read-only, non-idempotent, open-world write, but add nothing about cost or approval. The description fills exactly that gap with a precise price (5,000 credits, Tier 7), a relative-budget warning (~50% of free monthly budget) and an explicit user-confirmation requirement. It does not describe latency or what the returned artifact looks like, but the output schema covers the latter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the substantive content list in the first sentence, then a scannable metadata block with group, endpoint, required param and cost. Every element earns its place; the only slight redundancy is restating the required parameter that the schema enforces.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paid generative report tool with an output schema, the description supplies the pieces an agent cannot infer: cost tier, budget impact, approval requirement, and the report's thematic scope. The remaining gap is sibling routing (natal vs career vs money reports), which matters given the large reports_* family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description only repeats the required-parameter fact ('Required: chart'), which the schema already enforces, and says nothing about fields, language, precision or whitelabel. With schema coverage at 60% and rich nested chart documentation in the schema, the description neither adds meaning nor compensates for the undocumented half; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (career-themed natal report) and enumerates the astrological content it covers (MC, 10th-house cusp, Saturn, Mars, aspects to Sun), which clearly separates it from reports_natal, reports_money or reports_love. It never states the verb explicitly in the description body (the title carries 'Generate ... PDF or HTML'), but the intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a framing constraint ('Self-knowledge tool, not directive') and a strong invocation precondition (confirm with user before invoking due to cost). However it never says when to choose this over sibling report tools such as astroway_reports_natal or astroway_reports_generate, so routing among the many report siblings 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_reports_childGenerate Child Astrology Report (PDF or HTML)AInspect
Parenting-oriented natal report. Highlights Moon (emotional core), Mercury (learning style), Venus (connection style), Mars (energy/temperament). Includes full natal data and a disclaimer noting interpretive nature.
[Group: Reports] [Endpoint: POST /v1/reports/child] [Required: chart] [Cost: 5,000 credits (Tier 7)] ⚠️ Premium — ~50% of free monthly budget. Confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| chart | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| whitelabel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the non-read-only, non-idempotent, open-world profile, so the description's job is to add what they cannot. It does that well by disclosing the credit cost, the tier, the share of a free monthly budget, and the requirement to confirm before calling — genuinely decision-relevant behavior. It stops short of billing failure modes or auth expectations, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the report's identity and content before the bracketed metadata block, and every line carries information (group, endpoint, required input, cost). The emoji/warning formatting is dense but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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; the description fills the remaining high-stakes gap (cost, confirmation, content scope). It is slightly incomplete in that the advertised output formats and the choice against sibling report tools are never addressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description says nothing about any of the five parameters (chart, fields, language, precision, whitelabel); schema coverage is a middling 60%, with language and parts of whitelabel carrying no textual description in the schema either. The one concrete hint, 'PDF or HTML' in the title, maps to no parameter at all, so the description 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the artifact ('Parenting-oriented natal report') and enumerates its distinguishing content (Moon, Mercury, Venus, Mars interpretations), which tells an agent this is the child-focused report rather than a generic one. It does not, however, explicitly distinguish itself from close siblings such as astroway_reports_natal or astroway_reports_generate, leaving the agent to infer that distinction from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The block supplies an invocation precondition — a 5,000-credit Tier 7 cost with an explicit 'Confirm with user before invoking' instruction — which is real usage guidance. But it never states when to choose this report over the numerous alternative report siblings (natal, business, career, synastry), so alternative selection is only implied by the 'child/parenting' framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_gemstoneGenerate Gemstone Report (PDF or HTML)AInspect
The ratna prescription as a multi-page A4 PDF (default) or live HTML (add ?format=html). Same astrology as POST /vedic/gemstones, and pinned by a test to never disagree with it: same sidereal lagna, same two schools, same three gems. What the document adds is what a table cannot carry. Every recommended gem gets a page: what the graha it belongs to signifies classically, the basis in house ownership, mineral and substitutes, weight in ratti with gram and carat conversions, weekday, finger, metal, mantra and japa count, and the next auspicious day to first wear it, found by scanning th…
[Group: Reports] [Endpoint: POST /v1/reports/gemstone] [Required: chart] [Cost: 5,000 credits (Tier 7)] ⚠️ Premium — ~50% of free monthly budget. Confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| chart | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| school | No | ||
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| whitelabel | No | ||
| wearingFrom | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), so the bar is lower. The description still adds real behavioral context: the document is pinned by a test to never disagree with the JSON endpoint, and it enumerates exactly what each page carries, including the auspicious first-wear day found by scanning. It omits cost/credit behavior and any storage or retrieval detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The output format and the sibling relationship are front-loaded, and the subsequent inventory of document contents is genuinely informative rather than filler. There is some flourish ('What the document adds is what a table cannot carry'), and the enumeration is long, which keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 instead covers document composition, the determinism guarantee, and the format switch. For a 7-parameter premium report tool it is largely complete, though it says nothing about the drawing-down of credits or the unmentioned localisation/whitelabel options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at 43%, the description is expected to compensate, and it does add meaning for some parameters: 'same two schools' clarifies the `school` enum, and the 'next auspicious day to first wear it' scan relates to `wearingFrom`. However, `language`, `whitelabel`, `fields` and `precision` are never addressed, so the compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource (the ratna/gemstone prescription) and output form (multi-page A4 PDF by default, HTML with `?format=html`), and explicitly distinguishes it from the data sibling by stating it carries the same astrology as `POST /vedic/gemstones` but adds what a table cannot. The opening is a noun phrase rather than an explicit 'generate' verb, and it does not distinguish itself from other report siblings, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The relationship to `POST /vedic/gemstones` is stated (same result, richer document), which implies when to prefer this tool, but no explicit when-to-use/when-not-to-use rule is given. The premium cost and 'confirm with user' caution live in context signals, not the description text, so routing guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_generateGenerate Report: Unified Dispatcher (V2)AInspect
Single endpoint over the 12 type-specific renderers: pass report_type ("natal" | "transit-yearly" | "synastry" | "business" | "career" | "love" | "money" | "child" | "lal-kitab" | "human-design" | "tarot" | "vedic-kundli") plus the renderer-specific inputs. SDK ergonomics: one method instead of 12. Required fields vary by type: chart for most, chart1+chart2 for synastry, seed for tarot (chart optional).
[Group: Reports] [Endpoint: POST /v1/reports/generate] [Required: report_type] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| seed | No | ||
| year | No | ||
| chart | No | Birth 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. | |
| depth | No | `extended` (10000 credits) adds the chart wheel and a chapter for each of Sun to Pluto, Chiron and the Ascendant in its sign, from edited texts with no AI at request time. Available in the 20 languages of `/v1/natal-texts`. | |
| chart1 | No | Birth 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. | |
| chart2 | No | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| spread | No | ||
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| whitelabel | No | ||
| report_type | Yes | ||
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the behavior profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=true), so the bar is lower. The description adds cost context ('10 credits (Tier 1)') and how inputs vary, but says nothing about generation latency, what resource is produced, or auth needs. It is accurate and non-contradictory but adds only modest behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the dispatch purpose, then the type enum, then the required-field rules; every sentence carries signal. The full report_type enum is duplicated from the schema and the bracketed metadata lines add some clutter, keeping it just short of maximally tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an existing output schema (returns need no explanation) and annotations covering the safety profile, the description is complete on the core dispatch mechanism and the per-type input requirements, which is what an agent needs to invoke it. It leaves the numerous optional parameters (depth/extended pricing, whitelabel, language, fields, precision) to the schema, which is acceptable but not exhaustive for a 14-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 43%, so the description must compensate, and it does so for the critical part: the JSON schema marks only report_type as required, whereas the description supplies the conditional requirements (chart for most types, chart1+chart2 for synastry, seed with optional chart for tarot). This is genuine information the schema cannot express, though it does not describe the optional controls (depth, whitelabel, language, precision).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Generate Report'), declares the scope ('Single endpoint over the 12 type-specific renderers'), and enumerates all 12 report_type values. This lets an agent immediately distinguish it from the per-type sibling tools (astroway_reports_natal, astroway_reports_synastry, etc.) as the unified dispatcher.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly frames the dispatch model ('pass report_type plus the renderer-specific inputs', 'one method instead of 12') and gives the required inputs per type (chart for most, chart1+chart2 for synastry, seed for tarot). It stops short of explicitly naming when to prefer this over an individual per-type renderer endpoint or stating exclusions, so it is context-rich but not fully prescriptive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_historyList Recent Report ExportsAInspect
List the calling key's most recently generated PDF reports: type, byte size, page count, language, created/expiry timestamps and a url. Re-fetch a report link while it lives (24 h, or the retain_days the report was made with), or surface recent exports in a dashboard. PDFs are purged after 24h, so older items return expired: true with a now-dead URL. Free to call. Query ?limit= (1–50, default 10).
[Group: Reports] [Endpoint: GET /v1/reports/history] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations declare readOnlyHint=false and idempotentHint=false, but the description (matching the GET /v1/reports/history endpoint) presents a read-only, repeatable listing — 'List...', 'Re-fetch a report link', 'Free to call'. The description's implied read-only, idempotent profile directly contradicts those two annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose in the first sentence, then layers on lifecycle, cost, and pagination. Dense but every sentence earns its place; only slightly long for a two-optional-param listing call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 restated, and the description covers the non-obvious operational facts: 24h purge, `expired: true` with now-dead URLs, `retain_days`, cost, and the limit range. Minor gap: it never mentions the compact-mode `fields`/`precision` behavior present in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 `fields` and `precision`; the baseline is 3. The description adds a `?limit=` (1–50, default 10) param that is absent from the schema, but says nothing about the two compact-mode params that are actually in the schema, so it neither compensates nor explains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and a precisely scoped resource (the calling key's most recently generated PDF reports) and even enumerates the returned fields (type, size, page count, language, timestamps, url). Among the many reports_* and render_* siblings, it is immediately identifiable as the export-history listing tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives two concrete use cases (re-fetch a report link while it lives, or surface recent exports in a dashboard) and the retention condition that governs validity. It does not name or exclude a sibling (e.g., the reports_generate tools), so the routing guidance is clear but not complete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_human_designGenerate Human Design Report (PDF or HTML)AInspect
Bodygraph PDF: Type, Strategy, Authority, Profile, Definition, Not-Self theme, Incarnation Cross + 9 centers (defined/open) + activated channels with gate pairs.
[Group: Reports] [Endpoint: POST /v1/reports/human-design] [Required: chart] [Cost: 5,000 credits (Tier 7)] ⚠️ Premium — ~50% of free monthly budget. Confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| chart | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| whitelabel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the write/idempotency profile (readOnlyHint=false, idempotentHint=false, openWorldHint=true). The description adds context annotations cannot carry: the 5,000-credit Tier 7 cost, its share of the free budget, and the instruction to confirm with the user — meaningful for an expensive, non-idempotent generation call. It still says nothing about what is produced (URL, bytes, storage).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the content inventory, followed by compact bracketed metadata for group, endpoint, required param and cost. Little waste, though the bracketed block partially restates what structured fields already convey.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the cost/confirmation guidance is the most important missing piece — it is covered. But a tool taking whitelabel, language and compact fields produces a document whose format is only implied ('Bodygraph PDF' vs the title's 'PDF or HTML'), leaving the delivery format ambiguous for a premium call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, and the schema itself does the heavy lifting, especially for the deeply-documented chart object. The description only flags 'Required: chart' and adds no meaning for fields, language, precision, or whitelabel. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (generate a Human Design report / bodygraph PDF) and enumerates exactly what the document contains: Type, Strategy, Authority, Profile, Definition, Not-Self theme, Incarnation Cross, 9 centers, activated channels. This distinguishes it from the raw-data sibling astroway_hd_human_design, though it never names that alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The cost tag gives real operational guidance ('Confirm with user before invoking', ~50% of free monthly budget) and 'Required: chart' sets the precondition. However, it never says when to choose this report tool over astroway_hd_human_design or the generic astroway_reports_generate, so routing 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_reports_lal_kitabGenerate Lal Kitab Report (PDF or HTML)AInspect
Lal Kitab analysis: Teva (graha placements with Pakka-ghar match), Kismat & Prosperity scores, detected Rins (ancestral debts) with triggers, suggested Upayas (remedies). Sidereal compute (Lahiri ayanamsa) with sign-from-Lagna house numbering per Lal Kitab convention.
[Group: Reports] [Endpoint: POST /v1/reports/lal-kitab] [Required: chart] [Cost: 5,000 credits (Tier 7)] ⚠️ Premium — ~50% of free monthly budget. Confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| chart | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| whitelabel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false. The description adds meaningful context beyond them: a concrete credit cost and tier, a premium-budget warning prompting user confirmation, and the compute method (Lahiri ayanamsa, sign-from-Lagna house numbering). This is exactly the kind of cost/side-effect disclosure annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences covering contents and compute method, followed by a compact bracketed metadata block (group, endpoint, required, cost). No filler; every line carries information the agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers contents, compute convention, required parameter, and cost. The main omissions are the output format (PDF/HTML, present only in the title) and routing against the sibling report/granular tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60% with 5 parameters (chart, fields, language, precision, whitelabel), so the schema already documents much. The description only says '[Required: chart]' and never explains fields, language, precision, or whitelabel, and its Lahiri/ayanamsa note describes fixed compute rather than advising how to set those parameters. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Lal Kitab analysis') and enumerates the exact report contents (Teva, Kismat & Prosperity scores, Rins, Upayas), so the agent knows precisely what it produces. However, it never distinguishes itself from the granular siblings it duplicates (astroway_vedic_lal_kitab_teva, _kismat, _prosperity, _debts, _remedies) nor from astroway_reports_generate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The cost block gives a real usage constraint ('5,000 credits, Tier 7, ~50% of free monthly budget — confirm with user before invoking'), which is actionable guidance. But it offers no when-to-use-this-vs-alternatives routing against the many lal_kitab and reports siblings, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_loveGenerate Love Report (PDF or HTML)AInspect
Romantic-relationship natal report. Highlights Venus (attraction style), Mars (desire), Moon (emotional needs), Descendant (partner profile). Disclaimer: not a prophecy.
[Group: Reports] [Endpoint: POST /v1/reports/love] [Required: chart] [Cost: 5,000 credits (Tier 7)] ⚠️ Premium — ~50% of free monthly budget. Confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| chart | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| whitelabel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnly=false, openWorld=true, idempotent=false, destructive=false; the description adds the material facts an agent actually needs — that the call costs 5,000 credits at Tier 7, that this is roughly half a free monthly budget, and that user confirmation is required. The 'not a prophecy' disclaimer also sets expectations about the output's nature. This is genuine context beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is two compact sentences that front-load the report's content and scope, followed by clearly delimited bracketed metadata. Nothing is padded, though the disclaimer sentence is arguably low-value for tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not explain return values, and the cost/premium warning covers the one high-stakes behavioral fact. The title signals PDF-or-HTML output but no parameter in the schema selects format, and no format explanation appears in the description — a minor gap, though not one the agent must resolve to call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, and the description only restates the single required parameter ('Required: chart'). It adds nothing about the optional fields/compact-mode, language, precision, or whitelabel parameters, all of which are documented (at varying depth) in the schema itself. Baseline 3 is appropriate when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific output (romantic-relationship natal report) and even names the four astrological factors it foregrounds (Venus, Mars, Moon, Descendant), which pins down what 'love report' means. An agent can distinguish this from the sibling astroway_reports_natal (general natal) and astroway_reports_synastry (two-chart relationship) reports without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The premium-cost warning and the explicit instruction to 'Confirm with user before invoking' give real invocation-time guidance that a sibling-selection rule does not. It does not, however, state when to prefer this single-chart love report over astroway_reports_synastry or astroway_reports_natal, so the alternative-selection guidance is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_moneyGenerate Money Report (PDF or HTML)AInspect
Financial natal: 2nd house (earned income), 8th house (shared resources), Jupiter (expansion), Saturn (discipline). Disclaimer: not investment advice.
[Group: Reports] [Endpoint: POST /v1/reports/money] [Required: chart] [Cost: 5,000 credits (Tier 7)] ⚠️ Premium — ~50% of free monthly budget. Confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| chart | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| whitelabel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the mutation profile (readOnlyHint=false, openWorldHint=true, idempotentHint=false), so the bar is lower. The description adds useful behavior beyond them: exact cost (5,000 credits, Tier 7, ~50% of free monthly budget), a confirmation-before-invoking instruction, and a not-investment-advice disclaimer. That is substantial value beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content list is front-loaded, the bracketed metadata lines are scannable, and the cost warning is visually prominent with the emoji marker. It is telegraphic and wastes little, though the opening fragment is less self-explanatory than a full sentence would be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. For a costly multi-param document generator the description covers purpose, required input, cost, and disclaimer, which is largely sufficient. The only real gap is routing information versus the many sibling report tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
At 60% schema coverage the schema itself already documents chart, fields, and precision in detail, so the baseline is 3. The description only restates '[Required: chart]' and adds no meaning for fields, language, precision, or whitelabel. It neither helps nor hurts relative to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (a financial/money natal report) and enumerates the specific content it covers (2nd house, 8th house, Jupiter, Saturn), which distinguishes it from the many other reports_* siblings by topic. The verb is carried by the title rather than the description body, and 'Financial natal:' reads as a fragment, but combined with the [Group: Reports] tag an agent can identify it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear usage directive ('Confirm with user before invoking') and flags the premium cost, which is real guidance. However it names no alternative among the crowded reports_* and financial_* family, so an agent has no help choosing this over reports_natal or financial_wealth_house. Guidance is implied rather than comparative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_muhurtaGenerate Muhurta Report (PDF or HTML)AInspect
Render a standard A4 report of the most auspicious dates for a chosen activity over a search window. Same window-scan engine as /vedic/muhurat/*: it scores each day by sunrise Panchang (Tithi/Vara/Nakshatra/Yoga/Karana) per Muhurta Chintamani + B.V.Raman, and lists ranked days with per-day Abhijit Muhurat and the scoring factors as the rationale. activity is one of the 12 from /muhurta/types. PDF default; ?format=html returns HTML.
[Group: Reports] [Endpoint: POST /v1/reports/muhurta] [Required: activity, search_window_start, latitude, longitude] [Cost: 5,000 credits (Tier 7)] ⚠️ Premium — ~50% of free monthly budget. Confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| activity | Yes | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| language | No | ||
| latitude | Yes | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| whitelabel | No | ||
| timezoneOffset | No | Hours 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. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover safety (readOnlyHint=false, non-destructive, non-idempotent), and the description adds material context beyond them: the premium credit cost (5,000 / Tier 7 / ~50% of free monthly budget) and the required user confirmation. It also discloses the scoring methodology and that it is a rendering operation. A minor gap is the '?format=html' query-string reference that has no matching schema parameter, which slightly muddies how the format is actually selected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the most important sentence first, then methodology, then the activity pointer and format note; the bracketed metadata stays compact. No wasted prose, though the methodology sentence is denser than strictly needed for tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 described, and the cost/confirmation warning covers the highest-risk behavior. However, with 13 parameters at 31% schema coverage, the description leaves a genuine documentation gap for an agent trying to populate the optional inputs correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31% across 13 parameters, so the description must compensate — but it only addresses `activity` (already enumerated in the schema) and gestures at the shared window-scan engine. topN, language, latitude, longitude, ayanamsaId, search_window_start/end and the whitelabel toggle are left entirely to the schema, which is thin here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Render) and resource (standard A4 report of most auspicious dates for a chosen activity over a search window), and explicitly contrasts with the /vedic/muhurat/* engine family. An agent can tell this is the report-rendering variant rather than a data endpoint 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Points to /muhurta/types for the valid activity list, notes the PDF/HTML output toggle, and the cost block instructs 'Confirm with user before invoking' — real when-to-use guidance. It stops short of an explicit when-not or a named alternative report tool, so 4 rather than 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_natalGenerate Natal Report (PDF or HTML)AInspect
Render a Western tropical natal chart as a single-page A4 PDF (default) or live HTML (add ?format=html). Includes Big Three (Sun/Moon/ASC), full planets table with houses + retrograde, all 12 house cusps, and major aspects. Set whitelabel: true to apply the caller's branding overrides. depth: "extended" (10000 credits instead of 5000) adds the chart wheel and a chapter for each of Sun to Pluto, Chiron and the Ascendant in its sign, from edited texts in the 20 languages of /natal-texts; no AI at request time. Languages: uk (default) or en.
[Group: Reports] [Endpoint: POST /v1/reports/natal] [Required: chart] [Cost: 5,000 credits (Tier 7)] ⚠️ Premium — ~50% of free monthly budget. Confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| tone | No | ||
| chart | Yes | Birth 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. | |
| depth | No | `extended` (10000 credits) adds the chart wheel and a chapter for each of Sun to Pluto, Chiron and the Ascendant in its sign, from edited texts with no AI at request time. Available in the 20 languages of `/v1/natal-texts`. | |
| enrich | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| length | No | ||
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| whitelabel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only say readOnlyHint=false and non-idempotent; the description adds real behavioral context beyond them: no AI at request time, the 5000 vs 10000 credit cost of extended depth, and what whitelabel:true changes. It does not disclose rate limits or auth requirements, but the cost/behavior disclosures are substantive for a premium mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the primary action and outcome, and each sentence carries distinct information (contents, output switch, branding, depth/cost, language). The depth sentence is dense and slightly run-on, but there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers the premium cost, required chart input, output formats and depth tiers. It does not touch the tone, length, enrich, fields or precision parameters, leaving those schema-only, which is acceptable but not fully complete for a 9-parameter premium generator.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 44% schema description coverage, the description compensates by documenting things the schema omits: the `?format=html` output switch (absent from the schema entirely), the `language` default of uk, and the effect of `whitelabel: true` and `depth: "extended"`. It leaves tone, length, enrich, fields and precision unexplained, so it does not fully close the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Render a Western tropical natal chart') and names the exact deliverable (single-page A4 PDF or live HTML), then enumerates the contents (Big Three, planets table with retrograde, 12 house cusps, aspects). An agent can distinguish this from render-wheel image tools and other report 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied through the format and depth options plus the premium-cost warning ('Confirm with user before invoking'), which is genuine guidance. However, it never names when to pick this over sibling report generators (e.g. career/love/natal-narrative reports) or when the HTML variant is preferable, so the when/when-not logic 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_reports_relocationGenerate Relocation Report (PDF or HTML)AInspect
Compare up to five places for one birth chart as a multi-page A4 PDF (default) or live HTML (add ?format=html). Per place: the relocated ascendant and midheaven with the signed shift from birth, which planets changed house (the substantive difference, diffed rather than left as two tables), every astrocartography line running within 300 km with its interpretation text, and supportive/challenging scores across the 19 life categories. With more than one place a side-by-side comparison leads the document.
[Group: Reports] [Endpoint: POST /v1/reports/relocation] [Required: chart, locations] [Cost: 5,000 credits (Tier 7)] ⚠️ Premium — ~50% of free monthly budget. Confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| chart | Yes | Birth 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. | |
| orbKm | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| locations | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| categories | No | ||
| whitelabel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial context beyond the annotations: the 5,000-credit Tier 7 cost, the ~50% free-budget consumption, and the instruction to confirm with the user. It also discloses the default format and the diffing behavior of the report. It does not cover auth needs or rate limits, so not a full 5, especially given readOnlyHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Long but front-loaded, leading with scope and output format before enumerating report contents. Every clause conveys a real feature (ascendant/midheaven shift, house diffs, ACG lines, category scores). Slightly dense prose, but nothing is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a costly multi-parameter report generator it covers the essentials: required inputs, output format, cost gating, and document contents. Since an output schema is present, return values needn't be spelled out. The remaining gap is explanatory coverage of the secondary parameters (orbKm, fields, precision, categories, whitelabel, language).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 38% across 8 parameters. The description maps 'places' to locations (max five) and the HTML format switch, and its mention of the 300 km line radius and 19 categories gestures at orbKm and categories, but chart, fields, precision, language, and whitelabel are left to the schema. Baseline 3 for the low coverage with partial compensation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (compare up to five places for one birth chart) and the concrete output formats (multi-page A4 PDF by default, live HTML via ?format=html). It details the exact per-place contents, so an agent can distinguish this report generator from the geo point-lookup siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives useful triggering context (comparison across up to five relocation candidates, cost gating with 'Confirm with user before invoking'), but never names an alternative tool or states when NOT to use it versus siblings like astroway_geo_relocation or astroway_geo_acg_line_report. Usage is implied rather than routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_stellaforgeGenerate Stellaforge Birth-Chart Poster (PDF or HTML)AInspect
Render a data-rich, print-ready natal chart poster. A high-detail western wheel (colored element sectors, colored glyphs, degree labels, ASC arrow, MC marker, house cusps) plus the Sun/Moon/Rising trio, a placements table, element/modality balance bars, and the top aspects, fully deterministic, 0 AI. Three styles via style: editorial (light), celestial (dark + gold), classic (minimal). White-label via whitelabel. i18n via language. PDF default; ?format=html returns HTML. NB style is read from the request BODY, not the query string.
[Group: Reports] [Endpoint: POST /v1/reports/stellaforge] [Required: chart] [Cost: 5,000 credits (Tier 7)] ⚠️ Premium — ~50% of free monthly budget. Confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| chart | Yes | Birth 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. | |
| style | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| whitelabel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only supply the safety/idempotency profile; the description adds genuinely useful behavior the annotations don't carry: fully deterministic with 0 AI, the cost of 5,000 credits (~50% of a free monthly budget), the need to confirm with the user, and the body-vs-query-string channel rule. It does not say whether the generated report is persisted (reports_history suggests it may be), which is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the deliverable, then the options, then the cost caveat — a sensible order with no filler sentences. The long parenthetical inventory of wheel elements is slightly over-detailed relative to its decision value, but it justifies its space by telling the agent the output is high-detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tool with a nested `chart` object and an output schema, the description covers the decision-relevant dimensions (format, style, whitelabel, i18n, cost) while the schema handles return shape and chart fields. Only the persistence/handling of the produced artifact is left unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 50% schema coverage, the schema already carries the heavy lifting for `chart`, `fields`, and `precision`. The description nonetheless adds real value by mapping each `style` enum value to its visual character (editorial=light, celestial=dark+gold, classic=minimal) beyond the bare enum list, and by clarifying that `style` must be sent in the request BODY rather than the query string.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and artifact ('Render a data-rich, print-ready natal chart poster') and then enumerates the exact contents (western wheel with element sectors, ASC arrow, placements table, balance bars, top aspects). This clearly distinguishes it from image-oriented siblings like astroway_render_wheel_western and from narrative reports. An agent knows precisely what it gets 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives strong context — PDF is the default, `?format=html` returns HTML, style/whitelabel/language are the levers, and the premium cost carries an explicit 'Confirm with user before invoking' instruction. It stops short of naming alternatives (e.g. reports_natal vs. render_wheel_western), so the when-not-to-use case 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_reports_synastryGenerate Synastry Report (PDF or HTML)AInspect
Render a relationship synastry PDF: side-by-side Big Three, full cross-chart aspect table (top 40 major aspects), and per-chart + combined element/modality balance.
[Group: Reports] [Endpoint: POST /v1/reports/synastry] [Required: chart1, chart2] [Cost: 5,000 credits (Tier 7)] ⚠️ Premium — ~50% of free monthly budget. Confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| whitelabel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the mutating, non-idempotent, open-world profile, so the bar is lower. The description adds genuinely non-structured context: the credit cost, its tier, and its share (~50%) of a free monthly budget, plus an explicit confirm-before-calling instruction. It does not mention auth or rate limits, but the premium-cost disclosure is the salient behavior for this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the single high-value sentence describing output, then uses compact bracketed tags for group, endpoint, required params, and cost. Line-efficient overall, though the [Required: chart1, chart2] tag duplicates what the schema already enforces.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 is not obliged to describe return values, and it covers the artifact contents, cost, and required inputs. One gap: the title advertises 'PDF or HTML' but the description only mentions PDF and no format parameter exists, so output format selection is unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the nested chart schema is exhaustively documented (formats, rejected short forms, tz handling, house-system letters). The description only restates that chart1 and chart2 are required and says nothing about fields, language, precision, or whitelabel. Baseline 3 is appropriate when the schema carries the semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Render') and resource ('relationship synastry PDF') and then inventories the exact contents — side-by-side Big Three, top-40 cross-chart aspect table, per-chart plus combined element/modality balance. That content spec separates it from the data-style siblings (astroway_relational_synastry*) and the narrative sibling (astroway_reports_ai_synastry_narrative).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives one real invocation rule — 5,000 credits / Tier 7, confirm with the user first — which is a valuable cost gate. However it never says when to prefer this over astroway_reports_love, astroway_reports_generate, or the AI synastry narrative, so alternative 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_reports_tarotGenerate Tarot Reading (PDF or HTML)AInspect
Render a tarot reading PDF. Default spread three-card (Past/Present/Future from Rider-Waite-Smith deck). Available spreads: single-card, three-card, celtic-cross, horseshoe, relationship, year-ahead, decision, chakra, career, love-triangle. Pass seed for reproducibility (deterministic mulberry32 RNG); omit to use a daily seed. Set allowReversed: false to draw upright cards only.
[Group: Reports] [Endpoint: POST /v1/reports/tarot] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| spread | No | ||
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| whitelabel | No | ||
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true), and the description adds real behavioral context: deterministic mulberry32 RNG when seed is passed, daily seed when omitted, and upright-only cards via allowReversed=false. It also surfaces the 100-credit cost. It does not explain what the rendered output looks like or delivery method, but the output schema covers returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the default spread and then the option inventory. No filler; each sentence carries usable parameter information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter report tool with a nested whitelabel branding object and five non-schema-documented parameters, coverage is partial. The output schema removes any need to describe return values, but an agent gets no help on language, whitelabel, or compact-mode parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25%, so the description must compensate, and it does for the most consequential parameter: it enumerates all ten spread values even though the schema only carries maxLength=64 with no enum. It also explains seed and allowReversed semantics. It says nothing about name, language, fields, precision, or whitelabel, leaving four parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Render a tarot reading PDF', and the title adds the HTML variant. This distinguishes it from the draw-only siblings (astroway_tarot_rider_waite_draw_three_card) and other report generators, though it never explicitly names an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives defaults (three-card spread, daily seed) but no when-to-use/when-not guidance and no routing to alternatives such as the draw tools or astroway_reports_generate. The agent must infer that this is the PDF-rendering path rather than the card-drawing path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_transit_yearlyGenerate Year-Ahead Transit (PDF or HTML)AInspect
Render a year-ahead transit calendar PDF grouped by month. Includes major aspects (conjunction, sextile, square, trine, opposition) of outer planets (Mars through Pluto) to natal positions, with 0.5° max orb. Defaults to next calendar year if year omitted.
[Group: Reports] [Endpoint: POST /v1/reports/transit-yearly] [Required: chart] [Cost: 5,000 credits (Tier 7)] ⚠️ Premium — ~50% of free monthly budget. Confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | ||
| chart | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| whitelabel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only cover the safety profile (readOnly=false, destructive=false, idempotent=false, openWorld=true). The description adds materially: the exact cost (5,000 credits, Tier 7), that it consumes ~50% of a free monthly budget, and an explicit instruction to confirm with the user before invoking — the kind of spend/operational context annotations cannot express. It still says nothing about latency or how the rendered document is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core action and output content in the first sentence, then scope constraints, then a bracketed metadata block. Every line carries information, though the [Group]/[Endpoint]/[Required] block partially duplicates what the schema already declares and the endpoint string is of marginal use to an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 report contents, cost, and the required chart. What is left implicit is the delivery mechanism for the rendered document and the PDF-vs-HTML ambiguity raised by the title — small gaps against an otherwise complete brief for a premium report tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% and the schema itself documents chart, fields, precision, and timezone in depth. The description's only real parameter contribution is the non-schema default for `year` (next calendar year when omitted) and a restatement of the required `chart`; it says nothing about language, whitelabel, or compact-mode fields/precision, so it lands at the baseline rather than compensating.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb plus resource: 'Render a year-ahead transit calendar PDF grouped by month,' with content detail (Mars–Pluto aspects, the five Ptolemaic aspects, 0.5° orb) that clearly identifies this as the printable year-ahead transit report rather than the data endpoints (astroway_prognostics_transit_calendar) or the AI narrative siblings. An agent can tell what it produces without opening the schema. Minor wrinkle: the title says 'PDF or HTML' but the body says PDF only, and no format parameter exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: it is a report-generation call and the cost block warns to confirm with the user first, which is a genuine precondition. However, it never says when to prefer this over astroway_reports_ai_year_ahead_narrative, astroway_reports_ai_transit_narrative, or astroway_prognostics_transit_calendar, nor what prerequisites (e.g., an existing chart) must hold.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_reports_vedic_kundliGenerate Vedic Kundli (PDF or HTML)AInspect
Sidereal Vedic chart (Lahiri ayanamsa): Lagna + Moon nakshatra/pada, all sidereal planet positions with nakshatra+pada+house, full 9-period Vimshottari Mahadasha tree with current period highlighted.
[Group: Reports] [Endpoint: POST /v1/reports/vedic-kundli] [Required: chart] [Cost: 5,000 credits (Tier 7)] ⚠️ Premium — ~50% of free monthly budget. Confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| chart | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| whitelabel | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true and destructiveHint=false, so the write/open-world profile is covered. The description adds material context the annotations cannot: the exact credit cost (5,000, Tier 7), that it consumes roughly half a free monthly budget, and an explicit instruction to confirm with the user first. It still doesn't state the output medium (PDF vs HTML) or that repeated calls are billed again, so it stops short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the payload contents in a single dense sentence, then a compact bracketed metadata block (group, endpoint, required, cost). No filler, no repetition of the title, and the most decision-relevant fact — the premium cost warning — is placed last with a warning marker where it will be noticed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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/confirmation behavior is well covered. But for a premium, 5-parameter report tool sitting beside astroway_vedic_kundli and the astroway_reports_* family, the definition omits the one thing an agent most needs: how this differs from the plain Vedic kundli tool and what format it delivers. Adequate, but with a real routing gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60% and the schema itself carries rich per-field prose (timezone semantics, timezoneOffset hours, houseSystem letters, lat/lon rejection of short forms). The description contributes only '[Required: chart]' and the default 'Lahiri ayanamsa', which merely restates what the schema already documents. It adds no meaning for fields, precision, language, or whitelabel, so it sits at the baseline for partial coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific artifact (sidereal Vedic chart, Lahiri ayanamsa) and enumerates exactly what the deliverable contains: Lagna, Moon nakshatra/pada, all planet positions with nakshatra+pada+house, and a full 9-period Vimshottari Mahadasha tree. It is clear what the tool produces, but it never distinguishes itself from the sibling astroway_vedic_kundli, which by name covers the same subject matter — only the title's 'PDF or HTML' hints that this is the rendered report variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is the premium cost warning — '5,000 credits (Tier 7), ~50% of free monthly budget. Confirm with user before invoking' — which is genuinely useful pre-invocation advice. However, there is no routing guidance: nothing tells the agent when to pick this over astroway_vedic_kundli or the generic astroway_reports_generate. Usage context is implied by [Group: Reports] 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_runes_by_zodiacRune by ZodiacBRead-onlyIdempotentInspect
Tropical-sign → Elder Futhark affinity rune.
[Group: Elder Futhark Runes] [Endpoint: POST /v1/runes/by-zodiac] [Required: sign] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| sign | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sign | No | |
| source | No | |
| methodology | No | |
| affinityRune | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the description carries a low burden. It adds the useful billing fact '[Cost: 10 credits (Tier 1)]', which is genuinely behavioral and not derivable from annotations, but discloses nothing about latency, auth, or output beyond the endpoint path.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core mapping is front-loaded in the first line, and the bracketed metadata is densely packed with no filler. Structure is efficient, though the tagged metadata lines are more template scaffolding than prose that earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, freeing the description to focus on identity and cost. The one missing piece for a genuinely complete definition is sibling disambiguation among the other rune tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%; the two optional parameters (fields, precision) are documented in the schema itself, and the required 'sign' is self-documenting via its 12-value enum. The description only restates that sign is required and adds no format or semantics beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The telegraphic line 'Tropical-sign → Elder Futhark affinity rune' names a concrete input (tropical zodiac sign) and a concrete output (Elder Futhark affinity rune), so the mapping is unambiguous. It does not differentiate itself from the rune siblings (runes_single, runes_three, runes_nine), which is the only gap keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use / when-not-to-use guidance and no routing to or from any sibling rune tool. The only contextual signal is '[Required: sign]' and cost, which are invocation 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_runes_nine9-Rune CastCRead-onlyIdempotentInspect
Pennick layout 9-rune cast.
[Group: Elder Futhark Runes] [Endpoint: POST /v1/runes/nine] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| runes | No | |
| source | No | |
| spread | No | |
| question | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare 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 (POST /v1/runes/nine) and the cost (10 credits, Tier 1). It says nothing, though, about whether the cast is randomized or seeded, which matters given the optional `seed` parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loads the purpose line, but three of the four lines are bracketed boilerplate metadata (group, endpoint, cost) rather than information about the tool's behavior. Nothing is wasted exactly, yet the content density is low.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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-parameter divination tool with 40% schema coverage and no usage guidance, the description leaves too much for the agent to infer — especially what `seed`, `question`, and `allowReversed` do and when a nine-rune spread is appropriate versus the one- and three-rune siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40% — only `fields` and `precision` are documented, and those read as generic response-shaping options. The domain-critical parameters (`seed`, `question`, `allowReversed`, which governs reversed-rune outcomes) have no schema description and no explanation in the tool description either. The description 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.
Does the description clearly state what the tool does and how it differs from similar tools?
"Pennick layout 9-rune cast" names a specific resource (a 9-rune spread in the Pennick layout), which is enough to distinguish it from astroway_runes_single and astroway_runes_three by count. However, the verb is only implied ("cast") and the description never says what the operation actually does — draws nine runes into a positional spread and interprets them. It is a label, not a purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this over astroway_runes_single, astroway_runes_three, astroway_runes_runes, or astroway_runes_by_zodiac. The only implicit signal is the number 9 in the name, which the agent must infer means a larger spread than the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_runes_runesElder Futhark ListBRead-onlyIdempotentInspect
All 24 runes.
[Group: Elder Futhark Runes] [Endpoint: POST /v1/runes] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| runes | No | |
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds operationally useful metadata the annotations do not carry — the POST endpoint and the 10-credit Tier 1 cost — but says nothing about response size or behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short and front-loaded: the scope statement comes first, followed by clearly bracketed group/endpoint/cost tags. There is no waste, though the body text is thinner than ideal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. What is missing is routing guidance versus the other rune tools and any indication of result shape, leaving the definition only minimally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so 'fields' and 'precision' are already fully documented in the schema. The description contributes no parameter meaning beyond that, which is the baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'All 24 runes' names the resource and its scope, which does distinguish it from siblings like astroway_runes_single, _three, _nine and _by_zodiac. It lacks a verb ('list', 'retrieve') and sibling names, but the scope contrast is implicit and usable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. An agent must infer from the number '24' that this is the full-list alternative to runes_single/three/nine, with no explicit routing rule or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_runes_singleSingle Rune DrawBRead-onlyIdempotentInspect
Deterministic 1-rune draw.
[Group: Elder Futhark Runes] [Endpoint: POST /v1/runes/single] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| runes | No | |
| source | No | |
| spread | No |
TDQS
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 'Deterministic' and a credit cost, which is useful context, but says nothing about how allowReversed affects the reading or what the draw actually returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely tight and front-loaded, with the core action first and scannable metadata tags after. Nothing is wasteful, though the brevity is partly under-specification rather than pure economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return values need not be described here, and annotations cover safety. Still, for a 5-parameter tool with 40% coverage and no usage routing, the definition leaves an agent without enough to invoke it confidently versus its rune siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40%: date, seed, and allowReversed carry no descriptions, and the description adds no meaning for any of them. 'Deterministic' hints that seed matters but never explains its format or role, so it fails to compensate for the documentation gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('1-rune draw') and the scope qualifier '1-rune' implicitly separates it from siblings like astroway_runes_three, astroway_runes_nine, and astroway_runes_runes. However, it never names those siblings, so the 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.
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, and no reference to alternative rune tools. The metadata block (group, endpoint, cost) describes plumbing, not usage selection, so the agent gets no help choosing between this and the three/nine-rune variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_runes_threeNorn 3-Rune CastBRead-onlyIdempotentInspect
Past/Present/Future (Urdr/Verdandi/Skuld).
[Group: Elder Futhark Runes] [Endpoint: POST /v1/runes/three] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| runes | No | |
| source | No | |
| spread | No | |
| question | No |
TDQS
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 adds genuinely new operational facts (POST endpoint and 10-credit Tier 1 cost) that the agent cannot get from annotations, but says nothing about determinism of the cast, how seed affects results, or what happens with an omitted question.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely tight and front-loaded: the spread meaning comes first, followed by compact metadata lines. Nothing is wasted, though the brevity edges toward under-specification rather than crispness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover the safety profile. However, with five parameters at 40% description coverage and zero usage guidance, the agent lacks enough to confidently decide when to call this versus sibling rune tools or how seed/allowReversed shape the reading.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%: fields and precision are documented, but seed, question, and allowReversed carry no schema description at all. The description adds no parameter meaning whatsoever, so it fails to compensate for the uncovered parameters, including the semantically important allowReversed default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific spread (Past/Present/Future with the Urdr/Verdandi/Skuld correspondences), which combined with the tool name and 'Elder Futhark Runes' group makes the action identifiable. It implicitly separates this from runes_single and runes_nine via the three-position structure, though it never explicitly states 'performs a three-rune cast.' Clear purpose, but 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.
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 astroway_runes_single, astroway_runes_nine, or astroway_runes_runes, and no prerequisites. The metadata block gives endpoint and cost but nothing about selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_specialized_draconicDraconic ChartBRead-onlyIdempotentInspect
Calculate the draconic chart by shifting all planet longitudes relative to the True Node (0° = True Node).
[Group: Specialized Charts] [Endpoint: POST /v1/draconic] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| meta | No | |
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| chartSect | No | |
| julianDay | No | |
| houseAspects | No | |
| siderealTime | No | |
| draconicChart | No |
TDQS
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 without the description. The description adds the endpoint (POST /v1/draconic) and a billing cost, which are genuinely beyond the annotations, but nothing about how optional flags like zodiacType or ayanamsa alter the draconic computation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One definitional sentence followed by compact bracketed metadata; front-loaded and free of filler. Slightly dense but every line carries information, and the bracketed block is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, but this is a 15-parameter tool where interactions matter — e.g. whether draconic shifting is applied before or after zodiacType/ayanamsa/houseSystem settings. The description supplies the core formula and cost but leaves those interaction questions unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, and the description contributes nothing beyond restating the four required fields already listed in the schema's "required" array. The eleven optional parameters (zodiacType, houseSystem, ayanamsa, fields, precision, cosmogram, etc.) are left entirely to the 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ("Calculate the draconic chart") and even defines the technique (shifting longitudes so 0° = True Node), which makes it clearly separable from specialized_harmonics, heliocentric, and horizon. It stops short of naming a sibling alternative, so it is clear but not explicitly differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to pick draconic over harmonics, heliocentric, or vedic_divisional, and no prerequisites or exclusions. The only decision-relevant information is the cost line (20 credits, Tier 2) and the required-parameter list, which is metadata 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_specialized_harmonicsHarmonic ChartARead-onlyIdempotentInspect
Calculate a harmonic chart by multiplying all planet longitudes by the given harmonic number (H2–H36).
[Group: Specialized Charts] [Endpoint: POST /v1/harmonics] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| meta | No | |
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| chartSect | No | |
| julianDay | No | |
| houseAspects | No | |
| siderealTime | No | |
| harmonicNumber | No |
TDQS
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 bar is lower; the description still adds the deterministic computation method and, usefully, the pricing tier ('20 credits (Tier 2)') and endpoint, which help an agent decide whether to invoke it. Return-shape detail is absent but an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence carries the purpose and method, followed by terse bracketed metadata for group, endpoint and cost. No filler, no repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema, full annotation coverage and 100% schema descriptions on all three parameters, the definition is nearly self-sufficient — purpose, method, cost and endpoint are all present. The remaining gap is sibling disambiguation among the specialized chart tools and reconciliation of the harmonic range mismatch.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 — the birth-data body, timezone, house system and compact-mode fields are all thoroughly documented in the schema itself. The description adds only 'the given harmonic number', and its stated range 'H2–H36' conflicts with the schema's allowed maximum of 180, which could needlessly discourage valid higher harmonics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('calculate'), a specific resource ('harmonic chart'), and even the underlying algorithm (multiplying all planet longitudes by the harmonic number), which makes the tool's identity unambiguous. It does not, however, distinguish itself from the other specialized-chart siblings (draconic, heliocentric, horizon, vedic_divisional), so an agent must infer the difference 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only says what it computes; it never says when a harmonic chart is the right choice versus the sibling specialized charts, nor any prerequisite or exclusion. There is no routing guidance at all, just the endpoint and cost metadata.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_specialized_heliocentricHeliocentric ChartBRead-onlyIdempotentInspect
Calculate heliocentric planetary positions (Sun-centered) for a given birth moment. Earth replaces Sun; Moon is excluded.
[Group: Specialized Charts] [Endpoint: POST /v1/heliocentric] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| meta | No | |
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| chartSect | No | |
| julianDay | No | |
| siderealTime | No | |
| heliocentricChart | No |
TDQS
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). The description adds real behavioral context beyond that: Earth replaces the Sun, the Moon is excluded, and the call costs 20 credits at Tier 2. Return format is not described, but an output schema exists to cover it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose in the first sentence, then compact bracketed metadata (group, endpoint, required, cost) that is scannable and wastes no words. Slightly dense but well organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter chart endpoint with an output schema, the description supplies purpose, the key astronomical edge cases, cost, endpoint, and required inputs. The main remaining gap is the absence of any sibling differentiation among the specialized chart family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description should compensate for undocumented parameters, but it only restates the four required fields (date, time, latitude, longitude) that the schema's required array already lists. It adds no meaning for the many other parameters (houseSystem, zodiacType, ayanamsaId, cosmogram, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate heliocentric planetary positions'), clarifies the frame with '(Sun-centered)', and adds distinguishing edge behavior ('Earth replaces Sun; Moon is excluded'). It does not, however, differentiate itself from sibling specialized charts (draconic, harmonics, horizon, vedic_divisional), so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for a given birth moment' hints at input context but there is no explicit when-to-use, when-not-to-use, or named alternative. Given a cluster of specialized chart siblings, the agent is left to guess which chart type is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_specialized_horizonHorizon ChartBRead-onlyIdempotentInspect
Calculate azimuth and altitude of planets above the local horizon for a given time and location.
[Group: Specialized Charts] [Endpoint: POST /v1/horizon] [Required: date, time, latitude, longitude] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| above | No | |
| below | No | |
| count | No | |
| positions | No |
TDQS
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 genuinely new operational context — the endpoint (POST /v1/horizon) and the billing cost (50 credits, Tier 3) — which is useful for an agent weighing spend, but it says nothing about return shape or failure modes. With annotations carrying the safety burden, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence states the purpose, followed by compact bracketed metadata lines (group, endpoint, required, cost). Nothing is padded or repetitive, and the key clause comes first. The [Required] line is slightly redundant with the schema, keeping it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description establishes the operation and the endpoint/cost, and an output schema exists so return values need not be explained. However, for a 15-parameter tool with only 33% schema coverage, the description leaves most optional inputs (chart variant, zodiac type, house system, ayanamsa selection, compact-mode fields) entirely undiscussed, which is a real gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description needs to compensate and largely does not. It names only the four required parameters (date, time, latitude, longitude), which are already enforced by the schema's required array and therefore add no new meaning. The eleven optional parameters (zodiacType, houseSystem, ayanamsaId, cosmogram, city, name, etc.) receive no coverage in the description at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (calculate) and a precise resource (azimuth and altitude of planets above the local horizon for a given time and location), which is markedly more informative than the vague 'Horizon Chart' title. It does not, however, distinguish this chart from the many sibling specialized chart tools (draconic, harmonics, heliocentric, vedic_divisional), so an agent cannot tell from the text alone which specialized chart fits a request.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance. The bracketed [Required: ...] line merely restates the schema's required array, and [Cost: 50 credits] conveys pricing rather than a usage condition. Nothing tells the agent when a horizon chart is the right choice versus heliocentric or draconic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_specialized_vedic_divisionalVedic Divisional Chart (DEPRECATED: use /vedic/varga/{D}<*>)ARead-onlyIdempotentInspect
DEPRECATED: moved to dedicated per-varga endpoints /vedic/varga/{D1..D60} for OpenAPI/SDK ergonomics. This generic endpoint still works and stays live until its 2027-06-15 sunset (12-month, per the /v1 stability policy), then will be removed; migrate to /vedic/varga/{D}. Calculate a Vedic divisional (varga) chart using sidereal zodiac. Supported vargas: D1–D60 (e.g. D9 Navamsha).
[Group: Specialized Charts] [Endpoint: POST /v1/vedic-divisional] [Cost: 20 credits (Tier 2)] [⚠️ DEPRECATED — will be removed in a future API version. Avoid using.]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| varga | No | |
| planets | No | |
| ayanamsa | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety. The description adds the deprecation timeline and endpoint cost, but does not disclose return format, pagination, or error behavior beyond what 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the deprecation notice, then states the core purpose. It includes metadata tags ([Group], [Endpoint], [Cost]) that are informative but not part of the natural description flow. Overall efficient with no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a deprecated read-only calculation tool with a rich input schema and an output schema, the description covers migration, cost, and core function. It could mention what the output includes, but the output schema likely handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents parameters including nested body fields, timezone, ayanamsa, etc. The description mentions 'sidereal zodiac' and supported vargas but adds no syntax or format details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it calculates a Vedic divisional (varga) chart using sidereal zodiac and lists supported vargas (D1–D60). However, it does not explicitly distinguish itself from sibling tools like astroway_specialized_draconic or astroway_specialized_harmonics beyond the opening deprecation notice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides a clear migration path to `/vedic/varga/{D1..D60}` and states the sunset date, which tells the agent when to use the new endpoints. It lacks explicit guidance on when to choose this deprecated endpoint over the alternative, but the deprecation notice strongly implies avoidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_stream_eclipse_incomingStream Eclipse IncomingBInspect
Countdown to next 5 eclipses.
[Group: Real-time Streaming] [Endpoint: POST /v1/stream/eclipse-incoming] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| pricing | No | |
| eclipses | No | |
| timestamp | No | |
| transport | No | |
| sseUpgrade | No | |
| nextEventAt | No | |
| tickSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare openWorldHint=true, idempotentHint=false, and readOnlyHint=false, but the description adds nothing about what streaming actually means here (connection lifetime, chunk cadence, termination). It does add genuinely useful operational context the annotations lack: the endpoint and a 10-credit Tier 1 cost. No contradiction with 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence plus three bracketed metadata lines; nothing is padded or redundant. It is terse to the point of under-specification rather than verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/endpoint are covered. What is missing is the streaming-specific behavior an agent needs to call this correctly: delivery mechanism, whether it terminates after the countdown, and how it differs from the eclipse_totality and eclipse webhook siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both optional parameters (fields, precision) are fully documented in the schema, so the baseline is 3. The description adds no meaning about compact mode or precision beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope: a countdown to the next 5 eclipses. An agent can tell it produces upcoming-eclipse timing data, though it never contrasts itself with the very similar sibling astroway_stream_eclipse_totality, so sibling differentiation is missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use guidance, no prerequisites, and no named alternatives despite a dense sibling set (eclipse_totality, webhooks_eclipse_alert, stream_transit_alerts). Usage is only implied by the name and the '[Group: Real-time Streaming]' label.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_stream_eclipse_totalityStream Eclipse TotalityBInspect
Next solar+lunar eclipses with totality info.
[Group: Real-time Streaming] [Endpoint: POST /v1/stream/eclipse-totality] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| pricing | No | |
| nextLunar | No | |
| nextSolar | No | |
| timestamp | No | |
| transport | No | |
| sseUpgrade | No | |
| nextEventAt | No | |
| tickSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true, idempotentHint=false), so the bar is lower. The description adds genuinely useful operational data not in the annotations: the POST endpoint, the streaming group, and the 10-credit cost. However, it says nothing about how the stream delivers results (one-shot vs long-lived, cadence), which is the core behavioral question for a stream tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence followed by compact bracketed metadata. Nothing is wasted, and the resource and scope land first. Slightly terse given the ten sibling stream tools, but structurally clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description leaves the streaming mechanics unstated and the latitude/longitude parameters undocumented, which is a gap for a tool whose entire value proposition is a stream rather than a single response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: fields and precision are documented in the schema, but latitude and longitude have no descriptions anywhere. The tool description adds zero parameter meaning, so the undocumented coordinates are left entirely ambiguous for a tool that clearly needs an observer location.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (next solar+lunar eclipses) and scope (with totality info). An agent understands what it returns, but the description never names or contrasts with its closest sibling, astroway_stream_eclipse_incoming, so 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.
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 mention of alternatives. The [Group: Real-time Streaming] tag hints at the streaming context but does not tell the agent when to pick this over eclipse_incoming or webhooks_eclipse_alert.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_stream_ingressStream IngressBInspect
Next planet sign-ingresses for N days.
[Group: Real-time Streaming] [Endpoint: POST /v1/stream/ingress] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| pricing | No | |
| ingresses | No | |
| transport | No | |
| sseUpgrade | No | |
| windowDays | No | |
| nextEventAt | No | |
| tickSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (destructiveHint=false, openWorldHint=true, idempotentHint=false, readOnlyHint=false), so the description does not need to restate it. The description does add real context the annotations lack: the cost (10 credits, Tier 1) and the endpoint. It stops short of explaining what 'streaming' means here — one-shot list versus a live subscription — and never explains why a query-like tool is flagged non-read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and free of padding, and the metadata block (group, endpoint, cost) is scannable rather than prose bloat. It loses a point only because the lead sentence is a verbless fragment rather than a complete statement of the operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 description is not required, and complexity is low with only 3 optional params. What is missing is the streaming semantics and the distinction from the webhook-based sign-ingress sibling — the two things an agent most needs to call this correctly instead of its twin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: 'fields' and 'precision' carry their own descriptions, but 'days' is undocumented in the schema. The phrase 'for N days' partially compensates by implying a forward window, though it gives no default, bounds, or unit guidance. Baseline 3 for a mid-coverage schema where the description closes only part of the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment 'Next planet sign-ingresses for N days' names a specific resource (planet sign ingresses) and a scope (N-day forward window), which is enough for an agent to distinguish it from siblings like stream_positions or stream_lunar_phase. It does not, however, differentiate itself from the near-twin sibling astroway_webhooks_sign_ingress, and the verbless phrasing leaves the operation type implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, and no named alternative. The agent is not told why it should pick this over astroway_webhooks_sign_ingress or astroway_stream_transit_alerts, nor what preconditions (if any) apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_stream_lunar_phaseStream Lunar PhaseBInspect
Current 8-phase + countdown to next major phase.
[Group: Real-time Streaming] [Endpoint: POST /v1/stream/lunar-phase] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| phase | No | |
| illuminationPct | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, idempotentHint=false, destructiveHint=false, openWorldHint=true). The description usefully adds the endpoint and a concrete cost of 10 credits (Tier 1), which annotations do not cover, but it says nothing about what 'stream' means in practice (one-shot snapshot vs. continuous/long-lived connection).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely terse and front-loaded: the output summary leads, followed by structured endpoint/group/cost metadata. No filler, though the body is almost too short to be self-sufficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needed, and cost/endpoint are supplied. However, combining a streaming endpoint with readOnlyHint=false, the agent still lacks a clear statement of the connection's nature and duration, which is material for a stream tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'fields' and 'precision' are fully documented in the schema, including format and defaults. The description adds no parameter meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (lunar phase) and states exactly what it yields: the current 8-phase plus a countdown to the next major phase. It is distinct from stream siblings like eclipse/ingress, but it never explicitly contrasts itself with them or with non-streaming alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus other streaming endpoints (eclipse, ingress, void-of-course) or versus webhook subscriptions. The [Group: Real-time Streaming] tag implies a family but gives no selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_stream_planetary_hour_changesStream Planetary Hour ChangesBInspect
Current planetary hour + next 24.
[Group: Real-time Streaming] [Endpoint: POST /v1/stream/planetary-hour-changes] [Required: latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| latitude | Yes | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| next | No | |
| current | No | |
| pricing | No | |
| timestamp | No | |
| transport | No | |
| sseUpgrade | No | |
| next24Hours | No | |
| nextEventAt | No | |
| tickSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety/profile (readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false). The description adds genuinely useful non-annotation context: the pricing tier (10 credits), the streaming group, and the POST endpoint. It does not disclose whether this is a persistent stream or a one-shot fetch, nor stream duration/termination behavior, so it stops short of rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely tight and front-loaded: the return content leads, followed by bracketed metadata for group, endpoint, required params, and cost. Every line carries information with no filler, though the telegraphic style sacrifices some readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 documentation is rightly omitted, and annotations plus the cost/endpoint metadata cover the operational basics. However, for a streaming POST endpoint the description never clarifies consumption model (persistent stream vs single response) or why readOnlyHint is false, leaving a meaningful gap for an agent deciding how to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, so a baseline of 3 applies. The description only restates that latitude/longitude are required (already in the schema's required list) and adds no semantics for timezoneOffset, precision, or fields, whose meaning comes entirely from the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Current planetary hour + next 24" names the concrete resource and scope (planetary hour, 24h horizon), which cleanly distinguishes it from siblings like astroway_stream_lunar_phase or astroway_stream_ingress. It lacks an explicit verb, so an agent must infer that this returns/fetches the data, but the noun is specific enough to identify the tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states prerequisites (latitude, longitude) and cost, but gives no when-to-use guidance, no conditions for choosing it over alternative stream endpoints, and no mention of the closely related astroway_webhooks_planetary_hour_tick sibling. The agent must infer the use case entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_stream_positionsStream PositionsBInspect
Current planetary positions snapshot, tickSeconds=30.
[Group: Real-time Streaming] [Endpoint: POST /v1/stream/positions] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| planets | No | |
| pricing | No | |
| julianDay | No | |
| timestamp | No | |
| transport | No | |
| sseUpgrade | No | |
| tickSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (destructiveHint=false, openWorldHint=true), and the description adds two genuinely useful facts not in the structured data: the 30-second tick cadence and the 10-credit Tier 1 cost. However it does not explain the streaming lifecycle (how updates are delivered, when the stream ends, why a 'snapshot' is flagged readOnlyHint=false and non-idempotent), leaving the non-readonly flag unexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line purpose followed by compact bracketed metadata; nothing is padded. The bracketed lines are boilerplate but carry real cost/endpoint information, so they earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not required. Still, for a non-readonly streaming tool the description omits lifecycle semantics (duration, termination, billing per tick vs per call), which an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (fields, precision) carry detailed descriptions with examples, so the schema does the heavy lifting. The description adds no additional parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete resource and verb-equivalent: a snapshot of current planetary positions, with the tick cadence. It is distinguishable from sibling streams (ingress, retrograde alerts, void-of-course) by being the general positions feed, though it never explicitly names what separates it from astroway_mcp_streaming or astroway_stream_transit_alerts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 condition selecting this stream over the other stream_* siblings or over astroway_mcp_streaming, and no stated prerequisite. Only endpoint, group and credit cost are given, which is operational metadata rather than usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_stream_retrograde_alertsStream Retrograde AlertsCInspect
All planets retro state + next stations.
[Group: Real-time Streaming] [Endpoint: POST /v1/stream/retrograde-alerts] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| planets | No | |
| pricing | No | |
| timestamp | No | |
| transport | No | |
| sseUpgrade | No | |
| nextEventAt | No | |
| tickSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true, destructiveHint=false, so the safety/idempotency profile is covered. The description adds genuinely useful context the annotations lack: cost (10 credits, Tier 1), group, and endpoint. However, it says nothing about streaming mechanics (persistent connection, event cadence, what 'next stations' returns) which is the core behavioral question for a stream tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short and front-loaded: the payload summary comes first, followed by compact metadata lines. Nothing is padded. The trade-off is that the opening line is a telegraphic fragment rather than a sentence, which slightly hurts readability without wasting space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 metadata is present. What is missing for a real-time streaming tool is any statement of how the stream behaves or when it terminates, and there is no routing against the many retrograde/webhook siblings. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both optional parameters (fields, precision) are already fully documented with examples and defaults. The description adds no parameter meaning beyond that, which is the correct baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The fragment 'All planets retro state + next stations' conveys the resource and payload (retrograde states plus upcoming station dates), but there is no verb and no differentiation from the retrograde-related siblings such as astroway_webhooks_retrograde_start/end or astroway_stream_transit_alerts. An agent can guess the payload but cannot tell why this differs from the webhook retrograde tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of alternatives. The sibling list contains at least four closely related retrograde/webhook tools, yet the description never says when to choose this stream over a webhook subscription or a transit-alert stream. Usage must be fully inferred from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_stream_sunrise_sunsetStream Sunrise/SunsetBInspect
Today + tomorrow sun events.
[Group: Real-time Streaming] [Endpoint: POST /v1/stream/sunrise-sunset] [Required: latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| latitude | Yes | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| today | No | |
| pricing | No | |
| tomorrow | No | |
| timestamp | No | |
| transport | No | |
| sseUpgrade | No | |
| nextEventAt | No | |
| tickSeconds | No | |
| nextEventKind | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false, and destructiveHint=false. The description adds genuinely useful non-schema context: it is a real-time streaming endpoint, it is a POST, and it costs 10 credits (Tier 1). It does not, however, explain what streaming implies (connection handling, delivery cadence, how to consume the stream), which is the key behavioral unknown for this tool class.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very compact and front-loaded: the payload sentence comes first, followed by bracketed metadata that is easy to scan. Nothing is wasted, though the terse style leaves behavioral gaps rather than being merely economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 here. The essentials (required coords, cost, streaming group) are present, but for a real-time streaming tool with readOnlyHint=false there is no explanation of the streaming lifecycle or connection behavior, leaving the definition minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%: fields, precision, and timezoneOffset are documented in the schema, while latitude and longitude carry no descriptions. The description only restates that latitude and longitude are required, which the schema already marks as required, so it adds little parameter-level value. Baseline 3 fits given the moderate coverage and the self-evident nature of lat/long.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (sun events) with a scope qualifier (today + tomorrow), and the tool name plus endpoint make the sunrise/sunset purpose unmistakable. It does not explicitly differentiate from sibling stream tools like lunar_phase or ingress, but the resource is distinct enough that an agent can tell them apart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use vs alternative guidance. The bracket notes list group, endpoint, requirements, and cost, but never say when an agent should pick this stream over another stream tool or a webhook equivalent. Usage is only implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_stream_transit_alertsStream Transit AlertsCInspect
Natal-transit hits within next N hours.
[Group: Real-time Streaming] [Endpoint: POST /v1/stream/transit-alerts] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| orb | No | |
| count | No | |
| alerts | No | |
| pricing | No | |
| transport | No | |
| sseUpgrade | No | |
| nextEventAt | No | |
| tickSeconds | No | |
| windowHours | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare non-read-only, non-idempotent, open-world behavior; the description adds nothing behavioral beyond a credit cost and endpoint. Critically, it never explains what 'stream' means here (SSE, long-poll, chunked response) or how repeated calls behave, despite idempotentHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short and front-loaded: the purpose sentence leads, with group, endpoint and cost as compact metadata tags. Nothing is padded, though the terseness is achieved partly by omitting load-bearing content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/endpoint metadata is present. However, for a streaming tool requiring a full birth-data body, the description says nothing about delivery mechanics or how the 'next N hours' window interacts with the required natal data — a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the nested body description already documents date/time/coordinates/timezone rules in depth, so the schema carries the load. The description's 'N hours' hints at the hours field but adds no syntax or semantics beyond that, matching the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and condition — 'natal-transit hits within next N hours' — which is clearly distinguishable from stream_positions or stream_ingress. It does not name a sibling or scope boundary, so it falls short of 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given. With siblings like astroway_webhooks_transit_trigger and astroway_stream_retrograde_alerts in the same family, the agent must guess whether streaming vs. webhook delivery is the right choice; the [Group] tag is metadata, not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_stream_void_of_courseStream Void-of-CourseBInspect
Current Moon VOC + next ingress.
[Group: Real-time Streaming] [Endpoint: POST /v1/stream/void-of-course] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | |
| pricing | No | |
| julianDay | No | |
| timestamp | No | |
| transport | No | |
| sseUpgrade | No | |
| nextEventAt | No | |
| nextIngress | No | |
| tickSeconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint false, openWorldHint true, not idempotent). The description adds genuinely useful context beyond them: it is a POST streaming endpoint and costs 10 credits (Tier 1). It still says nothing about auth requirements, connection lifetime, or stream termination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in one line, followed by compact bracketed metadata for group, endpoint, and cost. No filler, though the abbreviation 'VOC' is never expanded for agents unfamiliar with the domain term.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a paid real-time stream with numerous closely related siblings, the description lacks the when-to-use and streaming-behavior context an agent needs to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both optional parameters (fields, precision) are fully documented in the schema itself. The description adds no parameter detail, so the baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and action: current Moon void-of-course status plus the next ingress. An agent can tell it produces VOC timing data, not raw positions or phases. It does not differentiate itself from the nearby astroway_stream_ingress or astroway_webhooks_void_of_course_start, which is the main gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 stream versus the sibling streams (ingress, transit_alerts) or the webhook variant void_of_course_start. The '[Group: Real-time Streaming]' tag hints at the mode but gives no selection criteria or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_decksTarot: Decks and Card ArtARead-onlyIdempotentInspect
Every deck with its spreads and the public-domain card art sets you can pick with art on any tarot route: id, artist, year, source, a preview image, the card back, and any card a set has no picture for.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: GET /v1/tarot/decks] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent read, so the description only needs to add context. It does add useful catalog detail (artist, year, source, preview image, card back, and coverage gaps for cards with no picture), which tells the agent the shape/quality of the data. It does not disclose pagination, result count, or whether all decks or just a filtered set are returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and dense with payload facts, followed by compact Group/Endpoint/Cost metadata. It is slightly overpacked in one run-on sentence, but no content is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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; the description supplies the catalog scope, the art-set linkage to other routes, and the cost/endpoint metadata. The only untold element is whether the deck list is paginated or complete, which is a minor gap for a catalog endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters (fields, precision), each fully documented in the schema itself. The description adds nothing about them, so the schema carries the full burden and the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb-less but clear resource statement: it enumerates decks, their spreads, and public-domain card art sets, and names the envelope fields (id, artist, year, source, preview, card back, missing-art fallback). That is far more specific than a tautology, though it never says 'list' explicitly and does not name a sibling tool it competes with (e.g. the per-deck spread endpoints).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'the public-domain card art sets you can pick with `art` on any tarot route' implies the use case: discovering the art values that the other tarot routes accept. But there is no explicit when-to-use vs when-not, and no pointer to an alternative such as the Rider-Waite or Marseille spread listings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_lenormand_cardsLenormand: All CardsBRead-onlyIdempotentInspect
36-card Lenormand oracle deck.
[Group: Tarot: Lenormand] [Endpoint: GET /v1/tarot/lenormand/cards] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No |
TDQS
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 genuinely new behavioural context: the endpoint (GET /v1/tarot/lenormand/cards), the group, and a concrete cost of 10 credits (Tier 1) that the agent needs for budget decisions. No pagination or caching behaviour is disclosed, but the credit cost is a meaningful addition 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short lines: resource first, then bracketed metadata for group, endpoint and cost. Nothing is wasted and the key noun is front-loaded. It is arguably too terse rather than too long, but structurally it is clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only catalogue endpoint with an output schema, full parameter coverage and annotations covering safety, most of what an agent needs is present. The missing piece is routing context — nothing says this is the static deck reference versus the sibling cards_slug lookup or the draw_* spread tools, which is the main risk in a toolset this large.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (fields, precision) are fully documented in the schema as generic 'compact mode' modifiers. The description adds nothing about them, which is acceptable given the schema does the work, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('36-card Lenormand oracle deck'), which tells the agent this returns the full 36-card catalogue rather than a spread. However it is a bare noun phrase with no verb, and it does not distinguish itself from the obvious sibling astroway_tarot_lenormand_cards_slug (single-card lookup) or astroway_tarot_lenormand_draw_* (spread draws). Purpose is inferable but not stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of alternatives, despite ~30 Lenormand-related siblings in the toolset. The agent has to guess that this is a static reference lookup rather than a divination action. Nothing here is misleading, but nothing routes the caller either.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_lenormand_cards_slugLenormand: Single CardBRead-onlyIdempotentInspect
Single Lenormand card lookup by slug.
[Group: Tarot: Lenormand] [Endpoint: GET /v1/tarot/lenormand/cards/{slug}] [Required: slug] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Card slug, lowercase and hyphenated. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| slug | No | |
| number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the agent knows this is a safe, repeatable read operation. The description adds no behavioral context beyond what annotations provide — no mention of rate limits, caching, or response characteristics. However, given the annotations carry the safety profile and an output schema exists, the bar is lower and this minimal restatement is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and efficient: the first line states purpose clearly. The bracketed metadata lines (Group, Endpoint, Required, Cost) are structured and scannable. Slight redundancy with the required-slug tag being stated twice (in the description and the schema), but overall tight and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With read-only annotations covering safety, an output schema present, and 100% schema description coverage, the core call is sufficiently specified. However, the cost note ('see your plan — endpoint not in the public credit manifest') is vague and potentially a blocker for an agent assessing whether to call it, and there is no differentiation from the sibling 'cards' list endpoint. Just adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters (slug format, fields compact mode with dotted paths, precision rounding). The description adds nothing beyond the required-parameter tag, which is already in the schema's 'required' array. Baseline 3 is appropriate when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Single Lenormand card lookup by slug.' This is clear purpose. However, it does not distinctly differentiate from the highly similar sibling tool astroway_tarot_lenormand_cards (list all cards) or astroway_tarot_marseille_cards_slug / astroway_tarot_rider_waite_cards_slug which follow the same pattern. A brief note on the distinction (lookup one by slug vs browse all) would push this higher.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'by slug' phrasing implies this is a lookup operation and the required slug requirement is noted, giving minimal usage context. But there is no explicit when-to-use guidance, no mention of when to use the list endpoint instead, and no prerequisites stated. Adequate but with clear gaps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_lenormand_dailyLenormand: Daily CardsBRead-onlyIdempotentInspect
Daily three-card draw based on date seed.
[Group: Tarot: Lenormand] [Endpoint: POST /v1/tarot/lenormand/daily] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| date | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, destructive=false, and closed-world, so the safety profile is covered. The description adds the date-seed determinism (same date yields the same draw) and the 10-credit cost, which is useful for call planning, but says nothing about the response contents or what happens when date is omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence carries the meaning, with the group/endpoint/cost metadata stacked below in a scannable format. Nothing is padded, though the bracket lines are boilerplate rather than descriptive content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. The remaining gap is behavioral: with all four parameters optional, the description never states whether omitting date defaults to today, which is the key question for a daily-draw tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%: art, fields, and precision are documented in the schema, while date carries only a pattern and no prose description. The phrase 'based on date seed' partially fills that gap by implying date drives the draw, but it does not state the default when date is omitted, which matters for a zero-required-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Daily three-card draw') and adds the distinguishing mechanism ('based on date seed'), which separates it from a generic three-card spread. It does not, however, explicitly contrast with the nearby sibling astroway_tarot_lenormand_draw_three_card, so the agent must infer the difference 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no named alternative. 'Daily' implies a recurring date-based reading, but nothing states when to prefer this over astroway_tarot_lenormand_draw_three_card, astroway_tarot_marseille_daily, or the other daily-draw siblings. The bracket lines give an endpoint and cost, 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_tarot_lenormand_draw_9_card_squareLenormand: 9-Card SquareBRead-onlyIdempotentInspect
Three-by-three grid: rows = past/present/future, cols = mind/heart/body.
[Group: Tarot: Lenormand] [Endpoint: POST /v1/tarot/lenormand/draw/9-card-square] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
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 description's main added value is the 10-credit cost and endpoint. It says nothing about determinism from `seed`, reversal behavior, or response shape beyond the grid layout.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very tight: the spread semantics are front-loaded in one sentence, followed by compact group/endpoint/cost metadata. Nothing is padded, though the three bracketed metadata lines could be trimmed to just the cost signal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return structure needn't be explained, and the spread geometry is given. But with six parameters and half of them undocumented, plus no routing guidance among the many Lenormand draw siblings, the definition is only minimally sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50% (art, fields, precision documented; seed, question, allowReversed not), and the description adds no parameter meaning at all – no explanation of how `question` is used, what `seed` does for reproducibility, or whether `allowReversed` is meaningful for Lenormand, where reversals are traditionally atypical yet default to true.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description defines the spread concretely – a three-by-three grid with row and column semantics – which, combined with the name 'draw_9_card_square', makes the operation and its output structure unambiguous. It does not, however, distinguish this spread from sibling draws like grand_tableau, line_of_five, or three_card.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no mention of alternative Lenormand spreads, despite many siblings (draw_relationship, draw_three_card, draw_grand_tableau). The grid dimensions hint at a situational overview across time and life domains, but that is left for the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_lenormand_draw_celtic_cross_lenormandLenormand: Celtic CrossCRead-onlyIdempotentInspect
Adapted Celtic Cross with Lenormand cards.
[Group: Tarot: Lenormand] [Endpoint: POST /v1/tarot/lenormand/draw/celtic-cross-lenormand] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
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's one genuine addition is the cost (10 credits, Tier 1) and the endpoint, which is useful operational context; it says nothing about how the draw behaves, how the seed parameter affects determinism, or how allowReversed influences results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely tight and front-loaded: the first line carries the meaning and the bracketed metadata lines are scannable. Nothing is wasted, though the brevity is partly under-specification rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 six-parameter tool with half its parameters undocumented and a near-duplicate sibling, the description is too thin to let an agent call it confidently. It omits the one thing that would matter most here: how this differs from astroway_lnd_celtic_cross_lenormand and when each should be chosen.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, and the description adds no parameter meaning whatsoever. Three of six parameters (seed, question, allowReversed) are documented neither in the schema nor in the description, so an agent gets no help on whether a question is required for meaningful output or how the seed interacts with a 'random' draw.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific spread (Adapted Celtic Cross) and a specific deck (Lenormand), which distinguishes it from the three-card, line-of-five, and grand-tableau Lenormand draws and from the Marseille/Rider-Waite Celtic Cross variants. However, it does not distinguish itself from the near-identical sibling astroway_lnd_celtic_cross_lenormand, leaving an ambiguity the agent must resolve elsewhere.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 what question types suit a Celtic Cross versus a smaller spread, no mention of prerequisites, and no routing to a companion interpretation tool (e.g. astroway_ai_interpret_tarot) or to the sibling celtic-cross variants. The metadata block only supplies group, endpoint, and cost.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_lenormand_draw_grand_tableauLenormand: Grand TableauBRead-onlyIdempotentInspect
Full 36-card layout: every card and house used.
[Group: Tarot: Lenormand] [Endpoint: POST /v1/tarot/lenormand/draw/grand-tableau] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
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 the layout completeness and cost (10 credits), but says nothing about side effects, permissions, or output behavior beyond what annotations cover. It adds some billing context but not rich behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two content sentences plus bracketed endpoint/cost metadata. Front-loaded and free of redundancy, though the endpoint line is arguably not needed by an agent. Efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be explained. Annotations cover safety. However, for a tool sitting among many Lenormand spread variants, the description omits usage guidance and parameter clarification, leaving the agent to infer when this spread applies.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50% (art, fields, precision documented; seed, question, allowReversed not). The description mentions no parameters and does not compensate for the undocumented ones. An agent must rely on the schema alone for half the inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool produces a full 36-card layout with every card and house used, which is a specific resource and scope. It implicitly distinguishes from partial Lenormand spreads, but does not name any sibling to make the distinction explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no alternatives, no prerequisites. The agent gets no help deciding between this and the many other Lenormand draw tools (three-card, nine-card square, relationship, etc.).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_lenormand_draw_line_of_fiveLenormand: Line of FiveCRead-onlyIdempotentInspect
Five-card linear story spread.
[Group: Tarot: Lenormand] [Endpoint: POST /v1/tarot/lenormand/draw/line-of-five] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
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), so the description carries a lower burden. It usefully adds the billing fact ('10 credits (Tier 1)') and the endpoint, which an agent needs for cost-awareness. It does not otherwise disclose return format or randomization behavior, but that is largely covered by annotations and the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely compact and front-loaded: the operative phrase leads, followed by structured bracket tags for group, endpoint, and cost. Nothing is padded. The only weakness is that the brevity comes at the expense of usage guidance, not that any sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description still leaves meaningful gaps: no guidance on selecting this spread, no explanation of the question/seed/reversed parameters, and no note on determinism despite idempotentHint. For a 6-parameter divination tool surrounded by near-identical siblings, this is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%, leaving seed, question, and allowReversed without documented meanings, and the description adds nothing to compensate. Most notably it never mentions the `question` parameter, which is the semantic core of a divination draw, nor the `allowReversed` default. It relies entirely on the schema that is already half-undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and shape: 'Five-card linear story spread,' which lets an agent distinguish it from the sibling Lenormand spreads (three_card, 9_card_square, grand_tableau, celtic_cross_lenormand). The name/title reinforce the same verb+resource. It stops short of explicit sibling differentiation in prose, but the spread type is specific enough to route on.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It does not say when a five-card linear reading is preferable to the three-card, relationship, or 9-card square spreads that sit right next to it in the catalog. The only routing signal is the spread geometry implied by the title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_lenormand_draw_relationshipLenormand: RelationshipBRead-onlyIdempotentInspect
7-card relationship dynamics.
[Group: Tarot: Lenormand] [Endpoint: POST /v1/tarot/lenormand/draw/relationship] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is covered. The description adds genuinely useful behavioral context in the cost (10 credits, Tier 1) and the concrete endpoint, but says nothing about latency, deck requirements, or how randomness/seed behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short and front-loaded — the spread definition leads, with group/endpoint/cost as bracketed metadata. Nothing is padded, though the metadata lines are boilerplate rather than tool-specific explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 handle safety. What remains missing is routing guidance among the many Lenormand/tarot draws and any note on the optional question parameter, leaving the definition adequate but thin for a spread-selecting tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% across 6 parameters, and the description contributes nothing about art, seed, fields, question, precision or allowReversed. With half the parameters undocumented and no descriptive compensation, the agent has no extra semantic grounding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: a 7-card Lenormand draw for relationship dynamics. The spread size and topic distinguish it from Lenormand siblings such as the three-card, nine-card square, line of five and grand tableau, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this spread over the other Lenormand draws (three_card, line_of_five, 9_card_square, grand_tableau, celtic_cross_lenormand) or over the Rider-Waite relationship draw. The agent must infer selection purely from spread size.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_lenormand_draw_three_cardLenormand: Three-CardBRead-onlyIdempotentInspect
Subject / Situation / Outcome three-card line.
[Group: Tarot: Lenormand] [Endpoint: POST /v1/tarot/lenormand/draw/three-card] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely useful non-annotation context: the billing cost (10 credits, Tier 1) and the HTTP endpoint. It says nothing about randomness/determinism of a seeded draw, which is the main behavioral question for this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short and front-loaded, with the spread's meaning in the first clause and metadata in bracketed groups. Nothing is redundant, though the brevity is under-specification rather than true efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 described, and the cost/endpoint metadata is a plus. But usage routing against ~10 similar spread tools and any parameter semantics are missing, leaving the definition adequate but thin for a paid, seeded draw operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%, yet the description explains no parameters at all. seed, question, and allowReversed are undocumented in both the schema and the description, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource (Lenormand three-card line) and the three positional slots (Subject / Situation / Outcome), which lets an agent distinguish it from line_of_five, 9_card_square, and grand_tableau siblings. It does not restate the draw verb explicitly, but the name and spread layout make the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to choose this spread over the many sibling Lenormand spreads (relationship, daily, line of five, Celtic Cross) or what inputs a caller should supply. The cost line is the only selection-relevant context offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_lenormand_housesLenormand: 36 HousesARead-onlyIdempotentInspect
The 36 fixed houses for Grand Tableau interpretation.
[Group: Tarot: Lenormand] [Endpoint: GET /v1/tarot/lenormand/houses] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No |
TDQS
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 new operational context — the endpoint and a 10-credit Tier 1 cost — which is useful for budget-aware planning, but it says nothing about caching, latency, or whether the result is static reference data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence states the payload, followed by three bracketed metadata lines (group, endpoint, cost) that each carry distinct, non-redundant information. Nothing is padded or repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and the tool takes no required parameters. What remains missing is minor: no hint that it is a parameterless static reference call or how its output relates to a tableau draw, but nothing needed to invoke it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (fields, precision) are fully documented in the schema, including examples and semantics, so the baseline is 3. The description adds nothing about the compact-mode parameters, which is acceptable when the schema already carries them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('the 36 fixed houses') and its domain role ('for Grand Tableau interpretation'), so an agent knows exactly what comes back. It does not, however, distinguish itself from siblings like astroway_tarot_lenormand_draw_grand_tableau or astroway_lnd_celtic_cross_lenormand, leaving the agent to 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentioning 'Grand Tableau interpretation' implies the usage context, but there is no explicit when-to-use, no prerequisite, and no named alternative. An agent can guess this is a static reference lookup that complements a tableau draw, but the routing decision 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_tarot_marseille_birth_cardMarseille: Birth CardBRead-onlyIdempotentInspect
Birth card per Greer method, Marseille deck.
[Group: Tarot: Marseille] [Endpoint: POST /v1/tarot/marseille/birth-card] [Required: date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| primary | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuinely useful operational context — the POST endpoint and the 10-credit Tier 1 cost — which an agent cannot get from annotations or schema, but it says nothing about the returned payload or whether the cost is incurred per call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely tight — one descriptive sentence plus a compact structured metadata block with endpoint, required param and cost front-loaded. Nothing is padded, though the metadata block repeats facts (group, endpoint) that add little selection value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 read-only/cost facts are present. However, for a tool sitting among dozens of overlapping tarot computations, the absence of any deck/method selection guidance or alternative routing leaves the definition only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, with art, fields and precision each documented in the schema itself; the description only restates that date is required, matching the schema's required list. It adds no format or interpretation detail (e.g., how a date maps to a card) beyond structured data, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (a birth card) and method (Greer) plus the deck (Marseille), which usefully separates it from the sibling astroway_tarot_rider_waite_birth_card. It does not explain what a 'birth card' actually is or how it is derived, so a wholly uninformed agent still has a small gap, but the verb+resource is identifiable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use context and no routing to alternatives such as astroway_tarot_marseille_year_card or the Rider-Waite birth card. The only usage cue is the bare 'Required: date' line, which is schema information 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_tarot_marseille_cardsMarseille: All CardsCRead-onlyIdempotentInspect
78-card Marseille deck. Justice = 8, Strength = 11 (pre-Waite swap). Pip minors interpreted by number+suit.
[Group: Tarot: Marseille] [Endpoint: GET /v1/tarot/marseille/cards] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No |
TDQS
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 the endpoint and a cost figure (10 credits, Tier 1), which is genuinely useful operational context, but it says nothing about response shape or pagination beyond what the output schema gives.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and tight: the distinguishing deck conventions come first, followed by compact bracketed metadata. No wasted prose, though the domain trivia is arguably more than a selection decision requires.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless, read-only catalog call with an output schema, the definition is minimally sufficient. It still leaves unresolved how this full-deck tool relates to the slug, majors, and other Marseille siblings, which is the main thing an agent would need to choose correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters (fields, precision) are fully documented in the schema, so the baseline of 3 applies. The description adds nothing about the compact-mode projection or precision handling, though its note about pip-minor interpretation is relevant to the returned data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description asserts domain facts about the deck (78 cards, Justice=8/Strength=11, pip minors by number+suit) but never states the tool's action — that it returns the full Marseille card catalog. The name and title carry the verb, so an agent can guess, but the description itself is a content blurb rather than a statement of purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of alternatives, despite many near-neighbours (astroway_tarot_marseille_cards_slug, astroway_tarot_marseille_majors, astroway_tarot_decks, astroway_tarot_rider_waite_cards). Nothing tells the agent when to pick this full-deck listing over a single-card lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_cards_slugMarseille: Single CardARead-onlyIdempotentInspect
Single Marseille card lookup by slug.
[Group: Tarot: Marseille] [Endpoint: GET /v1/tarot/marseille/cards/{slug}] [Required: slug] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Card slug, lowercase and hyphenated. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| slug | No | |
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnly, idempotent, not destructive, closed-world), so the bar is lower. The description earns credit for adding the concrete endpoint and an honest cost disclosure ('not in the public credit manifest'), which flags real billing uncertainty that annotations do not cover. It stops short of 5 because pagination/error behavior on an unknown slug is unstated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One-line purpose sentence is front-loaded, followed by a bracketed metadata block that is scannable and zero-waste. Slightly telegraphic rather than fully prose, but no filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 fully cover the read-only/idempotent profile. Endpoint, group and cost are supplied. The only real omission is how to discover a valid slug, which is a minor gap for a lookup-by-key tool in a rich structured context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and all three parameters (slug, fields, precision) are documented in the schema itself, including the compact-mode syntax and precision bounds. The description adds nothing beyond repeating 'Required: slug', so the baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+scope: 'Single Marseille card lookup by slug'. The word 'Single' implicitly contrasts with the sibling list tool astroway_tarot_marseille_cards, so an agent can distinguish it, but the sibling is never named explicitly, so it stops short of a clean 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance and never points at alternatives. It never says that astroway_tarot_marseille_cards is how you obtain a valid slug, nor when the majors/spreads siblings would be preferable. 'Required: slug' restates schema metadata rather than giving usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_clarifyMarseille: ClarifierCRead-onlyIdempotentInspect
Single clarifying card.
[Group: Tarot: Marseille] [Endpoint: POST /v1/tarot/marseille/clarify] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| type | No | |
| drawn | No | |
| spread | No |
TDQS
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 bar is low. The description adds the endpoint and cost (10 credits) context, which is useful, but says nothing about determinism of the draw, how question/seed affect the result, or reversal behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely terse and front-loaded, with metadata block (group, endpoint, cost) clearly separated. Nothing is wasted, though at three words of actual purpose the brevity tips into under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter, zero-required tool with an output schema, the description is far too thin. An agent cannot tell how to supply question vs seed, when to change allowReversed, or how this relates to draw_single / rider_waite_clarify. Only the cost/endpoint metadata is genuinely additive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%; art, fields, and precision are documented in-schema, while question, seed, and allowReversed have no schema description. The tool description compensates for none of these gaps - it does not explain what question is for, how seed makes draws reproducible, or what allowReversed does.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Single clarifying card' states the resource (a card) and its role (clarifying) but is telegraphic and does not distinguish it from the many sibling draw tools (astroway_tarot_marseille_draw_single, astroway_tarot_rider_waite_clarify). An agent gets the gist but not why this differs from a single-card draw.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, no alternatives named. It never explains that a clarifying card is drawn to resolve ambiguity in a prior reading, nor differentiates it from draw_single or the Rider-Waite clarify sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_dailyMarseille: Daily CardBRead-onlyIdempotentInspect
Daily Marseille card based on date seed.
[Group: Tarot: Marseille] [Endpoint: POST /v1/tarot/marseille/daily] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| date | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive, so the safety profile is covered. The description contributes genuine extra context: a cost of 10 credits (Tier 1) and the POST endpoint, which the annotations do not express. It stops short of explaining how the date seed affects output (determinism, whether omitting date means today), which is the behavior an agent would most want to know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: the core purpose is in the first clause, and the metadata lines (group, endpoint, cost) are compact and each carries real information. No filler or repetition, though the brevity edges toward under-specification rather than elegance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. What remains missing for a 4-optional-param tool is defaulting behavior (is date optional because it defaults to today?) and any routing guidance among the many tarot daily/draw siblings. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so most parameters are already documented in the schema. The phrase 'based on date seed' hints that the date parameter determines the card deterministically, but the description says nothing about the art, fields, or precision parameters and does not clarify date defaults. Baseline 3 is appropriate given the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (the Marseille daily card) and adds the mechanism (date seed), which lets an agent separate it from astroway_tarot_rider_waite_daily and astroway_tarot_lenormand_daily by deck. It is weaker on verb phrasing — there is no explicit 'returns/gets' action — and the core sentence closely mirrors the title 'Marseille: Daily Card', so it sits just below a fully self-contained purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Nothing tells the agent how this differs in practice from astroway_tarot_marseille_draw_single or astroway_tarot_marseille_birth_card, nor whether it should be called once per day. 'Daily' implies a cadence, but that inference is left entirely to the caller.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_draw_careerMarseille: CareerBRead-onlyIdempotentInspect
4-card career spread.
[Group: Tarot: Marseille] [Endpoint: POST /v1/tarot/marseille/draw/career] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
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 by structured data. The description adds genuinely useful context that annotations do not carry: the cost (10 credits, Tier 1) and the exact endpoint. It does not disclose auth requirements, whether the seed makes draws reproducible, or what the spread yields, so it is helpful but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first line and the group/endpoint/cost tags are compact, non-redundant metadata. Nothing reads as filler. It is arguably too terse rather than bloated, but every line earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. What remains missing is spread semantics (what the four positions mean) and any hint of how seed/question/allowReversed affect the draw — for a divination tool whose value is in the reading, that is a real gap, though the structured fields carry much of the load.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50% — three of six parameters (seed, question, allowReversed) have no schema description, and the description adds nothing about any parameter. Critical semantics like whether `seed` makes the draw deterministic or what `question` influences are left entirely undocumented in both places. With half the parameters undocumented and no compensating text, this falls below the 3 baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action and resource: a 4-card career spread drawn from the Marseille deck, which separates it from the many other Marseille spread variants (love, spiritual, decision, celtic cross, single). The card count and topic together give an agent a clear picture of the outcome. It stops short of full sibling differentiation because it never contrasts itself with the Rider-Waite career draw or explains the spread layout, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 condition selecting this career spread over astroway_tarot_marseille_draw_three_card, draw_seven_card, or the Rider-Waite equivalent. The agent must infer from the name alone that this is for career questions. The meta tags give cost and endpoint but no usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_draw_celtic_crossMarseille: Celtic CrossBRead-onlyIdempotentInspect
Adapted 10-card Celtic Cross with Marseille pip-style reading.
[Group: Tarot: Marseille] [Endpoint: POST /v1/tarot/marseille/draw/celtic-cross] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and closed-world scope, so the safety profile is covered. The description contributes non-schema operational context (cost of 10 credits, Tier 1, POST endpoint, group), but says nothing about draw behavior itself, such as whether seeding makes the draw reproducible or how reversed cards are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is compact and front-loads the spread identity, with the endpoint/cost metadata in tagged lines that are easy to parse. There is no filler, though the brevity is partly under-specification rather than pure economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 unnecessary, and the description does convey spread, deck style, and cost. However, for a 6-parameter draw tool surrounded by dozens of near-synonymous tarot draws, it omits the usage routing and the purpose of question/seed/allowReversed, leaving real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% and the description contributes no parameter meaning at all. The undocumented parameters (seed, question, allowReversed) have no explanation anywhere, and the two schema descriptions that do exist (fields, precision) are recycled astrology text referencing planets.longitude and houses.cusp, which is actively confusing for a tarot draw tool. With low coverage the description is expected to compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific spread ("Adapted 10-card Celtic Cross") and deck style ("Marseille pip-style reading"), which lets an agent distinguish it from the RWS and Lenormand Celtic Cross siblings and from other Marseille spreads like draw_cross or draw_seven_card. The verb is only implied by the tool name rather than stated, so it stops short of the level of explicit sibling differentiation seen in the best definitions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of alternatives among the many Marseille draw siblings (draw_cross, draw_seven_card, draw_three_card, draw_decision, draw_love, etc.). The agent must infer the choice purely from the spread name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_draw_crossMarseille: Tirage Réduit (Jodorowsky Reduced Cross)BRead-onlyIdempotentInspect
Authentic 5-card cross from Jodorowsky/Costa "The Way of Tarot" + Camoin ArtduTarot: 4 Major Arcana (consultant / external / higher / result) + 5th synthesis card (numerological sum reduced ≤22).
[Group: Tarot: Marseille] [Endpoint: POST /v1/tarot/marseille/draw/cross] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior. The description adds useful operational context the annotations don't: a 10-credit Tier 1 cost, the POST endpoint, and the ≤22 numerological reduction rule for the synthesis card. It still says nothing about how seed or allowReversed affect the draw, so it does not fully carry the burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The layout description is front-loaded and the metadata tags are compact. The sentence is dense but every clause (positions, synthesis rule, cost, endpoint) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and annotations cover safety. What remains missing is the most decision-relevant content for this tool family: how it differs from the other Marseille draw spreads and what 'question' is for. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, and the description contributes zero parameter information. Undocumented params like 'seed', 'question' and 'allowReversed' are left for the agent to infer with no help from the prose, which is below the minimum-viable 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('5-card cross' draw) and even enumerates the four positions plus the synthesis card, which is more than most draw tools offer. It doesn't explicitly distinguish itself from siblings like draw_celtic_cross or draw_seven_card beyond the spread name and tradition, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to choose this spread over the many sibling Marseille spreads (single, three-card, seven-card, celtic cross, love, career). The Jodorowsky/Costa attribution implies a tradition but gives no routing condition or exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_draw_decisionMarseille: Yes/NoBRead-onlyIdempotentInspect
Single-card yes/no with verdict.
[Group: Tarot: Marseille] [Endpoint: POST /v1/tarot/marseille/draw/decision] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| reason | No | |
| verdict | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered. The description adds genuinely useful operational context — endpoint and a 10-credit Tier 1 cost — but says nothing about how the verdict is produced, whether the draw is deterministic given a seed, or what a 'verdict' contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose, followed by compact bracketed metadata lines. Nothing is padded or redundant, though the group/endpoint/cost block is administrative rather than descriptive and could arguably be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry the safety profile. However, for a 6-parameter tool with half its parameters undocumented and no usage routing among ~15 Marseille draw siblings, the definition is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50% (art, fields, precision documented; seed, question, allowReversed not), and the description adds zero parameter meaning. It does not even mention that a `question` is expected, despite the tool being framed as a question-answering draw, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource and outcome: a single-card draw that yields a yes/no answer with a verdict. This separates it from the bare astroway_tarot_marseille_draw_single, though it never names that sibling explicitly, so the differentiation is implicit rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 a yes/no decision draw is preferable to draw_single, draw_cross, or the Rider-Waite equivalent, and no prerequisites. The agent must infer the use case entirely from the title and one-line summary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_draw_heroMarseille: Tirage du Héros (Hero's Journey)BRead-onlyIdempotentInspect
Authentic 6-card Hero's Journey spread from Jodorowsky/Costa "The Way of Tarot": Hero / Objective / two Obstacles / Key / Resolution.
[Group: Tarot: Marseille] [Endpoint: POST /v1/tarot/marseille/draw/hero] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
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 genuinely useful context absent from annotations — the cost (10 credits, Tier 1) and the source/school of the spread (Jodorowsky/Costa). It says nothing, though, about how seed or allowReversed affect the reading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded with the spread nature and structure, followed by compact metadata lines. Nothing is wasted, though the bracket block is structured plumbing rather than explanatory content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The presence of an output schema means return values needn't be explained, and annotations cover the safety profile, so the description is not required to carry those. It is still incomplete on the input side: the undocumented 'question' and 'allowReversed' parameters are central to how a draw is performed and remain unexplained anywhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% — art, fields, and precision are documented, but seed, question, and allowReversed have no schema description. The description adds no parameter meaning at all, not even for the central 'question' input that a divination draw would obviously need explained, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific spread concept (6-card Hero's Journey) and enumerates all positions (Hero / Objective / two Obstacles / Key / Resolution), so the agent knows exactly what it produces. It does not, however, explicitly distinguish itself from the many sibling draw_* spreads (celtic_cross, love, career, decision), leaving the differentiation implicit in the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains no when-to-use guidance, no conditions, and no alternatives named. With roughly a dozen sibling spreads such as draw_celtic_cross, draw_cross, and draw_seven_card, the agent gets no help choosing this one over the others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_draw_loveMarseille: LoveBRead-onlyIdempotentInspect
5-card love and connection spread.
[Group: Tarot: Marseille] [Endpoint: POST /v1/tarot/marseille/draw/love] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive), so the bar is low, and the description adds a genuinely actionable trait not present in structured fields: a 10-credit Tier 1 cost. It also exposes the underlying endpoint. It does not, however, disclose whether the draw is random or seeded/deterministic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very tight and front-loaded: the spread definition leads, with group/endpoint/cost as clearly bracketed metadata. Nothing is wasted, though the bracketed scaffolding is boilerplate rather than tool-specific guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 remains missing is behavioral context around the draw itself (determinism via seed, whether a question is expected, reversed-card handling) for a 6-parameter tool with half its schema undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: art, fields, and precision are documented in-schema while seed, question, and allowReversed are not. The description adds no parameter meaning at all, so it does not compensate for the undocumented third of the parameter surface — notably the 'question' field an agent would likely need to fill.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action (draw) with the resource (Marseille Tarot) and the spread identity ('5-card love and connection spread'), which separates it from sibling draws like draw_career, draw_celtic_cross, or draw_single. It stops short of explicitly contrasting itself with those siblings, but the topic+card-count combination is sufficient to disambiguate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'love and connection' framing implies when the tool applies, but there is no explicit when-to-use statement and no named alternative (e.g., tarot_lenormand_draw_relationship, tarot_rider_waite_draw_love_triangle, or tarot_marseille_draw_cross). Usage is left to inference from the spread name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_draw_seven_cardMarseille: Seven-CardCRead-onlyIdempotentInspect
7-card pyramid spread.
[Group: Tarot: Marseille] [Endpoint: POST /v1/tarot/marseille/draw/seven-card] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so safety is covered. The description usefully adds the credit cost (10 credits, Tier 1) and the HTTP endpoint, but says nothing about what the spread returns, how allowReversed affects the draw, or how randomness interacts with the seed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short and front-loaded with the defining fact (seven-card pyramid). The bracketed endpoint/cost metadata is boilerplate but contains a genuinely useful cost signal, so little is wasted despite the near total absence of substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is an output schema, so return values need not be described, and annotations cover safety. However, for a fixed-layout divination tool the agent still lacks the position meanings of a 7-card pyramid, whether a question is required or optional for this spread, and how it differs from the more common three-card and celtic cross siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Six parameters at ~50% schema description coverage; `art`, `fields`, and `precision` are documented in the schema, but `question`, `seed`, and `allowReversed` are undocumented anywhere. The description contributes no parameter meaning at all, so it fails to compensate for the coverage gap, particularly on seed reuse and reversal behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific spread variant ('7-card pyramid spread'), which distinguishes it from the sibling draw_single, draw_three_card, and draw_celtic_cross tools. It is a noun fragment with no verb and no mention of tarot/Marseille, but the variant name alone is enough to identify the resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No indication of when to choose this spread over the many siblings (three-card, cross, celtic cross, love, career, decision). No prerequisites, no note on whether a `question` is expected for this particular spread.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_draw_singleMarseille: Single CardCRead-onlyIdempotentInspect
Single-card draw from Marseille deck.
[Group: Tarot: Marseille] [Endpoint: POST /v1/tarot/marseille/draw/single] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
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 the transport endpoint and a concrete cost (10 credits, Tier 1), which is genuinely useful billing context, but says nothing about whether the draw is randomized, whether the seed makes it reproducible, or how reversals are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single descriptive sentence is front-loaded and waste-free, but the bracketed group/endpoint/cost block is scaffolding shared across hundreds of sibling tools rather than information unique to this definition. Terse to the point of being under-specified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, with six optional parameters and no required fields, the description leaves the agent guessing about what a caller should supply and when, which is a meaningful omission for a drawing tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: `seed`, `question`, and `allowReversed` carry no schema documentation, and the description does not compensate for any of them. For a divination tool, the absence of any note on `question` or `allowReversed` (which defaults to true and changes the result set) is a real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: a single-card draw from the Marseille deck. It is clear enough to distinguish from multi-card spreads like draw_three_card or draw_celtic_cross, but it never contrasts itself with near-neighbors such as marseille_daily, marseille_birth_card, or marseille_clarify, which may also produce single-card output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use a single-card draw rather than any other Marseille spread, no mention of prerequisites, and no named alternative. The bracketed endpoint and cost tags are metadata, not usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_draw_spiritualMarseille: SpiritualBRead-onlyIdempotentInspect
4-card spiritual development spread.
[Group: Tarot: Marseille] [Endpoint: POST /v1/tarot/marseille/draw/spiritual] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
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 adds the credit cost (10 credits, Tier 1) and the endpoint, which is genuinely useful context. However, it says nothing about determinism via seed or what the draw returns, so it adds only moderate value over structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the single substantive fact (the spread) and the bracketed metadata is compact and scannable. Every line carries information, though the group/endpoint/cost lines are boilerplate rather than description prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost plus endpoint are disclosed. Still, for a 6-parameter, zero-required draw tool in a crowded sibling family, the absence of routing guidance and parameter explanation leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: art, fields, and precision are documented in-schema, but seed, question, and allowReversed are not. The description explains none of these parameters, so it fails to compensate for the coverage gap; it neither clarifies the effect of allowReversed nor the determinism role of seed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific spread ('4-card spiritual development spread'), which is precisely what separates it from siblings like draw_love, draw_career, or draw_single. The verb is only implied via the tool name, and it does not explicitly route against those siblings, but the resource and scope are clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, despite a large family of sibling draw tools (draw_love, draw_career, draw_decision, draw_hero, draw_cross, etc.) where selection guidance would be most valuable. The spread label hints at the domain but leaves routing to inference by the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_draw_three_cardMarseille: Three-CardBRead-onlyIdempotentInspect
Past / Present / Future three-card spread.
[Group: Tarot: Marseille] [Endpoint: POST /v1/tarot/marseille/draw/three-card] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world scope, so the safety profile is fully covered. The description usefully adds the cost (10 credits, Tier 1) and HTTP endpoint, which are real context beyond the structured fields, but adds nothing about seeding behavior, reversals, or determinism.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line spread definition followed by compact metadata taglines; nothing is padded. The bracket tags are dense but functional rather than redundant prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description leaves two of six parameters completely undefined and gives no usage context, which is thin for a 6-param, no-required-field tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%; seed, question, and allowReversed are undocumented in the schema, and the description contributes no parameter semantics at all. With 6 parameters and no required ones, the description should at least clarify what question and allowReversed do, but it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific spread and its positional meaning (Past/Present/Future) for a tarot draw. The group tag and name identify the Marseille deck, though the description body itself never restates 'Marseille' or the draw verb, leaving cross-deck distinction to the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing is given. With sibling spreads like draw_single, draw_cross, draw_celtic_cross, draw_love, and the parallel rider_waite/lenormand three-card tools, an agent gets no help choosing among them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_interpretMarseille: InterpretBRead-onlyIdempotentInspect
Resolve list of card slugs into meanings.
[Group: Tarot: Marseille] [Endpoint: POST /v1/tarot/marseille/interpret] [Required: cards] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| cards | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cards | No | |
| question | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=true, idempotent=true, destructive=false, openWorld=false, so the safety profile is covered. The description adds genuinely useful non-structured info: the 10-credit Tier 1 cost and the POST endpoint. It does not disclose return shape, but an output schema exists for that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action in one sentence, then packs metadata into bracketed tags with zero filler. Efficient and scannable, though the tags are more structural housekeeping than description content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema covers return values and annotations cover safety, so those gaps are fine. However, for a 5-param tool with only 1 required, the description supplies no usage context and no elaboration on the optional art/fields/precision params, leaving an agent to infer invocation intent from siblings alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%. The description clarifies the required 'cards' argument as 'card slugs' (the schema leaves cards undescribed), adding real value, but the other four params (art, fields, question, precision) receive no description-level elaboration beyond what the schema already says.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Resolve list of card slugs into meanings'), which clearly conveys the operation. Deck variant (Marseille) and the interpret-vs-draw distinction are implied by the title and group tags, but the description does not explicitly differentiate from siblings like tarot_marseille_cards_slug or tarot_rider_waite_interpret.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is '[Required: cards]', which states a prerequisite but not when to use this tool versus the many draw_* siblings or the RWS interpret variant. No when-to-use context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_majorsMarseille: 22 MajorsCRead-onlyIdempotentInspect
22 Major Arcana of Marseille deck.
[Group: Tarot: Marseille] [Endpoint: GET /v1/tarot/marseille/majors] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds useful billing context ([Cost: 10 credits (Tier 1)]) and the endpoint, but discloses nothing else about behavior beyond what 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded, with metadata tags clearly separated. No wasted prose, though the brevity reflects under-specification rather than deliberate economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 direction is covered by annotations, but for a listing tool inside a dense Marseille tool family the description does nothing to help an agent choose it or understand how it differs from the full-deck 'cards' endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both 'fields' and 'precision' are fully documented in the schema, so the baseline is 3. The description contributes no additional meaning about how these parameters affect this specific listing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description '22 Major Arcana of Marseille deck' essentially restates the title 'Marseille: 22 Majors' with no verb indicating what operation occurs (list? draw? describe?). It names the resource but leaves the action ambiguous and does nothing to distinguish it from siblings like astroway_tarot_marseille_cards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance whatsoever, no mention of the related Marseille card/spread tools, and no condition under which an agent should prefer this over astroway_tarot_marseille_cards or astroway_tarot_marseille_spreads.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_spreadsMarseille: All SpreadsBRead-onlyIdempotentInspect
List of all Marseille spreads (incl. Jodorowsky cross).
[Group: Tarot: Marseille] [Endpoint: GET /v1/tarot/marseille/spreads] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No |
TDQS
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 by structured data. The description adds genuinely useful non-annotation context: the cost (10 credits, Tier 1) and the underlying endpoint, which helps with budgeting and tracing. It says nothing further about pagination or response size, so it is adequate rather than rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and waste-free, with the endpoint/group/cost metadata compactly bracketed below. Nothing is padded, though the bracketed metadata is templated and contributes less than the opening sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 two optional params are fully documented in the schema. What is missing is routing context: in a catalog with 'spreads' and 'spreads_slug' sitting next to each other, the description should say which to pick, and it does not.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% – both 'fields' and 'precision' are fully documented in the input schema, including examples and defaults. The description adds no parameter guidance beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('List of all Marseille spreads') and even names an included item (Jodorowsky cross), so the agent knows exactly what it returns. It does not, however, distinguish itself from the sibling astroway_tarot_marseille_spreads_slug, leaving the 'all vs. one' distinction to be inferred from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 prerequisites, and no pointer to the obvious alternative (astroway_tarot_marseille_spreads_slug) for fetching a single spread. The agent must infer usage entirely from the name and title.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_spreads_slugMarseille: Single SpreadBRead-onlyIdempotentInspect
Definition of a single Marseille spread.
[Group: Tarot: Marseille] [Endpoint: GET /v1/tarot/marseille/spreads/{slug}] [Required: slug] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Spread slug, lowercase and hyphenated. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| slug | No | |
| cardCount | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description adds a genuinely useful behavioral detail in the '[Cost: see your plan — endpoint not in the public credit manifest]' line, but it doesn't disclose anything about return payload or latency, so it is a modest addition rather than rich transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-line purpose is front-loaded and the bracketed metadata lines are terse and scannable. There is some redundancy between the endpoint line and the description, but nothing is wasteful enough to hurt readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full input schema, an output schema, and annotations covering the safety profile, the definition only needs to add routing and cost context, which it partially does. The cost note is vague ('see your plan') and no alternative is named, leaving a small gap for an agent choosing among the numerous tarot siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so slug, fields, and precision are already documented in the schema itself. The description only repeats '[Required: slug]' and adds no syntax, format, or usage nuance beyond the structured fields, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource (a single Marseille spread) and its scope via the word 'single', which implicitly contrasts with the sibling list tool astroway_tarot_marseille_spreads. However, it uses a noun phrase ('Definition of...') rather than a verb and never explicitly names the list alternative, so the differentiation relies on inference rather than direct contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusion conditions, and no named alternative. The only usable cue is the bracketed '[Required: slug]' line, which implies you need a known slug but does not tell the agent when to prefer this tool over the spreads list or the draw_* tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_timingMarseille: TimingCRead-onlyIdempotentInspect
Single timing card.
[Group: Tarot: Marseille] [Endpoint: POST /v1/tarot/marseille/timing] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| type | No | |
| drawn | No | |
| spread | No |
TDQS
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 the cost (10 credits, Tier 1), which is genuinely useful behavioral context beyond the annotations, but says nothing about how the draw behaves or what determines the timing result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and the endpoint/group/cost blocks are well-structured metadata. But the actual purpose line is a three-word fragment that is under-specified rather than genuinely concise, leaving little for an agent to act on.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. Still, for a 6-parameter divination tool with no required fields, the definition omits the usage context, the role of the question/seed inputs, and any distinction from sibling draws, leaving the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 50% schema description coverage, three parameters (seed, question, allowReversed) are undocumented in both schema and description. The description adds no meaning for any parameter, not even the central `question` field that would drive a timing reading, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
"Single timing card" conveys a single-card draw oriented to timing questions, which is marginally more than the title. However it gives no verb, no explanation of what a timing card answers, and no differentiation from close siblings like astroway_tarot_marseille_draw_single or astroway_tarot_rider_waite_timing. The 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no when-to-use guidance, no prerequisites, and no mention of alternatives such as draw_single, clarify, or the Rider-Waite timing sibling. An agent must infer the use case entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_marseille_year_cardMarseille: Year CardBRead-onlyIdempotentInspect
Year card per Greer method.
[Group: Tarot: Marseille] [Endpoint: POST /v1/tarot/marseille/year-card] [Required: date, year] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| date | Yes | ||
| year | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| card | No |
TDQS
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 genuinely useful operational context the annotations cannot: the POST endpoint, the required input set, and a 10-credit Tier 1 cost. It does not explain what a Greer year card represents or how the computation resolves, leaving some behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The one-line definition plus a compact bracketed metadata block is tightly front-loaded, with endpoint, requirements and cost immediately visible. No filler sentences. Slightly terse on substance but structurally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/endpoint/required metadata round out the call mechanics. However, for a specialized esoteric calculation keyed to a named method, the description gives no indication of what the caller should expect or how it differs meaningfully from the birth-card sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, and the schema itself documents art, fields, and precision in reasonable detail. The description only restates the two required parameters (date, year), which are already visible in the schema's required array, so it adds little semantic value. Baseline 3 for a moderately documented schema is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific artifact (Year card) computed per a named method (Greer) within a specific deck tradition (Marseille). It is clearly separable from the Rider-Waite sibling astroway_tarot_rider_waite_year_card by the tradition named. It stops short of explicitly distinguishing itself from its sibling, so not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 agent must infer from the title alone that this is the Marseille-specific variant of a year-card calculation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_adviceRWS: Advice CardCRead-onlyIdempotentInspect
Single advice card.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/advice] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| type | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and closed-world, so the safety profile is fully covered without the text. The description usefully adds operational facts the annotations do not carry: the endpoint, that it is a POST, and a cost of 10 credits (Tier 1). It says nothing about return shape or whether the draw is deterministic given the seed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is three short lines and the one substantive statement, 'Single advice card', is front-loaded ahead of the metadata brackets. Nothing is padded or repetitive; it is terse but well organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With six optional parameters, no required fields, and a specialized domain (RWS tarot), the description does far too little: it omits usage routing, omits any explanation of the undocumented parameters, and only gestures at cost. The output schema covers return values, so that omission is fine, but the input-side gaps are substantial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: art, fields, and precision are documented in the schema, but seed, question, and allowReversed (which defaults to true) have no descriptions anywhere. The description does not compensate for that gap in any way, and 'advice card' gives no hint that a question can be supplied or that reversed cards are permitted.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Single advice card' identifies both the resource (a tarot card) and the shape of the result (one card, advice-oriented), which is more specific than the name alone. However, it does not distinguish this from near-identical siblings such as astroway_tarot_rider_waite_draw_single, _clarify, or _draw_decision, so an agent cannot tell why it would pick this one over those.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 statement of what an 'advice' reading is for, no exclusions, and no reference to the many sibling tarot drawing tools. The 'advice' label implies a context but never states one, leaving selection 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_tarot_rider_waite_birth_cardRWS: Birth CardARead-onlyIdempotentInspect
Birth card from date per Mary Greer's method (m+d+y reduced).
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/birth-card] [Required: date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| primary | No | |
| secondary | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds cost (10 credits, Tier 1), the endpoint, and the required input, which are genuinely useful operational details beyond the annotations. It does not cover return format, but an output schema exists to carry that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence of purpose followed by compact bracketed metadata (group, endpoint, required, cost). Zero filler and front-loaded with the core definition; the tag block is dense but each entry carries real information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety, an output schema present, and pricing/endpoint/required-input disclosed, an agent has enough to call the tool correctly. The remaining gap is sibling differentiation against the many other tarot card tools, which is only indirectly handled by the group tag.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%; the schema itself documents art, fields, and precision. The description only reinforces that date is required and adds no syntax or semantics beyond the schema. Baseline 3 is appropriate when the schema does the bulk of the parameter work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: computes a birth card from a date using Mary Greer's m+d+y reduction method. The [Group: Tarot: Rider-Waite-Smith] tag and the distinct sibling astroway_tarot_marseille_birth_card let an agent separate it from the Marseille variant, though the description body itself does not name that distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by naming a specific method (Mary Greer) and the required date parameter, but there is no explicit when-to-use, no exclusions, and no routing to alternatives such as the Marseille birth card or the RWS year_card / soul_personality_card. An agent must infer selection from the group tag alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_cardsRWS: All CardsARead-onlyIdempotentInspect
Full 78-card RWS deck listing with upright/reversed meanings, keywords, astrology, and yes/no affinity.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: GET /v1/tarot/rider-waite/cards] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/ idempotent / non-destructive, so the safety profile is covered. The description adds real value beyond them: the exact content of each card record (upright/reversed, keywords, astrology, yes/no affinity) and the operational cost (10 credits, Tier 1), which helps an agent budget calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is a single front-loaded sentence with no filler, and the bracketed group/endpoint/cost lines are scannable metadata. Slight deduction because the metadata block is three separate lines of overhead for a read-only listing tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description covers scope, contents, and cost. The remaining gap is sibling routing within the dense RWS family, which an agent could get wrong.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (fields, precision) are documented in the schema itself, so baseline 3 applies. The description adds nothing about parameter behavior, and notably the schema's fields/precision examples reference planets/longitudes, which look copied from a chart tool and are not reconciled here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource plus scope: 'Full 78-card RWS deck listing with upright/reversed meanings, keywords, astrology, and yes/no affinity.' An agent knows exactly what comes back. It stops short of 5 because it never distinguishes itself from close siblings like astroway_tarot_rider_waite_cards_slug, _majors, _minors, or _courts, which the agent must disambiguate by schema alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternative. The agent must infer that this is a full-reference-deck lookup versus the slug/majors/minors/courts siblings. Usage is only implied by the word 'Full'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_cards_slugRWS: Single CardARead-onlyIdempotentInspect
Single RWS card lookup by slug (e.g. "the-fool", "ace-of-cups"). Returns full meaning structure.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: GET /v1/tarot/rider-waite/cards/{slug}] [Required: slug] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Card slug, lowercase and hyphenated. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| slug | No | |
| upright | No | |
| category | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world, non-destructive, so the safety profile is covered. The description adds 'Returns full meaning structure' and a cost note ('endpoint not in the public credit manifest'), the latter being genuinely useful billing context, but it omits any error behavior for unknown slugs or pagination/field-selection implications.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the essential purpose front-loaded, followed by machine-readable bracketed metadata. Slight redundancy between the [Required: slug] line and the prose, but nothing is bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, full response shape need not be described, and annotations plus 100% parameter coverage handle the rest. The definition is sufficient for correct invocation; only sibling routing guidance is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline would be 3; the description pushes above that by giving concrete slug examples ('the-fool', 'ace-of-cups') that clarify the required identifier format beyond the schema's generic 'lowercase and hyphenated'. The optional `fields`/`precision` parameters are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: single RWS tarot card lookup by slug, with two concrete slug examples. It implicitly contrasts with the bulk `astroway_tarot_rider_waite_cards` sibling via 'Single', but never names that alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by 'single card lookup' — an agent can infer this is for retrieving one known card versus listing or drawing spreads — but there is no explicit when-to-use, when-not-to-use, or named alternative (e.g. the cards index, keywords, or interpret tools).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_clarifyRWS: Clarifier CardBRead-onlyIdempotentInspect
Single clarifying card after a primary draw.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/clarify] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| type | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered. The description adds cost (10 credits, Tier 1) and the endpoint, which is useful operational context, but says nothing about output format, determinism of the seed, or whether the clarifier relates to a supplied question. With annotations carrying the safety burden, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line purpose followed by compact bracketed metadata (group, endpoint, cost). No filler prose and nothing is buried. The bracketed blocks are a bit boilerplate but do not bloat the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. What is missing is routing among the many tarot siblings and any guidance on the undocumented parameters (question, seed, allowReversed), leaving the definition minimally adequate for a 6-param tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: seed, question and allowReversed have no schema descriptions, and the description adds no parameter guidance whatsoever. Even the covered params (art, fields, precision) get no elaboration in the description. 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete resource and role: a single clarifying card drawn after a primary draw. An agent can tell it is a draw-type operation on the Rider-Waite deck. It does not, however, name or distinguish itself from closely related siblings such as astroway_tarot_rider_waite_draw_single or astroway_tarot_marseille_clarify.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"after a primary draw" implies the usage context (sequencing relative to a prior reading), which is genuinely useful. But there is no explicit when-not, no stated alternative (e.g., draw_single for a fresh draw, marseille_clarify for the Marseille deck), and no prerequisite that a primary question/context should be supplied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_courtsRWS: 16 Court CardsBRead-onlyIdempotentInspect
The 16 Court cards (Page, Knight, Queen, King × 4 suits).
[Group: Tarot: Rider-Waite-Smith] [Endpoint: GET /v1/tarot/rider-waite/courts] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world, non-destructive, so safety is fully covered. The description adds the card composition and, via bracketed metadata, the endpoint and a credit cost (10 credits, Tier 1), which is useful operational context. It does not say whether the result is a static catalog or describe pagination, so it goes slightly beyond annotations without being rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence stating exactly what the tool returns, followed by compact group/endpoint/cost metadata. Nothing is wasted and the resource definition is front-loaded, though the sentence is arguably too terse for the routing decision an agent must make.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a zero-required-parameter reference lookup with an output schema, so return values and field shapes need no description. Composition plus endpoint and cost cover what an agent needs to call it; the only real omission, sibling routing guidance, is assessed under usage guidelines.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters (fields, precision) are generic compact-mode controls documented in the schema itself. The description adds no parameter meaning beyond that, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and enumerates its composition ('16 Court cards (Page, Knight, Queen, King × 4 suits)'), which immediately tells an agent what dataset it returns. It does not explicitly contrast itself with siblings like astroway_tarot_rider_waite_majors or astroway_tarot_rider_waite_cards, though the count and card set differentiate it in practice.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to pick this lookup versus astroway_tarot_rider_waite_cards (all 78), _majors, _minors, _suits_suit, or _numbers_n. The agent must infer routing purely from names, and no exclusion or alternative is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_cross_sumRWS: Court Card Cross-SumCRead-onlyIdempotentInspect
Birth-card meditation pair for court-card practice.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/cross-sum] [Required: date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| meditationPair | No |
TDQS
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 adds genuinely useful context the annotations lack: credit cost (10, Tier 1), the required parameter, and the concrete endpoint. It still says nothing about latency, output shape, or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata block is scannable and front-loads group, endpoint, required param and cost efficiently. The prose sentence, however, is short yet contentless, so brevity here reflects under-specification rather than disciplined concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 required param and cost are stated. The critical gap remains the opaque core purpose: an agent has no way to know what this computation does or when it applies, which is inadequate for a specialized divination endpoint in a dense tool family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 75%; art, fields, and precision are well documented in the schema itself. The description only echoes 'Required: date', which duplicates the schema's required array and the YYYY-MM-DD pattern, adding no new parameter meaning. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The line 'Birth-card meditation pair for court-card practice' contains no action verb and never explains what the 'cross-sum' actually computes or returns. An agent reading it alongside dozens of sibling RWS tools (birth_card, courts, daily, year_card) cannot tell what distinct output this produces. It reads as a thematic restatement of the title rather than a purpose statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no selection criteria versus astroway_tarot_rider_waite_birth_card or astroway_tarot_rider_waite_courts, and no stated prerequisites. The metadata block gives 'Required: date' and cost, but that is invocation detail, not usage guidance for choosing among alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_dailyRWS: Daily CardBRead-onlyIdempotentInspect
Daily card based on date seed (deterministic per day).
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/daily] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| date | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| seed | No | |
| drawn | No | |
| spread | No | |
| localized | No |
TDQS
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 genuinely useful behavior beyond that: the card is deterministically seeded per day, and the call costs 10 credits (Tier 1). It does not say whether omitting `date` defaults to today, which is the main remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence conveying the core behavior, followed by compact bracketed metadata for group, endpoint, and cost. Nothing is wasted and the operative fact (date-seeded daily card) comes first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover safety. With four optional parameters, the definition is serviceable but leaves the default-date behavior and the choice against sibling draw/daily tools unspecified, which an agent would need to resolve before calling confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so the schema already documents `art`, `fields`, and `precision` in detail. The description's only added semantics is that the result is date-seeded, which loosely implies the role of `date` but gives no syntax, default, or timezone behavior. Baseline 3 is appropriate when the schema carries the weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+resource: a daily tarot card drawn for the Rider-Waite-Smith deck, seeded deterministically by date. The group tag and endpoint reinforce the identity, so an agent knows what it returns. It stops short of distinguishing itself from lookalike siblings (astroway_tarot_marseille_daily, astroway_tarot_lenormand_daily, astroway_iching_daily) beyond the embedded group label.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 guidance. Nothing tells the agent to pick this over astroway_tarot_rider_waite_draw_single for an on-demand card, or how the fixed-per-day semantics differ from a regular draw. Usage is left entirely to inference from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_draw_careerRWS: CareerBRead-onlyIdempotentInspect
5-card career trajectory spread.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/draw/career] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive, closed-world behavior, and the description adds genuinely useful operational context: the endpoint and a 10-credit cost. It says nothing about randomization determinism (relevant given the seed parameter) or how allowReversed affects the draw.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded: the purpose statement comes first, followed by three short bracketed metadata lines. No wasted prose, though the metadata blocks are not themselves usage-relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, which lowers the burden. Still, three of six parameters are undocumented and there is no guidance on choosing this spread over its many siblings, leaving it only minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: art, fields, and precision are documented, but seed, question, and allowReversed have no schema description and no coverage in the description either. The description does not compensate for that gap at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the operation and resource precisely: a 5-card career trajectory spread, which is distinguishable from other RWS spreads by both topic and card count. It does not, however, distinguish itself from siblings like astroway_tarot_marseille_draw_career or astroway_reports_career beyond the group tag.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternatives despite a large family of spread and career-report siblings. The '[Group: ...]' line is classification metadata, not usage instruction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_draw_celtic_crossRWS: Celtic CrossBRead-onlyIdempotentInspect
Classical 10-card Celtic Cross spread.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/draw/celtic-cross] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No | |
| localized | No |
TDQS
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-schema context: the cost (10 credits, Tier 1) and the POST endpoint. It does not mention determinism/seed behavior or how reversed cards affect results, which is a moderate gap given `allowReversed` exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line purpose followed by bracketed metadata; no filler sentences. The metadata block is dense and earns its place by conveying cost and endpoint, though it substitutes for rather than supplements descriptive content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, with six parameters (three undocumented), no required inputs, and no usage guidance, the definition is only minimally sufficient for an agent to call it correctly with a meaningful question.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: `art`, `fields`, and `precision` are documented, while `seed`, `question`, and `allowReversed` carry no description at all. The description adds nothing about any parameter, so it fails to compensate for the undocumented half. It also leaves the copy-pasted astrological examples ('planets.longitude, houses.cusp') in the `fields` schema unexplained for a tarot tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific spread ('Classical 10-card Celtic Cross') and the group tag pins the deck system (Rider-Waite-Smith), which distinguishes it from the Marseille and Lenormand Celtic Cross siblings. The action verb is only implied by the endpoint line rather than stated in prose, but the resource and deck are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to pick this 10-card spread over the many sibling RWS draws (three_card, horseshoe, relationship, year_ahead), nor any mention of the optional `question` parameter or exclusions. The description is pure identification metadata, so an agent gets no routing help beyond the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_draw_chakraRWS: ChakraCRead-onlyIdempotentInspect
7-card chakra spread (Root → Crown).
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/draw/chakra] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so safety is covered. The description adds a cost line (10 credits, Tier 1) which is genuinely useful context an agent can't get elsewhere. Beyond that it says nothing about what's produced or how the chakra positions map to output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The spread description is a single front-loaded clause; the bracketed group/endpoint/cost lines are terse metadata rather than padded prose. Efficient overall, though the metadata occupies more lines than the actual purpose statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 6-parameter tarot draw in a very large sibling namespace, the description omits what the chakra positions mean, whether a question is required, and how `seed`/`allowReversed` affect the draw. The cost line is a plus, but the missing usage and parameter context leaves the agent guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%; the undocumented parameters are `seed` and `question` (and the boolean `allowReversed` is only labeled by its name). The description does not explain the `seed` (determinism), `question` (free-text framing), or `allowReversed` (upright-only toggle) semantics, leaving half the surface unexplained despite an output schema existing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific spread type and deck ('7-card chakra spread (Root → Crown)') with a group tag for Rider-Waite-Smith. This distinguishes it from other RWS spreads and Lenormand/Marseille variants. It doesn't explicitly name which sibling spreads it competes with, but the spread name and deck are specific enough to be unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no indication of what question types suit a chakra spread vs a celtic cross or three-card spread, and no mention of whether a question input is expected. The endpoint/cost metadata is operational, 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_tarot_rider_waite_draw_decisionRWS: Yes/NoBRead-onlyIdempotentInspect
Single-card draw with yes/no/maybe verdict from card affinity.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/draw/decision] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| reason | No | |
| spread | No | |
| verdict | No |
TDQS
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 needs no restatement. The description adds credit cost (10 credits, Tier 1) and the endpoint, which is genuine operational context, but says nothing about how 'card affinity' is computed or whether seeding makes draws reproducible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The substance is front-loaded in a single efficient sentence, followed by clearly delineated bracketed metadata lines for group, endpoint, and cost. Nothing is padded, though the bracketed block is boilerplate rather than tool-specific explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. Still, for a 6-parameter tool the definition leaves 'card affinity' undefined and does not explain how the question parameter relates to a meaningful verdict.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: art, fields, and precision are documented in the schema, while seed, question, and allowReversed are not. The description adds no parameter meaning at all, leaving notably allowReversed (which directly affects the affinity verdict) and the question field unexplained anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Single-card draw') plus the distinguishing output ('yes/no/maybe verdict from card affinity'), which separates it in effect from astroway_tarot_rider_waite_draw_single. It does not explicitly name that sibling or explain how the decision variant differs beyond the verdict, so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Only implied guidance is available: the yes/no/maybe verdict suggests it is for decision questions, but there is no statement of when to choose it over draw_single, draw_three_card, or the Marseille decision tool, and no prerequisites or exclusions are given. Cost and endpoint metadata are supplied, but that is 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_tarot_rider_waite_draw_horseshoeRWS: HorseshoeBRead-onlyIdempotentInspect
7-card horseshoe progression.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/draw/horseshoe] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior. The description adds genuinely useful context not in the annotations — the endpoint and the 10-credit Tier 1 cost — but says nothing about what the draw produces or how the question is used.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose in one sentence, with metadata tags for group, endpoint, and cost. Compact and waste-free, though the bracketed metadata lines are boilerplate rather than descriptive content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a readings tool the spread's meaning and the role of the optional question parameter are left entirely implicit, leaving the definition minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description contributes nothing about the six parameters. With schema coverage at only 50%, seed, question, and allowReversed are undocumented in both the schema and the description, so the description fails to compensate for the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"7-card horseshoe progression" names a specific resource (a tarot spread draw) and adds the card count beyond the bare tool name. It is clearly distinct from non-spread siblings, but it does not differentiate itself from other spread siblings like draw_celtic_cross or draw_three_card beyond the spread label.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no reference to alternatives, despite a large family of sibling spread tools (celtic cross, three-card, year ahead, decision). The agent gets no signal for choosing horseshoe over any other spread.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_draw_love_triangleRWS: Love TriangleCRead-onlyIdempotentInspect
6-card three-person love dynamics.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/draw/love-triangle] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description adds genuinely useful non-annotation context — the POST endpoint and a 10-credit Tier 1 cost — but says nothing about determinism of the seed, how allowReversed affects the draw, or what the six card positions represent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short and front-loaded, with the substantive phrase first and metadata lines after. It is efficient, but the brevity crosses into under-specification rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry the safety profile. However, for a divination draw with three undocumented parameters and a specialized spread, the description leaves the agent without enough context on how the draw behaves or when to prefer it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: art, fields, and precision are documented in the schema, but seed, question, and allowReversed have no description anywhere. The description contributes zero parameter meaning (the '6-card' phrase is spread-level, not parameter-level), so it fails to compensate for the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase '6-card three-person love dynamics' names the resource (a six-card love-triangle spread) with some specificity, and the group/endpoint lines confirm the domain. But there is no verb (draw/deal/interpret) and no explicit contrast with the nearby astroway_tarot_rider_waite_draw_relationship sibling, so the agent must infer the action from the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. An agent deciding between this, draw_relationship, and the near-duplicate astroway_trwd_love_triangle gets no help from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_draw_relationshipRWS: RelationshipCRead-onlyIdempotentInspect
7-card relationship dynamics.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/draw/relationship] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
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 does add real operational context the annotations lack: cost (10 credits, Tier 1) and the POST endpoint. It says nothing, however, about whether drawn cards are deterministic given a seed, or how reversal handling works.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is one line and front-loaded, and the bracketed group/endpoint/cost lines are terse structured metadata rather than prose. But the brevity reflects under-specification rather than economy – there is essentially nothing beyond a spread size and an endpoint.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-shape explanation is fairly excused, but for a 6-parameter divination tool the description never explains what the seven positions mean, whether an optional question is required for a meaningful reading, or how this tool differs from its numerous siblings. An agent can invoke it but not confidently choose it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50%: art, fields and precision are documented in the schema, while question, seed and allowReversed (which defaults to true) have no documentation anywhere. The description provides zero parameter information to compensate, and for a 6-parameter tool with an undocumented question field this is a meaningful gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"7-card relationship dynamics" states the resource (a relationship-oriented tarot draw) and the spread size, but omits the verb and gives no basis for choosing it over near-identical siblings such as astroway_tarot_rider_waite_draw_love_triangle or astroway_tarot_lenormand_draw_relationship. The tool family and deck are only recoverable from the bracketed metadata, not from the sentence itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative guidance at all. With dozens of sibling draw tools (draw_single, draw_three_card, draw_celtic_cross, draw_love_triangle, draw_chakra, draw_horseshoe), an agent has no stated rule for preferring the 7-card relationship spread over any of them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_draw_shadow_workRWS: Shadow WorkBRead-onlyIdempotentInspect
6-card shadow integration spread.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/draw/shadow-work] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower; the description usefully adds billing context (10 credits, Tier 1) and the endpoint. It does not explain how seeding/randomness works or whether a question is expected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely terse and front-loaded: spread description first, then bracketed group/endpoint/cost metadata. Nothing is wasted, though the brevity edges toward under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/endpoint are covered. However the undocumented parameters and absent usage guidance leave real gaps for a draw tool competing with a dozen sibling spreads.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%, with seed, question, and allowReversed carrying no descriptions, and the description adds no parameter meaning at all. For a 6-parameter draw tool this leaves half the surface undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific spread type and card count ('6-card shadow integration spread'), which distinguishes it from the many sibling draws (single, three-card, celtic cross, horseshoe). It lacks an explicit verb but the resource is unambiguous in context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides no when-to-use guidance and never mentions alternatives such as the sibling shadow_card or spiritual_path spreads. An agent must infer selection purely from the spread name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_draw_singleRWS: Single Card DrawBRead-onlyIdempotentInspect
Draw 1 card from the RWS deck. Optional seed for deterministic shuffle.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/draw/single] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No | |
| localized | No |
TDQS
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 useful context by explaining the seed's purpose ('deterministic shuffle') and disclosing cost (10 credits) and endpoint, but it says nothing about reversal behavior or how the draw is reported.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core action and the seed hint are front-loaded in one tight sentence, and the bracketed group/endpoint/cost block is compact and useful metadata. Nothing is padded, though the metadata block is somewhat formulaic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. The description covers purpose, cost, and the seed's determinism, but leaves half the parameters and the reversal behavior unaddressed, which is thin for a six-parameter draw tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: seed, question, and allowReversed have no descriptions in the schema. The description rescues only one of them by explaining the seed as a deterministic shuffle control, leaving 'question' and 'allowReversed' undocumented in both places. Given six parameters and half left undefined, this does not fully compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource ('Draw 1 card from the RWS deck') and the title reinforces the deck and single-card scope, so an agent can distinguish it from the many tarot draw siblings. It stops short of explicitly differentiating from adjacent tools like draw_three_card or the Marseille draw_single, so it is clear but not fully sibling-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Beyond 'Draw 1 card,' there is no guidance on when to choose this tool versus the other RWS spread tools (three_card, celtic_cross, love_triangle, etc.) or the Marseille single draw. The tool's place among siblings must be inferred entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_draw_spiritual_pathRWS: Spiritual PathBRead-onlyIdempotentInspect
5-card spiritual development spread.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/draw/spiritual-path] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
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 adds genuinely useful non-schema context — the 10-credit Tier 1 cost and the POST endpoint — but says nothing about whether the optional `seed` makes the draw reproducible or how `question` influences the spread.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single prose sentence is front-loaded and waste-free, with metadata lines clearly separated. It is tight, though the brevity is partly what leaves usage and parameter gaps.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 a tool with 6 parameters and dozens of near-identical siblings, the absence of any selection guidance or parameter elucidation leaves the definition minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: `art`, `fields`, and `precision` are documented, but `seed`, `question`, and `allowReversed` are not. The description adds no parameter meaning whatsoever, so it fails to compensate for the undocumented half of the inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and structure: a 5-card spiritual-development spread, which is more informative than a bare name restatement. It does not, however, distinguish this spread from the many sibling draws (shadow_work, chakra, Marseille draw_spiritual, trwd_spiritual_path), so an agent must infer its niche 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to select this spread versus the dozens of sibling tarot draws, nor any prerequisites or exclusions. The agent gets a spread description but no routing guidance at all.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_draw_three_cardRWS: Three-Card DrawBRead-onlyIdempotentInspect
Past / Present / Future three-card spread.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/draw/three-card] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| back | No | |
| seed | No | |
| drawn | No | |
| spread | No | |
| localized | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful metadata not present in annotations — the credit cost (10, Tier 1) and the concrete endpoint — but says nothing about whether the draw is randomized, whether the seed makes it reproducible, or what auth is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short lines, front-loaded with the spread's meaning, followed by bracketed group/endpoint/cost metadata. Nothing is padded, though the metadata lines are more operational than semantic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/endpoint are supplied. However, with three undocumented parameters and no guidance on how the spread pairs with the many sibling tarot tools, the description is only minimally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: seed, question, and allowReversed are undocumented in the schema, and the description adds no meaning for any of the six parameters. For a tool where 'seed' and 'allowReversed' materially change output, this leaves real gaps unaddressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific spread type ('Past / Present / Future three-card spread'), which lets an agent distinguish it from the sibling spreads (celtic cross, horseshoe, year ahead, etc.) in the RWS family. The verb 'draw' is implied by the tool name and the endpoint, but is not stated in the description itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to choose this three-card spread over the dozens of sibling draws (single, relationship, career, decision, celtic cross), and no prerequisites or exclusions. The agent must infer selection purely from the spread name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_draw_year_aheadRWS: Year AheadBRead-onlyIdempotentInspect
13-card spread (12 months + theme).
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/draw/year-ahead] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
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 adds genuinely useful non-schema context — the cost (10 credits, Tier 1) and the endpoint — but says nothing about what a draw returns or how seeding affects reproducibility. With annotations carrying the safety burden, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short and front-loaded: the spread definition comes first, followed by compact metadata tags. Every element is brief, though the group/endpoint/cost tags are boilerplate scaffolding rather than prose an agent reads for meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/endpoint tags are present. However, for a 6-parameter draw tool with half its parameters undocumented and no guidance on when to choose this over sibling spreads, the definition is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%; art, fields and precision are documented, but seed, question and allowReversed carry no schema description. The description adds zero parameter information, so it does not compensate for the undocumented half — notably how the seed or question affects the draw.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a concrete artifact — a 13-card spread of 12 months plus a theme — which tells the agent precisely what this draw produces. It does not explicitly distinguish itself from the many sibling draw tools (celtic cross, career, single, etc.), relying on the name for that, but the spread structure is stated clearly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus the other year-ahead or tarot-draw siblings, no prerequisites, and no exclusions. The agent must infer usage entirely from the name and the spread size.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_elements_elementRWS: Cards by ElementBRead-onlyIdempotentInspect
All Minor cards mapped to fire / water / air / earth element.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: GET /v1/tarot/rider-waite/elements/{element}] [Required: element] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| element | Yes | Elemental attribution. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No | |
| element | No |
TDQS
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 fully covered and the description need not repeat it. The description does add two pieces of non-schema context: the endpoint path and the billing caveat ('endpoint not in the public credit manifest'), which is genuinely useful for cost-aware agents, but it says nothing about result size or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The substantive sentence is front-loaded and the supporting metadata is compact and scannable. The bracketed boilerplate lines are slightly formulaic but each carries a distinct fact (group, endpoint, required param, cost).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 enum is covered by the schema. What is missing is any operational framing (result volume, how the four element buckets relate, or when this beats a full deck fetch) for a tool sitting in a very crowded tarot namespace.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the element enum is documented in the schema, so the baseline of 3 applies. The description only repeats the required parameter name in brackets and adds nothing about how 'fields' or 'precision' compact-mode parameters behave.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete resource and filter: 'All Minor cards mapped to fire / water / air / earth element', which tells an agent exactly what comes back. It does not, however, distinguish itself from close siblings such as astroway_tarot_rider_waite_minors, _suits_suit, or _numbers_n, so the boundary 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement and no named alternative. The only routing signal is the bracketed '[Required: element]' line, which restates the schema rather than advising the agent when elemental lookup is the right call versus a suit- or number-based lookup.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_interpretRWS: Interpret a HandARead-onlyIdempotentInspect
Resolve a list of card slugs into structured meanings (POST /interpret/tarot writes the reading of the whole spread).
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/interpret] [Required: cards] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| cards | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cards | No | |
| question | No | |
| narrativeStub | No |
TDQS
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). The description adds genuinely useful operational context beyond that: the cost (10 credits, Tier 1), the required parameter, and the HTTP endpoint. It does not describe response shape or limits, but the added cost/endpoint context earns above baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and waste-free, and the bracketed metadata (group, endpoint, required, cost) is scannable. The mix of prose and metadata block is slightly redundant but not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/required/endpoint are covered. However, nothing states the card-count bounds, slug format expectations, or how `art` affects interpretation, leaving gaps for a 5-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%, and the description only confirms `cards` is required and characterizes them as slugs. Parameters like `art`, `fields`, `question`, and `precision` are not elaborated in the description beyond what the schema already says. Marginal added value over the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: resolve a list of card slugs into structured meanings. It also distinguishes itself from the whole-spread reading by citing POST /interpret/tarot, though it references a sibling by endpoint rather than by tool name, which is weaker for selection among the many `astroway_tarot_rider_waite_*` siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied (you have card slugs and want their meanings) and the parenthetical contrast with the spread-reading endpoint hints at when to prefer the other tool. There is no explicit when-not or named alternative tool, so an agent still has to infer when to call this versus the draw/interpret siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_keywords_keywordRWS: Cards by KeywordBRead-onlyIdempotentInspect
Substring search across upright and reversed keywords across all 78 cards.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: GET /v1/tarot/rider-waite/keywords/{keyword}] [Required: keyword] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| keyword | Yes | Keyword to match. Substring match across both upright and reversed keywords. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No | |
| keyword | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds genuine value beyond that: substring-match semantics, coverage of both upright and reversed keywords, and a cost caveat ('not in the public credit manifest'). It omits result ordering, pagination, and case sensitivity, so it is useful but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The substantive sentence is front-loaded and the bracketed metadata block is compact and scannable, with no redundant prose. The bracket scaffolding is more housekeeping than description, but it costs little and stays out of the way.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because an output schema exists, return values need not be explained, and the annotations cover the safety profile. For a single-keyword read-only search the description is nearly sufficient; only pagination or result-limit behavior is left unaddressed, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter including keyword, fields, and precision is already documented in the schema. The description only echoes the substring-match behavior for keyword and adds nothing about fields or precision. Baseline 3 is appropriate when the schema carries the param burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource: a substring search over upright and reversed keywords spanning all 78 cards. That scope ('all 78 cards', both orientations) is distinctive enough to separate it from the many RWS siblings like cards, majors, minors, suits, or numbers. It stops short of naming a sibling 对比 alternative, so it's clear but not maximally differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what the search does but never states when to reach for it versus the other RWS lookup tools (cards, cards_slug, majors, minors, suits). There is no when-to-use, no exclusion, and no named alternative, so the agent must infer routing from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_majorsRWS: 22 MajorsBRead-onlyIdempotentInspect
The 22 Major Arcana cards only.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: GET /v1/tarot/rider-waite/majors] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No |
TDQS
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 facts not present in structured fields — the GET endpoint and the 10-credit Tier 1 cost — but explains nothing about auth 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very tight: one substantive sentence plus tagged metadata lines, with the resource statement front-loaded. Nothing is redundant, though the metadata block is the only place endpoint and cost appear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 prose explanation, and annotations cover the safety profile. For a simple card-catalogue lookup the definition is nearly sufficient; only cross-tool routing guidance is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both optional parameters (fields, precision) are fully documented in the schema; baseline 3 applies. The description contributes nothing about parameters, and the schema examples reference planets/houses, which are incidentally irrelevant to a tarot card list.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact resource — the 22 Major Arcana cards — and the word "only" implicitly excludes Minors and Courts, which are actual sibling tools (astroway_tarot_rider_waite_minors, astroway_tarot_rider_waite_courts). It lacks a verb (list/return), so the agent must infer this is a catalogue retrieval rather than a draw, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no routing to alternatives. The "only" qualifier hints that minors and courts live elsewhere, but the description never names the sibling tools an agent should pick instead, leaving selection entirely to inference from tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_minorsRWS: 40 MinorsBRead-onlyIdempotentInspect
The 40 numbered Minor Arcana cards (Ace through 10 of each suit).
[Group: Tarot: Rider-Waite-Smith] [Endpoint: GET /v1/tarot/rider-waite/minors] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/none-destructive, so the safety profile is covered. The description adds genuinely useful non-annotation context: the cost (10 credits, Tier 1), endpoint, and grouping, but says nothing about response payload or how the 40 cards are structured.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded core sentence that is lean and unambiguous, with bracketed metadata tags for group/endpoint/cost. Efficient, though the metadata brackets add little selection value for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations carrying the safety profile, the description only needs to establish scope and cost, which it does. The remaining gap is sibling disambiguation, which is minor for a straightforward catalog lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both optional params (fields, precision) are fully documented in the schema itself. The description adds no parameter meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names a specific resource precisely: the 40 numbered Minor Arcana, Ace through 10 of each suit. That scope clearly delimits it from majors/courts siblings, though it never names those siblings explicitly to route the agent.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this vs. the many sibling tarot tools (cards, majors, courts, spreads, draws). The agent must infer from the name alone that this is a browse-catalog tool rather than a reading tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_missing_infoRWS: Missing Info CardCRead-onlyIdempotentInspect
Single card to surface hidden information.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/missing-info] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| type | No | |
| drawn | No | |
| spread | No |
TDQS
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 the endpoint, the 10-credit Tier 1 cost, and the group, which is real context beyond structured fields, but it says nothing about what the card result represents or how reversed cards behave.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose in the first line, then compact bracketed metadata for group, endpoint, and cost. No filler, though the metadata lines are structural rather than explanatory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. Still, the description omits when to prefer this over its many sibling card tools and leaves three parameters undocumented, so it is only minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: art, fields, and precision are documented in the schema while seed, question, and allowReversed are not. The description adds no parameter meaning at all, so it fails to compensate for the undocumented half, notably the default-true allowReversed flag.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a verb (surface) and resource (single card) with a thematic goal (hidden information), so an agent can grasp the intent. However, it does not distinguish this from similar siblings like astroway_tarot_rider_waite_draw_single, astroway_tarot_rider_waite_clarify, or astroway_tarot_rider_waite_shadow_card, leaving the specific niche of a 'missing info' card undefined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no when-to-use guidance, no prerequisites, and no alternatives. Given the dense cluster of near-identical RWS single-card tools (draw_single, clarify, shadow_card, advice), the absence of routing guidance is a meaningful gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_numbers_nRWS: Cards of NumberBRead-onlyIdempotentInspect
All Minor Arcana cards of a given number 1-14 (Ace=1..King=14).
[Group: Tarot: Rider-Waite-Smith] [Endpoint: GET /v1/tarot/rider-waite/numbers/{n}] [Required: n] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| n | Yes | Card number within a suit. 1 is the Ace, 11-14 are the courts. Majors are excluded. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No | |
| number | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safe-read profile (readOnly, idempotent, non-destructive, closed-world), so the description carries a lower burden. It usefully adds the endpoint path and a cost caveat ('endpoint not in the public credit manifest'), which is genuine behavioral context, but says nothing about response shape or filtering behavior 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence stating the purpose, followed by compact bracketed metadata. Nothing is wasted, though the bracket tags are boilerplate rather than explanatory content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. The description is sufficient to invoke the tool correctly; the only missing piece is routing guidance among the many tarot siblings, which is a usage rather than completeness gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 n, fields, and precision thoroughly. The description's '1-14 (Ace=1..King=14)' largely restates the n schema description, adding no syntax or semantics beyond what structured data already provides; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'All Minor Arcana cards of a given number 1-14', with a parenthetical mapping Ace=1 and King=14. An agent can tell it returns a filtered subset of the deck by number. It does not, however, explicitly distinguish itself from close siblings like courts, minors, or suits_suit, which also slice the same deck along different axes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 courts, minors, cards, or suits_suit siblings, nor any prerequisites. The only guidance is the numeric range/interpretation embedded in the parameter, which is usage-adjacent but not a when-to-use rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_outcomeRWS: Outcome CardCRead-onlyIdempotentInspect
Single outcome card.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/outcome] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| type | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world, so safety is covered. The description usefully adds the billing context ('Cost: 10 credits (Tier 1)') and the exact endpoint, which are not in the structured fields, but it says nothing about output shape, reversal behavior, or whether a question is required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is compact and front-loaded, with the one-line purpose first and metadata grouped in brackets. Nothing is padded, though the extreme brevity borders on under-specification rather than tight writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 6-parameter tool with only 50% schema coverage and no usage guidance, the description is too thin. It omits what an outcome card is, how it differs from sibling draws, and the role of the undocumented parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%: seed, question, and allowReversed have no schema descriptions at all, and the description supplies no meaning for them either. With half the parameters undocumented in both places, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Single outcome card' names a resource but supplies no verb (draw/generate/read) and gives no indication of what an 'outcome card' means relative to the many sibling tarot draws. The bracketed Group/Endpoint metadata confirms the domain, but an agent still cannot distinguish this from astroway_tarot_rider_waite_draw_single or astroway_tarot_rider_waite_daily without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of any alternative tool. The description never explains whether this is for a quick one-card outcome reading versus a full spread, leaving the agent to guess among dozens of Rider-Waite siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_shadow_cardRWS: Shadow CardCRead-onlyIdempotentInspect
Shadow card pair (mirror in major arcana of personality card).
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/shadow-card] [Required: date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| shadowCard | No | |
| personalityCard | No |
TDQS
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 covered. The description adds the cost (10 credits, Tier 1), which is genuinely useful behavioral context not in annotations, but says nothing about determinism of the derivation or how the pair is computed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded clause stating what the tool returns, followed by compact functional metadata. It is efficient and wastes little space, though the bracketed tags are boilerplate rather than descriptive prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover safety. The remaining gap is that the domain concept ('shadow card' relative to the personality card) is only glancingly explained and no routing to related card tools is given, which for such a specialized lookup leaves the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%: art, fields, and precision are documented in the schema, while date has only a pattern. The description adds no parameter syntax or semantics beyond echoing that date is required, so it does not compensate for the undescribed required date. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource ('Shadow card pair') and parenthetically defines it as the mirror in the major arcana of the personality card, which is more than a tautology. However, the domain term is opaque and it does not differentiate from close siblings like astroway_tarot_rider_waite_soul_personality_card or astroway_tarot_rider_waite_birth_card, so an agent cannot confidently pick this over them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-tool guidance. The bracketed metadata supplies required param, endpoint, and cost, but none of that tells the agent under what circumstances to select this tool versus the many other RWS tarot tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_soul_personality_cardRWS: Soul + PersonalityBRead-onlyIdempotentInspect
Returns soul card and personality card pair from birth date.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/soul-personality-card] [Required: date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| soulCard | No | |
| personalityCard | No |
TDQS
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 usefully adds the credit cost (10 credits, Tier 1) and endpoint, but says nothing about what the soul/personality distinction means or how the pair is derived.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence followed by four bracketed metadata lines; nothing is padded and the core purpose leads. The bracket block is mechanical but compact.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. What is missing is the differentiation an agent needs among the dense tarot sibling set and any hint of what the soul/personality pair represents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%: art, fields, and precision are self-documented, while date carries only a regex pattern. The description's 'from birth date' confirms the primary input but adds no format or meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Returns') and resource ('soul card and personality card pair from birth date'), which is clear on its own. However, it does not distinguish itself from the closely related sibling astroway_tarot_rider_waite_birth_card, so an agent must infer which of the two birth-date tarot techniques to pick.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description supplies only mechanical metadata (required param, endpoint, credit cost) and offers no when-to-use guidance, no exclusions, and no reference to alternatives like birth_card or year_card. With hundreds of near-duplicate tarot siblings, this silence is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_spreadsRWS: All SpreadsARead-onlyIdempotentInspect
List of all 12 RWS spread definitions.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: GET /v1/tarot/rider-waite/spreads] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is lower. The description adds genuinely useful operational context beyond the schema: the cost (10 credits, Tier 1), the group, and the concrete GET endpoint. It does not mention whether the listing is static or cacheable, but the cost disclosure is the kind of detail an agent needs before spending budget.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence of substance plus three bracketed metadata lines; the scope statement is front-loaded and there is no filler prose. The bracketed group/endpoint/cost block is dense but earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 unnecessary, and with no required parameters the invocation surface is trivial. The description states what is returned (12 spread definitions) and the cost. The only material omission is usage routing relative to the _slug sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so fields and precision are fully documented in the schema itself, giving a baseline of 3. The description adds nothing about them, but for a zero-required-parameter list call that is acceptable rather than a real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope: the 12 RWS spread definitions. An agent immediately knows this is a catalog/listing call, not a drawing or interpretation call. It stops short of 5 because it does not name or distinguish itself from the sibling astroway_tarot_rider_waite_spreads_slug, which is the obvious near-neighbour.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With a sibling like astroway_tarot_rider_waite_spreads_slug (single spread by slug) present, the description should say to call this one first to discover slugs, then that one. Nothing routes the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_spreads_slugRWS: Single SpreadARead-onlyIdempotentInspect
Definition of a single spread by slug.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: GET /v1/tarot/rider-waite/spreads/{slug}] [Required: slug] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Spread slug, lowercase and hyphenated. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| name | No | |
| slug | No | |
| cardCount | No | |
| positions | No | |
| description | No |
TDQS
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 description earns credit for adding budget context: the endpoint is flagged as absent from the public credit manifest, which materially affects an agent's willingness to call it. The caveat is vague ("see your plan" with no figure), and no auth or rate-limit detail is added.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core statement then uses four compact bracketed tags (group, endpoint, required, cost) for machine-readable metadata. Efficient and skimmable, though the tag block is slightly template-noisy and repeats the required-parameter fact already in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return values need no explanation, and annotations carry the safety profile; the description supplies group, endpoint, and cost caveat. The one gap is the relationship to the sibling spreads-list tool, which an agent needs in order to know where slugs come from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already explains slug format (lowercase, hyphenated), the fields compact-mode dotted paths, and the precision range. The description only restates that slug is required, adding nothing beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource (a single RWS spread) and the access key (by slug), which implicitly separates it from the sibling astroway_tarot_rider_waite_spreads list endpoint. The verb is weak ("Definition of") rather than an explicit "get/retrieve", but the resource and scope are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the "by slug" phrasing suggests you call this once you already hold a spread slug, versus the list tool for discovery. There is no explicit when-to-use, no statement that this is the singular counterpart to astroway_tarot_rider_waite_spreads, and no note on how a slug is obtained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_suits_suitRWS: SuitBRead-onlyIdempotentInspect
All 14 cards of a suit (wands, cups, swords, or pentacles).
[Group: Tarot: Rider-Waite-Smith] [Endpoint: GET /v1/tarot/rider-waite/suits/{suit}] [Required: suit] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| suit | Yes | Minor arcana suit. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| suit | No | |
| count | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and non-open-world, so the safety profile is fully covered. The description adds the concrete endpoint and a cost note ('endpoint not in the public credit manifest'), which is genuinely useful billing context, but it does not explain return shape, pagination, or anything else 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and zero-waste, and the metadata tags are compact and scannable rather than prose bloat. The bracket block is boilerplate but not misleading or verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema, rich annotations, and 100% parameter coverage, the description only needs to identify the resource and scope, which it does. The cost caveat is a helpful extra. Nothing essential for correct invocation is missing, though sibling routing remains unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with suit, fields, and precision all documented in the schema itself. The description only restates the suit values already present as an enum, adding no syntax or format meaning beyond what the schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope: the 14 cards of a given suit, and enumerates the four valid suits. It clearly retrieves cards rather than interpreting them, setting it apart from interpret tools. However, it does not explicitly differentiate itself from close siblings like tarot_rider_waite_minors, cards, or courts, which an agent might 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies you would call it to fetch a suit's cards, but gives no explicit when-to-use guidance, no mention of when to prefer cards/minors/courts instead, and no prerequisites. The tag block restates required fields but is 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_tarot_rider_waite_timingRWS: Timing CardCRead-onlyIdempotentInspect
Single timing card to indicate when.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/timing] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| type | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, non-destructive, closed-world read, so the safety profile is covered. The description adds genuinely useful operational context the annotations do not carry: endpoint path and a 10-credit Tier 1 cost. It says nothing about determinism via seed or what allowReversed does behaviorally, but the cost disclosure is real added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: the purpose sentence comes first, followed by bracketed metadata. Nothing is padded, though the bracketed group/endpoint/cost block is boilerplate rather than explanatory prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. What is missing is the semantic core: what 'timing' output actually represents (a timeframe? a season?), and how this tool relates to the Marseille timing sibling and the RWS outcome/draw_single tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: art, fields, and precision are documented in the schema, while seed, question, and allowReversed have no description anywhere. The description supplies zero parameter meaning, so it fails to compensate for the undocumented half — notably `question`, which is central to a 'when will X happen' reading.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title and description convey the gist: draw one card whose meaning indicates 'when'. But 'Single timing card to indicate when' is a noun phrase with no explicit verb (draw/return) and no differentiation from siblings like astroway_tarot_marseille_timing or astroway_tarot_rider_waite_outcome. An agent must infer the action from the endpoint metadata rather than the prose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative routing guidance. Notably, a near-identical sibling (astroway_tarot_marseille_timing) exists, and the description does nothing to explain which deck/timing variant to pick. In a catalog this large, that omission forces guesswork.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_tarot_rider_waite_year_cardRWS: Year CardBRead-onlyIdempotentInspect
Year card per Greer (m+d+year reduced).
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/year-card] [Required: date, year] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| date | Yes | ||
| year | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| card | No | |
| date | No | |
| year | No |
TDQS
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 the genuinely useful non-schema signal of cost (10 credits, Tier 1) and the endpoint, but says nothing about response shape, deck/art behavioral effects, or computation caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely tight, with the core operation front-loaded and the operational metadata bracketed at the end. Nothing is padded, though the bracketed block could be trimmed of redundant restatement of required params that already appear in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 tool is simple (two required, three optional params). What is missing is any account of what the computed year card signifies or how the date/year interact, which an agent might need to use the result meaningfully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60%: art, fields, and precision are documented in the schema, while date and year carry only format/range constraints. 'm+d+year reduced' does add a little meaning about how the two required inputs are combined, but not enough to interpret each parameter beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific technique ('Year card per Greer (m+d+year reduced)') for a specific resource, and the Group tag pins it to the Rider-Waite-Smith deck. It does not explicitly separate itself from the sibling astroway_tarot_marseille_year_card, which computes the same year card for another deck, so the differentiation leans on the name rather than the prose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists logistics (endpoint, required params, credit cost) but gives no guidance on when to call this versus the Marseille year card, birth card, or soul/personality card siblings. The Greer reduction method hints at the use case, but there is no explicit when-to-use or when-not-to-use statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_trwd_love_triangleRWS: Love TriangleBRead-onlyIdempotentInspect
6-card three-person love dynamics.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/draw/love-triangle] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_tarot_rider_waite_draw_love_triangle.)
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
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 genuinely useful operational context: cost (10 credits, Tier 1) and the exact endpoint. It does not disclose the draw's randomness or how seed/allowReversed affect reproducibility, which is the remaining behavioral gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in a single line, with metadata in tidy bracketed blocks. Nothing is verbose or padded, though the endpoint/group lines are conventional noise rather than decision-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-required-parameter draw tool with an output schema, the definition covers purpose, cost, and endpoint adequately. It omits any auth requirement and the meaning of the spread's six positions, and gives no hint about determinism despite an idempotentHint, leaving the agent slightly under-informed about what it will actually receive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% (seed, question, and allowReversed carry no descriptions), and the description adds no parameter meaning at all. It does not explain that seed makes the draw reproducible, nor that allowReversed toggles reversed-card output. No compensation for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase '6-card three-person love dynamics' pins down the spread size (6 cards), the subject (three people), and the domain (love/relationships), which separates it from siblings like draw_relationship or draw_celtic_cross. However it is a noun fragment with no explicit verb, so the agent must infer that it draws/deals cards. The alias note further disambiguates it from astroway_tarot_rider_waite_draw_love_triangle.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Nothing states when to pick this over astroway_tarot_rider_waite_draw_relationship, the canonical non-alias love_triangle, or astroway_ai_interpret_tarot. The alias note is a dedup hint, not usage guidance. No prerequisites, exclusions, or alternative-selection logic are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_trwd_spiritual_pathRWS: Spiritual PathBRead-onlyIdempotentInspect
5-card spiritual development spread.
[Group: Tarot: Rider-Waite-Smith] [Endpoint: POST /v1/tarot/rider-waite/draw/spiritual-path] [Cost: 10 credits (Tier 1)]
(Cursor-friendly alias for astroway_tarot_rider_waite_draw_spiritual_path.)
| Name | Required | Description | Default |
|---|---|---|---|
| art | No | Card art set, e.g. rws-1909, rws-restored, rws-vector. GET /v1/tarot/decks lists the sets per deck. | |
| seed | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| question | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| allowReversed | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| drawn | No | |
| spread | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is covered. The description adds real behavioral context beyond that — a specific cost (10 credits, Tier 1) and the endpoint — but says nothing about pagination, response shape, or what the five positions represent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first line, and the remaining lines are short tagged metadata rather than prose. The alias note is somewhat redundant with the tool name, but nothing is verbose or buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry the safety profile. However, three of six parameters are undocumented and the description never explains what the '5-card spiritual development spread' positions or options are, leaving gaps for a 6-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50%: art, fields, and precision are documented in the schema, while seed, question, and allowReversed are undocumented in both places. The description adds no parameter meaning at all, so it fails to compensate for the uncovered half.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line states a specific resource — a 5-card spiritual development spread — which distinguishes it from sibling draws like draw_chakra or draw_shadow_work. The verb (draw) is implied rather than stated, and the definition leans on the metadata block instead of the action itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The note that it is a 'cursor-friendly alias' for astroway_tarot_rider_waite_draw_spiritual_path is genuinely useful for routing, but no condition is given for choosing this spiritual-path spread over the chakra, shadow-work, or relationship spreads.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vastu_shastra_vastu_directionsThe eight directionsBRead-onlyIdempotentInspect
Guardian deity, planet, element, the classical use, the result of a water body and of higher ground for each of the eight directions, each with its source. Elements have no verse and are marked as modern.
[Group: Vastu Shastra] [Endpoint: POST /v1/vastu/directions] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| order | No | |
| directions | No |
TDQS
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 is free to add operational context — and it does: a 10-credit Tier 1 cost and the POST endpoint. It also discloses a genuine data-provenance trait, that elements carry no verse and are flagged as modern, which tells the agent how to interpret completeness of the result.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded: the content list leads, followed by group/endpoint/cost metadata. The opening sentence is a dense run-on enumeration, but every element in it is informative rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter, read-only reference tool with an output schema, the definition covers what the agent receives and its cost. What it lacks is any routing context — when to prefer this over the other three vastu_shastra tools — which is the main gap for an agent choosing among siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so `fields` and `precision` are already fully documented in the schema. The description adds nothing about either parameter (no default field set, no hint that precision is irrelevant for a text reference table), leaving it at the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The resource is identifiable (the eight directions of Vastu) and the title reinforces it, but the description is a bare noun-list of returned fields with no verb or explicit statement of what the tool does. An agent can infer it is a reference lookup, but must do that inference itself — there is no sibling differentiation against vastu_entrance, vastu_mandala, or vastu_rooms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no condition that selects this over the sibling Vastu tools, and no exclusions. The [Group: Vastu Shastra] tag implies a topical area but gives no routing logic, so the agent has to guess when this reference table 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_vastu_shastra_vastu_entranceMain door pada and its resultARead-onlyIdempotentInspect
Which of the 32 outer padas a main door sits in, its deity in both schools, and the result Brihat Samhita 53.72-75 gives for a door there. Send the pada (N3) or the wall and the door centre as a fraction of it; two ways of fitting 8 doors onto a 9-cell wall are offered, and a door near a pada edge is flagged.
[Group: Vastu Shastra] [Endpoint: POST /v1/vastu/entrance] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| pada | No | ||
| side | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| method | No | ||
| position | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pada | No | |
| side | No | |
| notes | No | |
| devata | No | |
| effect | No | |
| method | No | |
| source | No | |
| verdict | No | |
| position | No | |
| warnings | No | |
| edgeDistance | No | |
| devataMayamata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, lowering the bar. The description adds behavior beyond them: it discloses that a door near a pada edge is flagged and that two different door-fitting methods are offered, which affects interpretation of results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, front-loaded with the payload (pada, deity, result) before the input instructions. No filler, though the phrasing is jargon-heavy and packs several concepts per sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return structure need not be explained, and the description goes further by previewing the answer content (pada, deity, Brihat Samhita result, edge flag). For a read-only reference-style tool the definition is sufficient to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 33% schema coverage, the description must compensate, and it does: it explains 'pada (N3)' format, 'the wall' for side, 'the door centre as a fraction' for position, and characterizes method via 'two ways of fitting 8 doors onto a 9-cell wall'. Only the fields/precision compact-mode params (which carry their own schema descriptions) are left unaddressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: which of the 32 outer padas a main door sits in, its deity (both schools), and the Brihat Samhita 53.72-75 result. This is unambiguous and clearly distinct from the vastu_directions/mandala/rooms siblings by subject matter, though it never names or contrasts them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives input-mode guidance ('send the pada (N3) or the wall and the door centre as a fraction'), effectively an either/or invocation path, and mentions two fitting methods exist. However, it offers no explicit when-to-use vs when-not guidance relative to the sibling vastu tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vastu_shastra_vastu_mandalaVastu Purusha Mandala (81 padas)ARead-onlyIdempotentInspect
The 9x9 mandala with all 45 deities, their pada counts and the cells each one holds, for Brihat Samhita or Mayamata. The two texts name four outer padas differently and share the cells out differently (3/2/1 against 6/2/1).
[Group: Vastu Shastra] [Endpoint: POST /v1/vastu/mandala] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| school | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| grid | No | |
| cells | No | |
| notes | No | |
| school | No | |
| source | No | |
| devatas | No | |
| brahmasthan | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe, idempotent read-only profile, so the bar is lower. The description adds domain-specific behavioral context: the two texts name four outer padas differently and distribute cells differently (3/2/1 versus 6/2/1), which tells the agent that output changes materially with the school parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core content is front-loaded in a dense but informative first sentence, followed by useful endpoint and cost metadata. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 annotations cover safety. The description supplies domain-specific content and school differences, though it remains thin on usage guidance relative to sibling vastu tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the schema itself documents fields and precision. The description adds meaning specifically for the school enum by explaining that the two texts differ in outer-pada naming and cell distribution, which helps the agent choose between brihat-samhita and mayamata.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (the 9x9 Vastu Purusha Mandala) and details its contents: 45 deities, pada counts, and held cells, for two named texts. This clearly distinguishes it from sibling vastu tools covering directions, entrance, and rooms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains that the mandala applies to Brihat Samhita or Mayamata, but it does not state when to call this tool versus alternatives or what conditions select it. It offers no explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vastu_shastra_vastu_roomsRoom placement and scoreARead-onlyIdempotentInspect
Up to 40 rooms by direction from the centre of the house (or a bearing from true north), each judged ideal, acceptable, avoid or no-rule, with whether a verse or modern practice stands behind it. The 0-100 score is a published weighted mean; no classical text defines one. Room types with no citable rule (dining, balcony, garage, overhead tank) are refused rather than guessed.
[Group: Vastu Shastra] [Endpoint: POST /v1/vastu/rooms] [Required: rooms] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| rooms | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| rooms | No | |
| score | No | |
| scoring | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly/idempotent/openWorld=false, which cover the safety profile), it discloses two non-obvious behaviors: the tool refuses room types with no citable rule instead of guessing, and the 0-100 score is a published weighted mean rather than something defined by a classical text. That is genuine behavioral context an agent could not infer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with what the tool produces, followed by the scoring caveat and the refusal rule. No filler, though the appended protocol metadata (group/endpoint/cost) is boilerplate rather than description prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, yet the description still characterizes the verdict scale and score provenance. For a read-only computational endpoint with three parameters, this is close to sufficient; only the interaction between direction and bearing when both are supplied is left to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the description compensates usefully: it clarifies that a room is located either 'by direction from the centre of the house' or by 'a bearing from true north', which spells out the relationship between the direction and bearing properties, and it names example room types (dining, balcony, garage, overhead tank) that shape the type field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (up to 40 rooms keyed by direction) and a specific operation (judging each as ideal/acceptable/avoid/no-rule with a 0-100 score). The room-focused framing inherently separates it from vastu_directions, vastu_entrance and vastu_mandala, but no sibling is named, so it stops short of explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to reach for this tool rather than the other three Vastu tools, nor what prerequisites or context (existing floor plan, bearings) it expects. Only input-scope exclusions are given (uncitable room types are refused), which is 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_vd_shodashottari_pratyantarDashas: Shodashottari PratyantardashaBRead-onlyIdempotentInspect
Shodashottari Pratyantardasha: 3-level cascade (MD → AD → 8 PDs).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shodashottari/pratyantar] [Cost: 20 credits (Tier 2)]
(Cursor-friendly alias for astroway_vedic_dashas_shodashottari_pratyantar.)
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| moonSiderealLongitude | No |
TDQS
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 genuinely useful invocation context — cost (20 credits, Tier 2) and the POST endpoint — but says nothing about auth needs, rate limits, or payload size, so it only partially extends beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single compact sentence plus bracketed metadata, front-loaded with the operation. Every element carries information; the structure is scannable. Slight redundancy in the alias note, which restates the tool's own identity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 birth-data body is thoroughly explained in-schema. What is missing is anything about what the cascade output means or how this depth relates to the surrounding dasha levels, which matters for a domain-specific calculation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the three parameters (body, fields, precision) are each documented in-schema with detailed descriptions. The description adds nothing about parameters, so the baseline 3 for high-coverage schemas applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Shodashottari Pratyantardasha) and its depth structure ('3-level cascade (MD → AD → 8 PDs)'), which helps distinguish it from the antar/prana/sookshma variants in the sibling list. It stops short of explicitly naming which sibling to prefer at a given depth, but the cascade description is concrete enough to place it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 stated alternatives. The only routing hint is the note that it is an alias for `astroway_vedic_dashas_shodashottari_pratyantar`, which is a duplicate, not an alternative — an agent still cannot tell why it should pick this over shodashottari_antar or _sookshma.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_ashtakavargaAshtakavargaBRead-onlyIdempotentInspect
Calculate the Ashtakavarga benefic point table for a Vedic chart: individual bindus for each planet in each sign and the total Sarvashtakavarga.
[Group: Vedic] [Endpoint: POST /v1/ashtakavarga] [Required: date, time, latitude, longitude] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| sarva | No | |
| planets | No | |
| sarvaTotal | No |
TDQS
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's genuine added value is the cost disclosure (50 credits, Tier 3) and the endpoint/method, which tell the agent this is a paid computation. It adds nothing about precision, computation assumptions, or response shape, so it is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and wastes no words, and the bracketed metadata block (group, endpoint, required, cost) is skimmable and easy to parse. The only redundancy is repeating the required-parameter list that the schema already enforces.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 safety profile is carried by annotations. However, for a 15-parameter paid computation with 33% schema coverage, the description omits any guidance on ayanamsa/zodiac selection and when to prefer this over sibling strength tools, leaving real decision gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate, and it does not. It merely restates the four required parameters (date, time, latitude, longitude) that the schema already marks as required, giving no meaning to ayanamsa, zodiacType, houseSystem, timezone, fields, or precision. Since Ashtakavarga is a sidereal technique, silence on zodiacType/ayanamsa is a real gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (Calculate) and resource (Ashtakavarga benefic point table), then goes further to enumerate the output content: per-planet bindus per sign plus the total Sarvashtakavarga. It is unmistakable against the vast Vedic sibling list since no other tool computes Ashtakavarga. It stops short of explicitly contrasting with related strength tools like shadbala, so it is not a full 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., that the technique is inherently sidereal), and no naming of alternatives among the shadbala/varga siblings. The bracket block lists required inputs and cost but never says under what circumstances an agent should reach for this tool over another.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_bhavabalaBhava Bala: house strengthARead-onlyIdempotentInspect
Strength of the twelve houses per BPHS Adhyaya 27: Bhavadhipati Bala (the Shadbala of the house lord), Bhava Digbala (the four rasi classes, each strong in one direction), and Bhava Drishti Bala (net benefic minus malefic aspect on the bhava). Components returned separately, plus rank, strongest and weakest house.
[Group: Vedic] [Endpoint: POST /v1/vedic/bhavabala] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| type | No | |
| unit | No | |
| houses | No | |
| weakest | No | |
| strongest | No |
TDQS
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 covered. The description adds the cost tier (20 credits), the endpoint, and the return structure, but says nothing about auth requirements, rate limits, or how the components relate to each other. Adequate but limited 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main sentence is dense with domain jargon but front-loads the essential meaning, and the bracketed meta block (group, endpoint, required, cost) is cleanly structured. Slightly heavy on untranslated Sanskrit term names, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not detail return values, and it helpfully sketches them anyway. However, for a 15-parameter tool with low schema coverage and no usage guidance, the absence of any parameter or configuration guidance leaves a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries the burden of compensating and does not. It merely restates the four required parameters (date, time, latitude, longitude) that the schema already marks required, and never explains the semantics of ayanamsa, houseSystem, zodiacType, or the compact-mode fields/precision options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific computed resource (strength of the twelve houses) and enumerates its three constituents: Bhavadhipati Bala, Bhava Digbala, and Bhava Drishti Bala. It clearly separates itself from the sibling shadbala tools, which compute planetary rather than house strength, and states the classical source (BPHS Adhyaya 27).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the content: an agent can infer this is for house-strength analysis rather than planetary (shadbala_*) or transit (ashtakavarga) strength. There is no explicit when-to-use statement, no prerequisites, and no naming of an alternative tool to prefer in adjacent cases, despite a very large sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_compatibility_ashtakootCompatibility: Ashtakoot Guna Milan (8-fold 36-point)ARead-onlyIdempotentInspect
Canonical 8-Kuta matchmaking out of 36 points: Varna(1) + Vashya(2) + Tara(3) + Yoni(4) + Graha-Maitri(5) + Gana(6) + Bhakoot(7) + Nadi(8). Threshold 18+ traditionally acceptable; 24+ good; 32+ excellent. Returns per-Kuta scores + Bhakoot/Nadi dosha flags + threshold verdict.
[Group: Vedic] [Endpoint: POST /v1/vedic/compatibility/ashtakoot] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| boy | No | |
| max | No | |
| girl | No | |
| total | No | |
| doshas | No | |
| method | No | |
| points | No | |
| school | No | |
| threshold | No | |
| recommendation | No |
TDQS
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 bar is low. The description adds genuine context beyond them: the cost tier (50 credits, Tier 3) and the shape of the verdict output including Bhakoot/Nadi dosha flags. It does not mention auth requirements or latency, but for a pure read-only computation this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the defining content (8-Kuta breakdown, thresholds, return shape) before the bracketed metadata, so an agent gets the essentials in the first sentence. The Kuta enumeration is dense but each item earns its place as a scope definition; the [Required] line is mildly redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema, rich annotations, and 100% parameter description coverage in the schema, the description need not explain returns or chart construction. It supplies the domain framing (what the 36-point scale means, what the dosha flags are) that lets an agent report results sensibly. Only the absence of sibling routing keeps it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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, including the compact-mode `fields` and `precision` options and the rich chart object semantics. The description only restates the two required params (chart1, chart2), adding nothing the schema does not already carry. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource and scope precisely: the canonical 8-Kuta / 36-point matchmaking, enumerating all eight Kutas with their weights (Varna 1 through Nadi 8). That enumeration uniquely identifies it against siblings like astroway_vedic_compatibility_dashakoota (10-Kuta) or _full, even though no sibling is named outright. Clear and specific, but it stops short of explicit sibling routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The threshold bands (18+ acceptable, 24+ good, 32+ excellent) are interpretation guidance for reading the result, not invocation guidance. There is no statement of when to choose this over the other four compatibility endpoints (bhrigu_match, dashakoota, full, mangal_match) or any prerequisite for calling it. Usage is implied by the name only.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_compatibility_bhrigu_matchCompatibility: Bhrigu-match (7H placement)ARead-onlyIdempotentInspect
Bhrigu Sanhita-style structured 7th-house planetary placement summary for both partners. Counts benefic/malefic planets in each partner's 7H from Lagna and labels status {beneficial|challenging|neutral}. NOT a numerical match score.
[Group: Vedic] [Endpoint: POST /v1/vedic/compatibility/bhrigu-match] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | No | |
| school | No | |
| summary | No | |
| partner1 | No | |
| partner2 | No | |
| disclaimer | No |
TDQS
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 genuinely useful non-schema context: the endpoint path, the two required chart inputs, and the 50-credit Tier 3 cost, which matters for a paid call. No auth or rate-limit detail, but nothing misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the differentiator in the first sentence and the computation in the second; the bracketed metadata block is terse and each token (endpoint, required, cost) carries information. Slightly redundant with the schema on 'Required: chart1, chart2', but no wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers what is computed, the required inputs and the cost. Given the crowded compatibility sibling set, the one gap is guidance on when this beats compatibility_full; otherwise it is complete for a read-only, idempotent computation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested chart object is thoroughly documented in the schema itself (date/time formats, timezone semantics, houseSystem letters). The description only restates the two required parameter names, adding no syntax or format meaning beyond structured fields. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific computation ('counts benefic/malefic planets in each partner's 7H from Lagna') and the exact output vocabulary ({beneficial|challenging|neutral}). The closing line 'NOT a numerical match score' actively separates it from the several score-based compatibility siblings (ashtakoot, dashakoota). An agent can tell what this returns 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The negative disambiguation ('NOT a numerical match score') gives implied usage — pick this for qualitative 7H placement rather than point totals — but no alternative is named. With five compatibility siblings (ashtakoot, dashakoota, full, mangal_match, manglik_check) an explicit 'use X when Y' would be needed for a 4 or 5. Guidance is inferable, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_compatibility_dashakootaCompatibility: Dashakoota (10-fold 39-point)ARead-onlyIdempotentInspect
Extended matchmaking adding Mahendra(2) + Vedha(1) on top of Ashtakoot 36 = 39 max. Mahendra: birth-star count 4/7/10/13/16/19/22/25 → 2pt; else 0. Vedha: 13 canonical mutually-obstructing nakshatra pairs → 0pt blocked, 1pt clear.
[Group: Vedic] [Endpoint: POST /v1/vedic/compatibility/dashakoota] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| boy | No | |
| max | No | |
| girl | No | |
| total | No | |
| vedha | No | |
| doshas | No | |
| method | No | |
| points | No | |
| school | No | |
| mahendra | No | |
| threshold | No | |
| dashakootaMax | No | |
| recommendation | No | |
| dashakootaTotal | No |
TDQS
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 bar is lower, and the description adds real operational context: cost (50 credits, Tier 3), endpoint, and the required chart pair. It also makes the scoring deterministic and auditable (specific nakshatra counts and 13 obstructing pairs), which helps an agent reason about the result rather than treat it as a black box.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and the additive scoring relationship are front-loaded in the first clause, followed by the two rule definitions and a compact metadata block. It is dense but every line carries information; no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-chart calculation with rich annotations and an output schema, coverage is mostly adequate. The notable gap is chart ordering: Mahendra counting is directional (counted from one nakshatra to the other), yet the description never says whether chart1 is the reference and how that affects the 2-point award, nor how to read the 39-point total.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested chart object is documented in unusual depth (timezone handling, field-name rejections, house-system letters), so the schema carries parameter semantics. The description only restates that chart1 and chart2 are required and adds nothing about parameter meaning itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific domain resource and computation: an extended matchmaking score that adds Mahendra (2) and Vedha (1) to the Ashtakoot 36 for a 39-point maximum. That implicitly separates it from astroway_vedic_compatibility_ashtakoot, though it never names the sibling or the fuller compatibility_full variant directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: by framing itself as 'extended ... on top of Ashtakoot 36', it signals when an agent would prefer it over the plain Ashtakoot tool. There is no explicit when-to-use/when-not statement, no mention of compatibility_full, and no prerequisite or alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_compatibility_fullCompatibility: Parashara full reportARead-onlyIdempotentInspect
Combined matchmaking response: Ashtakoot total + threshold + Manglik check for both partners + per-Kuta sub-scores + recommendation in one call.
[Group: Vedic] [Endpoint: POST /v1/vedic/compatibility/full] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | No | |
| points | No | |
| school | No | |
| manglik | No | |
| ashtakoot | No | |
| recommendation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false), so the description only needs to add context beyond that. It discloses the real behavioral cost driver — 50 credits, Tier 3 — and the fact that the response is a single aggregated call, which is genuinely useful for planning. No contradiction with the read-only annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The response contents are front-loaded in a single dense sentence, followed by four compact metadata tags (group, endpoint, required, cost). Every element earns its place; there is no padding. Minor: the bracketed tag block is functional rather than prose, but it stays tight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 required inputs plus cost are stated. For a tool sitting in a dense cluster of six compatibility siblings, the one remaining gap is explicit routing — the description does not say which sibling to pick instead when a user wants only Ashtakoot or a non-Parashara system.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the nested chart1/chart2 objects are documented in rich detail (date/time formats, timezone vs timezoneOffset, houseSystem letters). The description only repeats "Required: chart1, chart2," adding nothing about the four top-level parameters (fields, precision) or the nested chart fields. Baseline 3 is correct when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (combined matchmaking response) and enumerates exactly what it returns: Ashtakoot total, threshold, Manglik check for both partners, per-Kuta sub-scores, and a recommendation. This positions it as the superset of the sibling compatibility tools. It stops short of explicitly naming which siblings it subsumes (compatibility_ashtakoot, compatibility_manglik_check), so differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"in one call" strongly implies this is the aggregation shortcut versus calling the individual Kuta/Manglik endpoints, which is usable guidance. However, it never states when NOT to use it — e.g. versus astroway_vedic_compatibility_dashakoota or bhrigu_match, which are different matching systems, not subsets. No explicit alternative is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_compatibility_mangal_matchCompatibility: Mangal-match (Manglik between partners)ARead-onlyIdempotentInspect
Compares Manglik status of both partners and applies BPHS A.39 cancellation rule: if both partners are Manglik, the dosha is mutually cancelled. Returns verdict {compatible|cancelled|incompatible}.
[Group: Vedic] [Endpoint: POST /v1/vedic/compatibility/mangal-match] [Required: chart1, chart2] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth 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. | |
| chart2 | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| method | No | |
| school | No | |
| verdict | No | |
| partner1 | No | |
| partner2 | No | |
| explanation | No | |
| mangalSchool | No |
TDQS
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 genuine non-obvious context: the BPHS A.39 cancellation logic that governs the result and the 50-credit Tier 3 cost, which is materially useful for planning.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose and decision logic in the first sentence, with operational metadata (group, endpoint, required params, cost) tucked into bracketed lines. Efficient, though the metadata block is boilerplate rather than narrative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description is not obliged to explain the full return shape, and it still names the verdict enum. Cost, required inputs and the interpretive rule are all present; only the sibling differentiation is missing for a tool family with several overlapping compatibility endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested chart objects are thoroughly documented (timezone, houseSystem, coordinate requirements), so the description only needs to confirm the two required inputs. It lists 'chart1, chart2' but adds no semantics beyond the schema; baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Compares Manglik status of both partners' and names the governing rule (BPHS A.39 mutual cancellation) plus the verdict space. That is enough to distinguish it in substance from the sibling astroway_vedic_compatibility_manglik_check, though the description never actually names that sibling to make the split explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The closest sibling, astroway_vedic_compatibility_manglik_check (single-chart Manglik check), is not mentioned, so an agent must infer from 'both partners' that this is the pairwise variant rather than the single-chart one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_compatibility_manglik_checkCompatibility: Manglik check (single chart)ARead-onlyIdempotentInspect
Detects Manglik status for a single chart with school selection (strict/north/south, default south). Same canon as /vedic/doshas/parashara/mangal; surfaced here in compatibility context for matchmaking flows.
[Group: Vedic] [Endpoint: POST /v1/vedic/compatibility/manglik-check] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| method | No | |
| school | No | |
| details | No | |
| manglik | No | |
| present | No | |
| severity | No | |
| lagnaSign | No | |
| mangalSchool | No | |
| affectedHouses | No | |
| contributingPlanets | No |
TDQS
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). The description adds value beyond them by disclosing cost (20 credits, Tier 2), the endpoint, and the required inputs, plus the equivalence to the parashara mangal endpoint. It does not describe depth of the returned interpretation, but that is minor given the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences front-loaded with the core purpose, followed by compact metadata tags for group, endpoint, required fields and cost. Nothing is wasted, though the bracket metadata could be trimmed if the schema already carries the required list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool the description covers only a fraction of the surface, but annotations cover safety, an output schema covers returns, and the metadata block supplies endpoint, cost and required fields. An agent could call it correctly for the common case but would be under-informed about the many optional chart-configuration parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% across 15 parameters, so the description is expected to compensate, yet it documents only the 'school' option (strict/north/south, default south) and the required date/time/lat/long. Notably that 'school' parameter does not appear in the supplied input schema, which could confuse mapping, and the remaining parameters (city, name, cosmogram, zodiacType, houseSystem, etc.) are left to their own names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Detects Manglik status for a single chart') and explicitly delimits itself to a single chart, which separates it from the sibling astroway_vedic_compatibility_mangal_match (a two-chart match). It also ties itself to the same canon as astroway_vedic_doshas_parashara_mangal so the agent knows the underlying calculation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context: use in matchmaking/compatibility flows, single chart, with school selection. It does not explicitly say when to prefer this over astroway_vedic_doshas_parashara_mangal or the mangal_match sibling, so there is no exclusion guidance, but the intended context is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_ashtottari_antarDashas: Ashtottari AntardashaBRead-onlyIdempotentInspect
Ashtottari Antardasha: 8 sub-periods of the running MD at targetDate (default today UTC). Sub-period of planet Q within MD of P: years = (P.years × Q.years) / 108.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/ashtottari/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds value beyond that: the default targetDate of today UTC, the exact arithmetic used to derive the sub-periods, and the 20-credit Tier 2 cost, which an agent needs for budgeting. It does not describe pagination or return shape, but an output schema exists so that is not required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the identity of the dasha level, then the qualifying detail (default date) and the formula; the group/endpoint/cost block is compact metadata. No filler sentences, though the alphabetical formula is slightly dense for a description opener.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
What the tool returns is covered by the output schema, and cost, endpoint and default date are given, so an agent has enough to invoke it. What is missing is the routing context across the unusually deep dasha family (maha/antar/pratyantar/sookshma/prana for ten different systems) — the description gives no help choosing this level or this system over the ~50 sibling dashas.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested birth-data fields are heavily documented in the schema, so the schema is doing the heavy lifting. The description only adds the default behaviour of targetDate; it says nothing about targetTime, targetTzOffset, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific dashas level and resource: Ashtottari Antardasha, defined as the 8 sub-periods of the running Mahadasha at a target date. The formula (P.years × Q.years / 108) pins down exactly which level of the dasha hierarchy this computes, which is more than a generic restatement. It stops short of explicitly naming sibling levels (pratyantar/sookshma/prana) to disambiguate the hierarchy, so it is clear but not fully sibling-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this level over maha, pratyantar, sookshma or prana. The only usage-adjacent detail is that targetDate defaults to today UTC. The agent must infer from the name which dasha depth it needs, with no alternatives or exclusions offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_ashtottari_mahaDashas: Ashtottari MahadashaARead-onlyIdempotentInspect
108-year Ashtottari Dasha (Ardradi tradition). 8 planets (Sun/Moon/Mars/Mercury/Saturn/Jupiter/Rahu/Venus) with periods 6/15/8/17/10/19/12/21 (total 108y), Ketu excluded. Mapping is block-based (4-3-4-3-3-3-4-3 nakshatras anchored at Ardra). Returns applicability flag per BPHS 46.23 (day Krishna OR night Shukla).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/ashtottari/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, closed-world), so the description's job is to add domain behavior — and it does: Ketu exclusion, the block-based nakshatra anchoring at Ardra, and the BPHS 46.23 applicability condition (day Krishna OR night Shukla). The credit cost (20, Tier 2) adds practical context, though nothing is said about performance or time range of returned periods.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the essential identification (108-year Ashtottari, Ardradi) and compressed into a few dense but information-bearing sentences. The period and nakshatra enumerations are verbose yet directly relevant to the calculation, so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, and the description still notes the applicability flag it emits. Combined with annotations covering safety, the remaining gap is purely the absence of usage/routing guidance among dashed siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so birth-data fields, timezone rules, ayanamsa and compact-mode fields are all documented in the schema itself. The description adds no parameter-level meaning beyond that, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific calculation: Ashtottari Mahadasha under the Ardradi tradition, with planetary periods and nakshatra mapping enumerated. An agent understands what is being computed. It does not, however, distinguish itself from the ashtottari_antar/pratyantar/sookshma/prana siblings that share the same scheme at sub-period levels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no mention of the four sibling tools at deeper dasha levels (antar, pratyantar, sookshma, prana) that an agent must choose between. The only implicit cue is 'maha' in the name, which is not explained in the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_ashtottari_pranaDashas: Ashtottari PranadashaBRead-onlyIdempotentInspect
Ashtottari Pranadasha: 5-level cascade (finest grain).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/ashtottari/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful operational facts – group, endpoint, and the 20-credit Tier 2 cost – but says nothing about output depth, computation cost implications, or failure modes beyond what the schema conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short lines, front-loaded with the identifying clause and followed by metadata; nothing is padded or redundant. It is arguably too sparse rather than too long, but every line earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 input schema is exhaustive. Still, for a tool sitting among dozens of near-identical dasha endpoints, the description fails to explain what this level yields or why it would be chosen, leaving a routing gap the structured fields cannot close.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the body (birth data, target date/time/tz), fields and precision parameters are already fully documented in the schema. The description adds nothing about parameter meaning or interaction. Baseline 3 is appropriate when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific dasha system (Ashtottari Pranadasha) and its position in the hierarchy ('5-level cascade, finest grain'), which distinguishes it from the coarser ashtottari_sookshma/pratyantar/antar/maha siblings. However, it has no verb at all (compute/return) and assumes the agent already knows what a pranadasha is. Clear but not fully self-contained.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to select this tool versus the four other Ashtottari levels or the many other dasha systems. 'Finest grain' hints at granularity but never states a condition for choosing prana over sookshma or pratyantar, and no prerequisites (birth data requirement) are described.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_ashtottari_pratyantarDashas: Ashtottari PratyantardashaBRead-onlyIdempotentInspect
Ashtottari Pratyantardasha: 3-level cascade (MD → AD → 8 PDs).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/ashtottari/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is covered. The description adds the cost (20 credits, Tier 2), which is a genuinely useful behavioral signal for invocation budgeting, plus the endpoint and group tags. It says nothing further about computation semantics or limits, so it is useful but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely compact and front-loaded: the level/cascade statement comes first, then the metadata tags. Every element carries information and there is no padding. The bracketed Group/Endpoint/Cost lines are metadata rather than prose, which slightly dilutes the description proper.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 this tool lives in a dense family of identical-looking dasha endpoints where routing is the hard part, and the description does nothing to resolve that ambiguity. For a Tier-2, 20-credit call the definition gives no selection criteria, which is a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the body schema itself is exhaustively documented (coordinate forms, timezone vs timezoneOffset precedence, houseSystem letters, ayanamsa rules). The description contributes no parameter meaning beyond that, so the baseline 3 for fully covered schemas is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and scope: 'Ashtottari Pratyantardasha: 3-level cascade (MD → AD → 8 PDs)', which tells the agent both the dasha system and the exact depth of the level being computed. The naming and the '8 PDs' detail distinguish it from the maha/antar/prana/sookshma siblings in the same family. It stops short of explicitly naming those siblings, so it is clear but not fully self-routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 exclusions. With ~70 near-identical dasha siblings (ashtottari_antar, ashtottari_prana, ashtottari_sookshma, plus every other system at every level), the description never says which level to pick or what input conditions select this tool. The cascade notation implies what is produced but gives no decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_ashtottari_sookshmaDashas: Ashtottari SookshmadashaCRead-onlyIdempotentInspect
Ashtottari Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/ashtottari/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior, so the safety profile is covered. The description adds genuinely useful operational facts — the POST endpoint and a 20-credit Tier 2 cost — but says nothing about output shape, latency, or pagination/limits on the cascade depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: the subject comes first, followed by bracketed metadata lines. There is no filler, though '4-level cascade' is too compressed to carry real meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. But for a tool with a required multi-field birth-data body sitting among ~10 near-identical Ashtottari and other dasha-level siblings, the description supplies no disambiguation, no usage context, and no explanation of what the sookshma cascade yields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested birth-data object, fields, and precision parameters are thoroughly documented in the schema itself. The description adds no parameter meaning beyond that, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific dasha system and level (Ashtottari Sookshmadasha) and hints at depth with '4-level cascade'. However, it never explains what a sookshma-level dasha is or how it differs from the many sibling levels (maha, antar, pratyantar, prana), so an 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to request this depth versus ashtottari_maha/antar/pratyantar/prana, and no prerequisites or exclusions. The metadata lines give group/endpoint/cost but nothing about selection context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_chara_antarDashas: Chara AntardashaARead-onlyIdempotentInspect
Chara Antardasha: 12 sub-periods of the running Mahadasha at targetDate (default today UTC). Equal-share subdivision: each antar = parent_years / 12. Order: parent's NEXT sign first (in parent direction), parent sign LAST (per K.N. Rao).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/chara/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| variant | No | |
| ayanamsa | No | |
| currentMaha | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, read-only, closed-world call, so safety need not be repeated. The description adds real domain behavior beyond that: the equal-share subdivision rule (parent_years / 12), the ordering convention (parent's next sign first, parent sign last, attributed to K.N. Rao), the default target date, and the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The identity of the tool is front-loaded in the first clause, followed by the arithmetic rule and the ordering rule, each earning its place. The bracketed Group/Endpoint/Cost block is boilerplate but short and useful for routing and cost awareness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description covers computation method, ordering, timing default and cost. Minor gaps remain: it does not state which sign the parent mahadasha sequence starts from, nor that the parent Chara mahadasha must be resolved first.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the body fields are already documented and the baseline is 3. The description adds one genuinely new parameter fact: `targetDate` defaults to today UTC, which the schema does not state. It adds nothing further about targetTime or targetTzOffset, which the schema leaves thin.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific dasha level and resource ('Chara Antardasha: 12 sub-periods of the running Mahadasha'), so the agent knows exactly what is being computed. It does not, however, distinguish this level from the sibling levels chara_pratyantar, chara_prana and chara_sookshma, leaving the agent to rely on the tool name to know which sub-division depth it gets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the level named (fetch antardashas for a Chara mahadasha) and by the `targetDate` framing, but there is no explicit when-to-use statement and no mention of the alternative dasha-level tools or the sibling dasha systems. Nothing tells the agent when antar is the right depth versus pratyantar or sookshma.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_chara_mahaDashas: Chara MahadashaBRead-onlyIdempotentInspect
Chara Dasha (Jaimini rasi-dasha: Mahadasha lord = sign, not planet). 12 Mahadashas of variable duration starting at lagna sign. Direction = forward for movable+dual signs (Aries/Cancer/Libra/Capricorn/Gemini/Virgo/Sagittarius/Pisces); reverse for fixed (Taurus/Leo/Scorpio/Aquarius). Per-sign duration = inclusive count from sign to its lord (in direction) minus 1; lord-in-own-sign → 12 years. Co-lord rule for Scorpio (Mars+Ketu) and Aquarius (Saturn+Rahu): pick the OTHER if exactly one is in the sign, else higher absolute longitude. Default variant = K.N.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/chara/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| variant | No | |
| ayanamsa | No |
TDQS
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 then adds genuine algorithmic transparency beyond annotations: duration-direction rules by sign type, the inclusive-count-minus-one timing formula, the own-sign = 12 years case, and the co-lord tie-break for Scorpio and Aquarius. It omits operational context such as the 20-credit Tier 2 cost, but the computational behavior disclosed is unusually rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with what the tool computes, but a large share of the text is implementation minutiae — the per-sign duration formula and the Scorpio/Aquarius co-lord tie-break — that helps confirm output semantics but not selection or invocation. For a tool whose schema already covers inputs, this is heavier than needed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 is complete enough for the agent to understand what the tool computes and how the periods are derived. Its remaining gap is relational: it does not place itself in the 70-plus sibling dasha hierarchy or explain when the positional 'Maha' level is the right depth.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the birth-data fields, timezone handling, fields and precision are already documented in the schema. The description adds no parameter-level meaning — it never mentions the body fields, the compact-mode fields/precision controls, or the targetDate/targetTime fields present in the schema. Baseline 3 applies when the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb+resource: computing Chara Dasha Mahadashas (Jaimini rasi-dasha, lord = sign rather than planet), and it pins the level with '12 Mahadashas of variable duration starting at lagna sign.' It never explicitly distinguishes itself from the sibling Chara sub-period tools (antar/pratyantar/sookshma/prana), so the agent must infer level 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given: nothing says when Chara Dasha is preferred over Vimshottari, Yogini, Ashtottari or the other dasha systems in the sibling list, and no alternative is named. The 'Default variant = K.N.' note implies a selectable variant but doesn't tell the agent what the options are or when they matter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_chara_pranaDashas: Chara PranadashaBRead-onlyIdempotentInspect
Chara Pranadasha: 5-level cascade (finest grain). Minute-scale duration at full depth.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/chara/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| variant | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No |
TDQS
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 non-schema context — the endpoint and the 20-credit Tier 2 cost — but says nothing about auth requirements, rate limits, or how the 5-level cascade is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight fragments with the domain-defining qualifier ('finest grain') front-loaded, followed by machine-readable group/endpoint/cost metadata. Every element earns its place, though the telegraphic style sacrifices some explanatory value for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the input schema is fully documented, so return values and parameters need not be restated. The description supplies the one thing structured data cannot — the domain placement of 'prana' within the Chara level hierarchy and its minute-scale resolution — but omits selection guidance against the four sibling levels, which is the main remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the body fields (date, time, latitude, longitude, timezone handling, fields, precision) are already fully documented in the schema, and the description adds no parameter meaning beyond that. Baseline 3 is appropriate when the schema carries the entire parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific system and level ('Chara Pranadasha') and, critically, places it as the 'finest grain' of a '5-level cascade', which is exactly the distinction an agent needs against siblings like chara_maha, chara_antar, chara_pratyantar and chara_sookshma. It stops short of stating the compute/return verb explicitly, but the resource and its position in the family are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no routing to alternatives such as chara_sookshma when a coarser grain suffices. 'Finest grain' and 'minute-scale duration' imply the deepest-resolution use case, but the agent must infer that selecting this tool versus the four shallower Chara levels depends on desired time resolution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_chara_pratyantarDashas: Chara PratyantardashaARead-onlyIdempotentInspect
Chara Pratyantardasha: 3-level cascade (MD → AD → 12 PDs). Recursive equal-share subdivision; same direction at every depth.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/chara/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| variant | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No |
TDQS
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 bar is lower. The description adds genuinely new behavioral context: the cost ('20 credits, Tier 2'), the endpoint, and the recursion rule ('equal-share subdivision; same direction at every depth'), which tells the agent how the periods are derived.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core semantics in the first clause, then structured metadata lines. No filler sentences; every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 algorithm/cost metadata is present. The gap is decision support: for a tool surrounded by ~80 Vedic siblings at four different dasha depths, the absence of any routing guidance leaves the agent to infer selection from the name alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 birth data, fields and precision thoroughly. The description supplies no additional parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific computation: 'Chara Pratyantardasha: 3-level cascade (MD → AD → 12 PDs)', which pins down the dasha level and its subdivision structure. It distinguishes itself from the maha/antar/prana/sookshma variants only implicitly via the level name; there is no explicit routing statement, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling routing. Given siblings like chara_antar, chara_prana and chara_sookshma sit at adjacent levels, the description should say which level the agent wants, but it does not. Only the implicit '12 PDs' wording hints at scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_chara_sookshmaDashas: Chara SookshmadashaCRead-onlyIdempotentInspect
Chara Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/chara/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| variant | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No |
TDQS
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 covered. The description adds genuinely useful non-annotation context — the endpoint, the Vedic group, and the cost (20 credits, Tier 2) — but says nothing about output shape or what the cascade contains. With annotations carrying the safety burden, a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded, but the content is metadata tags (group, endpoint, cost) rather than explanatory prose. Nothing is padded, yet little of it earns its place beyond the cost line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a niche Vedic dasha endpoint surrounded by dozens of near-identical siblings, the description does not explain what Chara Dasha is, what the 4-level cascade returns, or how it relates to the other levels. An output schema exists so return values needn't be described, but the tool-selection context is essentially absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the body schema is exhaustively documented (timezone handling, houseSystem letters, ayanamsa, target date fields), so the schema does all parameter work. The description adds nothing beyond the schema, which yields the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description largely restates the title/name; its only added content is '4-level cascade', which hints at the depth of the dasha subdivision but never states a verb, what is computed, or what distinguishes it from the sibling chara_maha/antar/pratyantar/prana tools. An agent cannot tell which cascade level this is without decoding the naming convention.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus the ~60 sibling dasha tools, including the four other Chara levels (maha, antar, pratyantar, prana). No conditions, no prerequisites, no alternatives named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_kalachakra_antarDashas: Kalachakra AntardashaARead-onlyIdempotentInspect
Kalachakra Antardasha: 9 sub-periods of the running MD at targetDate (default today UTC). Same chakra-row at every depth; sub-period of sign Q within MD of P: years = (P.years × Q.years) / paramayu.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/kalachakra/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real value beyond that: cost (20 credits, Tier 2), the endpoint, the default-to-today behavior, and the period-length formula. Cost and default semantics are things annotations cannot express.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences plus metadata tags; the resource and depth are front-loaded and nothing is wasted. The formula is arguably jargon but it earns its place by clarifying the antardasha computation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need no explanation. The description supplies cost, endpoint, default date behavior, and result count (9 sub-periods). The only gap is an explicit pointer to the sibling depth levels for choosing this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the nested birth body, fields, and precision parameters. The description only adds the `targetDate` default (today UTC) and the internal formula, so the baseline 3 is appropriate rather than a higher score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Kalachakra Antardasha: 9 sub-periods of the running MD at targetDate'. The depth level (sub-periods of the running MD) implicitly distinguishes it from the maha/pratyantar/prana/sookshma siblings, though it never names them. Clear but not explicitly differentiated from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage via 'at `targetDate` (default today UTC)', giving a default when the agent omits the date. But there is no explicit guidance on when to choose antardasha over the neighbouring depth levels (maha, pratyantar, prana, sookshma), which is the key decision an agent faces with ~70 siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_kalachakra_mahaDashas: Kalachakra MahadashaARead-onlyIdempotentInspect
Kalachakra Dasha (rasi-dasha: Mahadasha lords are signs, not planets). 8 chakra-rows (Savya×4 + Apasavya×4); direction determined by nakshatra group (Aswini/Bharani/Krittika = Savya; Rohini/Mrigasira/Ardra = Apasavya). Total cycle (paramayu) varies per natal pada: 100/85/83/86 years. Returns the 9 Mahadashas of the running cycle from birth; first MD truncated by elapsed pada-fraction.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/kalachakra/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description adds real domain behavior: Savya/Apasavya direction from nakshatra group, paramayu varying 100/85/83/86 years per pada, and truncation of the first Mahadasha by the elapsed pada fraction. These are non-obvious traits an agent could not derive from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the defining clause, then the mechanics, then the return shape, in one tight paragraph with no filler. Slightly dense/run-on with parenthetical jargon, but every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 enumerate return fields, but it still states what is returned (9 Mahadashas of the running cycle, first truncated). For a read-only Tier-2 computation tool this is close to complete; only explicit sibling routing is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested birth-data schema already documents date/time/latitude/longitude, timezone handling, and the fields precision compact-mode parameter. The description adds no parameter-level guidance, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb/resource and scope: 'Kalachakra Dasha ... Returns the 9 Mahadashas of the running cycle from birth'. It also disambiguates from the sibling Kalachakra tools (antar/pratyantar/prana/sookshma) by naming the Mahadasha level and from other dasha systems by defining the rasi-dasha rule that lords are signs, not planets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (getting Mahadasha-level Kalachakra periods) but never says when to prefer this tool over astroway_vedic_dashas_kalachakra_antar or the other dasha families, nor does it state prerequisites beyond the birth data. Usage is inferable from the name and content, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_kalachakra_pranaDashas: Kalachakra PranadashaARead-onlyIdempotentInspect
Kalachakra Pranadasha: 5-level cascade (finest grain, minutes-scale at full depth).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/kalachakra/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
TDQS
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 bar is lower. The description adds genuinely useful behavioral context absent from annotations: cost (20 credits, Tier 2), the POST endpoint, and the tool group. It does not describe response shape, but an output schema exists to carry that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the essential depth characterization, followed by compact structured metadata lines for group, endpoint, and cost. No filler sentences; the only mild redundancy is restating the tool name in the opening line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich input schema, an output schema, and full annotation coverage, the definition supplies what the structured fields cannot: cost tier and endpoint. The remaining gap is domain guidance on what distinguishes prana-level output from the other Kalachakra depths, which would help an agent choose correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the body schema already documents birth data, timezone handling, and the fields/precision compact-mode parameters in detail. The description adds no parameter meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific dasha system (Kalachakra), the level (Pranadasha), and characterizes its depth as a '5-level cascade (finest grain, minutes-scale at full depth).' That lets an agent place it against sibling levels like kalachakra_sookshma or kalachakra_maha, though it never names those siblings directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'finest grain, minutes-scale at full depth' suggests reaching for this when minute-level timing is needed, but there is no explicit when-to-use statement and no routing to the coarser kalachakra levels (maha/antar/pratyantar/sookshma) that share this family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_kalachakra_pratyantarDashas: Kalachakra PratyantardashaBRead-onlyIdempotentInspect
Kalachakra Pratyantardasha: 3-level cascade (MD → AD → 9 PDs). Recursion preserves the natal chakra-row and paramayu.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/kalachakra/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds genuine behavioral context beyond them — the recursion preserves the natal chakra-row and paramayu, and the call costs 20 credits (Tier 2) — but says nothing about how many periods are returned, whether the whole lifetime is enumerated, or whether a target date filters the output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences plus a compact metadata block; every element is load-bearing and nothing is padded. It is arguably too terse for the domain, but there is no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool nested in a family of ~60 dasha endpoints, the level definition and recursion note are the essential differentiators and the output schema covers return values. However, nothing explains what paramayu means to a caller, how this level relates to the antar/prana/sookshma siblings, or what the target-date fields do, leaving gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already carries the parameter semantics (birth data, ayanamsa, timezone handling, compact-mode fields/precision) and the description adds nothing to them, which sets the baseline at 3. Notably the description does not touch the targetDate/targetTime window at all, but with full schema coverage that omission is not penalized heavily.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific dasha level (Kalachakra Pratyantardasha) and defines its depth as a 3-level cascade MD → AD → 9 PDs, which implicitly separates it from the kalachakra_antar (MD→AD) and kalachakra_prana (deeper) siblings. It stops short of explicitly naming or contrasting those siblings, so an agent must infer the ordering from the shared naming convention.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing is given. The cascade notation hints at the level of granularity but never states a condition such as 'use when the question concerns sub-sub-periods rather than Mahadasha-level timing', and no prerequisites (e.g. that a target date drives the period list) are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_kalachakra_sookshmaDashas: Kalachakra SookshmadashaBRead-onlyIdempotentInspect
Kalachakra Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/kalachakra/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
TDQS
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 covered. The description adds genuinely useful non-schema facts: the endpoint and a 20-credit Tier 2 cost, which matters for budgeting. It says nothing about the computed output's nature or depth, so it is adequate rather than rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short lines, front-loaded with the technique name and the cascade depth, then bracketed metadata. Nothing is padded, though the body is closer to a label than a description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 schema carries the full input contract. However, for a niche nested dasha in a family of roughly sixty dasha siblings, an agent gets no help on what '4-level cascade' yields or how sookshma differs in granularity, leaving the routing decision underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the birth-data block documents date/time/latitude/longitude, timezone handling, ayanamsa and houseSystem in detail, plus the fields and precision compaction params. The description adds no parameter meaning at all, so the baseline 3 for a fully documented schema applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific technique (Kalachakra Sookshmadasha) and its shape (4-level cascade), which distinguishes it from the Kalachakra maha/antar/pratyantar/prana siblings and from other dasha families. It stops short of an explicit verb or of stating what the tool returns, so it is clear but not fully self-routing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to pick sookshma over prana or pratyantar, no prerequisites, and no named alternative. The agent must infer the usage tier purely from the name suffix.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shatabdika_antarDashas: Shatabdika AntardashaARead-onlyIdempotentInspect
Shatabdika Antardasha: 7 sub-periods of the running MD at targetDate. Recursive proportional split (parent_years × sub_planet_period / 100).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shatabdika/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds genuinely new behavioral facts: the recursive proportional split formula (parent_years × sub_planet_period / 100), the cost (20 credits, Tier 2) and the endpoint. It stops short of describing failure modes when no MD is running at targetDate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences plus bracketed metadata lines; the definition and formula come first, routing/cost metadata after. Nothing is padded, though the formula sentence is of marginal use to an agent selecting the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover the safety profile. Cost, endpoint and level semantics are present; the remaining gap is disambiguation from the four sibling Shatabdika levels and the other dasha systems sharing this naming pattern.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the birth-data body, fields and precision are already documented. The description does add meaning for targetDate, which is otherwise an undocumented pattern-only property, by stating it selects the running mahadasha — but it says nothing about targetTime or targetTzOffset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb/resource: the Shatabdika antardasha sub-periods of the currently running mahadasha, plus the count (7) and the selecting input (targetDate). This implicitly separates it from the _maha level and from deeper levels, though it never names pratyantar/prana/sookshma siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage signal is 'at targetDate', which implies a date is required but gives no guidance on when to pick this level over _maha, _pratyantar, _prana or _sookshma, nor on the prerequisite that a running mahadasha must exist. No alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shatabdika_mahaDashas: Shatabdika MahadashaBRead-onlyIdempotentInspect
Shatabdika Dasha: 100-year nakshatra dasha cycle (BPHS Adhyaya 46 group). 7 planets (no shadow planets), seed nakshatra = Revati (27). Sequence: Sun(5)→Moon(5)→Venus(10)→Mercury(10)→Jupiter(20)→Mars(20)→Saturn(30). Distribution: 6 planets get 4 nakshatras each, Saturn gets 3. Standard nakshatra-fraction × period balance rule. Algorithm port of PyJHora sataatbika.py.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shatabdika/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| moonSiderealLongitude | No |
TDQS
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 usefully adds the credit cost (Tier 2, 20 credits), the deterministic algorithm source (PyJHora sataatbika.py port) and structural rules of the cycle, but says nothing about what the response looks like or lineage of the returned periods.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, followed by compact supporting detail (planet sequence, distribution) and metadata tags. The planet/period chain is dense but each element carries real information; there is little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return values need not be described, and parameters are fully documented in the schema. The description covers the algorithm and cost adequately; its only real gap is not stating that this is the mahadasha (top) level of the hierarchy relative to its siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 the birth-data body, fields compact mode and precision. The description adds no parameter-level meaning at all, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific subject: the Shatabdika 100-year nakshatra dasha cycle, with planet sequence, seed nakshatra and distribution rule. It clearly identifies the dasha system, but never explicitly says this tool returns the mahadasha-level periods (as opposed to the antar/pratyantar/prana/sookshma siblings in the same family), so sibling differentiation is left implicit in the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call this versus the four other shatabdika sibling tools (antar, pratyantar, prana, sookshma), nor any statement of prerequisites such as needing birth data. The reader is left to infer the level of the dasha hierarchy from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shatabdika_pranaDashas: Shatabdika PranadashaBRead-onlyIdempotentInspect
Shatabdika Pranadasha: 5-level cascade (finest grain).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shatabdika/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
TDQS
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 usefully adds the endpoint and the 20-credit Tier-2 cost, but discloses nothing about the volume/shape of a 5-level cascade or any auth requirement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact lines with the operative fact ('5-level cascade, finest grain') front-loaded, followed by structured metadata lines for group, endpoint and cost. No filler, though the bracketed metadata is boilerplate rather than task guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/endpoint are supplied. However, for a tool sitting inside a family of five near-identical Shatabdika variants, the definition never explains what the prana level is for or when it beats the sookshma/pratyantar alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the body schema carries extensive field-level documentation (timezone semantics, rejected short forms, houseSystem letters). The description adds nothing beyond that, so baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific resource (Shatabdika Pranadasha) and adds structural meaning with '5-level cascade (finest grain)', which tells the agent this returns deeply nested dasha periods. It does not explicitly name the neighboring levels (maha/antar/pratyantar/sookshma) to contrast against, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 what distinguishes the prana level from the five sibling Shatabdika tools, and no prerequisites. Only the cost tier is given, which is operational rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shatabdika_pratyantarDashas: Shatabdika PratyantardashaBRead-onlyIdempotentInspect
Shatabdika Pratyantardasha: 3-level cascade (MD → AD → 7 PDs).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shatabdika/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructiveness, so the safety profile is covered. The description adds genuinely useful non-annotation context — the endpoint and the 20-credit Tier 2 cost — but says nothing about execution behavior, response size, or any limits, which is acceptable given the 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very terse: one substance line plus bracketed metadata for group, endpoint and cost. Front-loaded and free of filler, though the metadata lines are boilerplate rather than task-relevant prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The rich schema, output schema and annotations carry most of the burden, so the thin description is tolerable. Still, for a domain-specific tool sitting among ~10 near-identical dasha variants, the description never explains what Shatabdika Pratyantardasha is or when it beats its Antar/Prana/Sookshma siblings — the main gap an agent would hit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the body, fields and precision parameters are each thoroughly documented in the schema (including birth-data field constraints and compact-mode semantics). The description adds no parameter detail, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the specific dasha system (Shatabdika), the level (Pratyantardasha), and adds the cascade shape (MD → AD → 7 PDs), so an agent knows this returns the third-level breakdown. It does not, however, distinguish this level from the sibling shatabdika_maha/antar/prana/sookshma tools sharing the same schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 naming of alternatives. The agent is left to infer from the level suffix alone which of the five Shatabdika depth tools to call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shatabdika_sookshmaDashas: Shatabdika SookshmadashaCRead-onlyIdempotentInspect
Shatabdika Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shatabdika/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
TDQS
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, covering safety and idempotency. The description adds nothing beyond the name: it does not mention cost (20 credits is listed but that's metadata, not behavioral), expected runtime, auth requirements, or any side effects. No contradiction, but minimal added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (four lines) and front-loads the tool name, but includes bracketed metadata that is redundant with sibling tools. It is concise but lacks substantive content, making it feel under-specified rather than efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of Vedic dasha calculations and the presence of many similar sibling tools, the description is inadequate. It does not explain the cascade levels, what 'sookshma' means in this context, or how it differs from prana/pratyantar/antar levels. An output schema exists, so return values need not be described, but the description still leaves major gaps for correct tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents parameters like date, time, latitude, longitude, timezone, and the targetDate/targetTime extension. The description provides no parameter information; baseline 3 is appropriate when schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the tool's function ('Shatabdika Sookshmadasha: 4-level cascade'), which conveys that it computes the sookshma (4th) level of the Shatabdika dasha system. However, it does not differentiate from siblings like astroway_vedic_dashas_shatabdika_prana or astroway_vedic_dashas_shatabdika_pratyantar, which are also sub-levels of the same system. A user must already know the hierarchy to pick the right one.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus its many siblings (other dasha systems or other levels of the same system). The only contextual hint is '4-level cascade', which lightly implies it's the deepest level but doesn't state exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shodashottari_antarDashas: Shodashottari AntardashaBRead-onlyIdempotentInspect
Shodashottari Antardasha: 8 sub-periods of the running MD at targetDate. Recursive proportional split (parent_years × sub_planet_period / 116).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shodashottari/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the full safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description still adds real behavioral content beyond them: the returned count (8 sub-periods), the recursive proportional split formula (parent_years × sub_planet_period / 116), and the billing tier (20 credits, Tier 2). It does not disclose failure modes, such as what happens when targetDate falls outside the running MD.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool's identity and behavior in two compact sentences, with endpoint/group/cost metadata clearly bracketed below. No filler. The formula parenthetical is terse but functional rather than verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the nested input schema is richly documented, so return values and parameters are covered elsewhere. What is missing is the disambiguation context an agent needs to pick this tool over its numerous dasha siblings; for a leaf computation tool it is adequate but not self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested body schema already documents every field in detail, so the baseline is 3. The description only lightly reinforces `targetDate` as the anchor for the running MD and adds nothing about `fields` or `precision` beyond what the schema states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific resource (Shodashottari Antardasha) and scopes it concretely: '8 sub-periods of the running MD at targetDate.' An agent knows it returns a computed period set, not a chart or a lookup. However, it never distinguishes itself from the near-identical siblings (pratyantar, prana, sookshma, maha), so the agent must supply the domain knowledge of what an 'antar' level is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternatives statement. In a family of 60+ dashas tools split by both system (ashtottari, chara, vimshottari, yogini...) and depth (maha/antar/pratyantar/prana/sookshma), the absence of any routing guidance is a real gap. The agent has to infer selection purely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shodashottari_mahaDashas: Shodashottari MahadashaARead-onlyIdempotentInspect
Shodashottari Dasha: 116-year nakshatra dasha cycle (BPHS Adhyaya 46 group). 8 planets (Rahu excluded, Ketu included), seed nakshatra = Pushya (8). Sequence: Sun(11)→Mars(12)→Jupiter(13)→Saturn(14)→Ketu(15)→Moon(16)→Mercury(17)→Venus(18). Distribution: 3 planets get 4 nakshatras, 5 get 3. Per AmatyaKaraka tradition: applicable when lagna in Chandra hora during Krishna paksha OR Surya hora during Shukla paksha (informational; dasha is computed regardless). Algorithm port of PyJHora shodasottari.py.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shodashottari/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, and the description adds real context beyond them: the 20-credit Tier 2 cost, the deterministic algorithm provenance (PyJHora shodasottari.py port), and the caveat that the applicability condition does not gate computation. This is notably richer than typical sibling stubs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose (cycle length, planet set, seed nakshatra) before finer structural detail, and every sentence carries technical content. The parenthetical citations (BPHS Adhyaya 46) and algorithm-source note are dense but not wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a rich input schema and an existing output schema, the description covers the domain semantics (structure, sequence, distribution, applicability) thoroughly enough to call the tool correctly. The one gap is that it doesn't orient the agent within the maha/antar/pratyantar/prana/sookshma family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the nested body schema richly documents date/time/latitude/longitude/timezone/ayanamsa/houseSystem along with the fields and precision compact-mode params. The description adds no parameter detail, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource (Shodashottari Dasha computation) and defines the system precisely: 116-year cycle, planet set, seed nakshatra, and sequence. However, it never explicitly distinguishes the Maha level from the sibling shodashottari_antar/pratyantar/prana/sookshma tools, leaving the level differentiation to the tool 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a domain-level applicability rule (AmatyaKaraka tradition: lagna in Chandra hora during Krishna paksha, or Surya hora during Shukla paksha) but labels it 'informational' since the dasha is computed regardless. No explicit guidance on when to prefer this over other dasha systems or the sub-period siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shodashottari_pranaDashas: Shodashottari PranadashaCRead-onlyIdempotentInspect
Shodashottari Pranadasha: 5-level cascade (finest grain).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shodashottari/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
TDQS
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 two pieces of context beyond that — the 20-credit Tier 2 cost and the output granularity ('5-level cascade, finest grain') — which is useful but thin, with no note on volume/size of the cascade output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is very short and front-loads the system and level name before the bracketed metadata. Nothing is padded, though the bracket block is largely structured metadata (endpoint, cost) that could be considered filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and 100% schema coverage, the return-value burden is off the description's shoulders. Still, for a specialized Vedic dasha tool with body target-date fields, it omits what a '5-level cascade' actually contains and when the targetDate parameters matter, so it is only adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including a detailed nested body description and clear field/precision explanations, so the schema carries the parameter burden. The description itself adds nothing about parameters (e.g. how targetDate/targetTime interact with the birth date), so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific dasha system (Shodashottari) and level (Pranadasha) and hints at depth with '5-level cascade (finest grain)', so the resource is identifiable. However, it uses no verb at all — it never says the tool computes/returns dasha periods — and it does not explicitly distinguish itself from the many sibling levels (maha/antar/pratyantar/sookshma), leaving the agent to infer the ordering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives, despite dozens of closely related dasha tools in the sibling list. The only routing help is implicit ('finest grain'), which is weak given how easily this could be confused with the sookshma or pratyantar variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shodashottari_pratyantarDashas: Shodashottari PratyantardashaBRead-onlyIdempotentInspect
Shodashottari Pratyantardasha: 3-level cascade (MD → AD → 8 PDs).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shodashottari/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| moonSiderealLongitude | No |
TDQS
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 fully covered. The description adds the cost tier (20 credits, Tier 2) and the endpoint, which are genuinely useful beyond the annotations, but it says nothing about output shape, computation limits, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely tight: one identifying line plus structured [Group]/[Endpoint]/[Cost] tags, with the core concept front-loaded. Nothing is wasted, though a single clause on scope (level depth vs. sibling tools) would have cost nothing and added clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 plus the 100%-covered schema carry most of the burden. What remains missing is routing guidance among the ~45 dasha-family siblings, which is the main decision an agent faces with this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including a rich nested description of the birth-data body, ayanamsa handling, timezone semantics and compact-mode fields/precision. The description adds no parameter meaning of its own, so the baseline of 3 for a fully documented schema is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific dasha system (Shodashottari) and, via the parenthetical '3-level cascade (MD → AD → 8 PDs)', makes the depth of calculation concrete. That implicitly separates it from the maha/antar/prana/sookshma siblings, but no sibling is named outright, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no prerequisite (e.g. requires birth data), and no pointer to the adjacent maha/antar/prana/sookshma tools for other dasha depths. The agent must infer applicability purely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shodashottari_sookshmaDashas: Shodashottari SookshmadashaCRead-onlyIdempotentInspect
Shodashottari Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shodashottari/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a read-only, idempotent, non-destructive, closed-world call, so the safety profile is covered. The description does add genuinely useful operational context the annotations lack: the endpoint and the cost (20 credits, Tier 2). It still says nothing about what the cascade contains or any limits, so it is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content is front-loaded and free of filler, and the metadata block is scannable. But it is under-specified rather than truly concise: three short lines carry only a name fragment, an endpoint, and a price, with the substantive explanation of the operation absent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 plus the rich nested schema cover inputs and safety. The remaining gap is any statement of what the '4-level cascade' computation actually yields or how it differs from the sibling levels, leaving the definition minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the nested birth-data schema is extensively documented (timezone handling, houseSystem letters, fields/precision compact mode). The description adds no parameter meaning of its own, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (Shodashottari Sookshmadasha) and adds the fragment '4-level cascade,' which hints at the depth of sub-division relative to siblings like maha/antar/pratyantar. However, it does not state a verb or explain what is computed, and it largely echoes the title. It is enough to guess the domain but not to confidently distinguish it from its sibling dasha-level tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus the other ~60 dasha and Vedic siblings (e.g. shodashottari_pratyantar or vimshottari_sookshma). No prerequisites, no exclusions, no alternatives are named. The agent is left to infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shoola_antarDashas: Shoola AntardashaBRead-onlyIdempotentInspect
Shoola Antardasha: sub-periods of running MD at targetDate per chosen antardasaSeedOption.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shoola/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No | |
| currentMaha | No |
TDQS
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 fully covered by structured data. The description adds genuinely useful non-annotation context: the endpoint and the 20-credit Tier 2 cost. It does not, however, explain the meaning of antardasaSeedOption values 1/2/3, which is real behavioral information the agent needs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence carries the payload, followed by clearly bracketed metadata lines (group, endpoint, cost). Nothing is padded. It is slightly too terse for a tool with a cryptic seeded parameter, but structurally it is clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and annotations cover safety, so the return format need not be described. What is missing is domain context: what 'running MD' means operationally, how targetDate/targetTime interact with the natal data, and what the antardasaSeedOption constants select. For a niche dasha tool with a non-obvious seed parameter, the description is adequate but leaves a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is reported at 100%, and the nested body description is unusually thorough (rejected short forms, timezone handling, houseSystem letters). Against that baseline a 3 is correct: the description names targetDate and antardasaSeedOption but adds no semantics beyond what the schema already carries, and the seed option's three constants remain unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb-and-resource: it returns the antardasha sub-periods of the running mahadasha at targetDate. This is far more informative than a tautology, and an agent familiar with the dasha hierarchy can place it. However, it never names or distinguishes itself from its direct siblings (shoola_maha, shoola_pratyantar, shoola_sookshma, shoola_prana), so sibling differentiation is left entirely to the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing to alternatives such as shoola_maha (for the mahadasha level itself) or the deeper pratyantar/sookshma variants. The only usage cue is implicit in the name 'antar'. Cost tier is mentioned but that is 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_vedic_dashas_shoola_mahaDashas: Shoola MahadashaARead-onlyIdempotentInspect
Shoola Dasha: Jaimini "Trident" rasi-dasha. Seed = stronger_rasi(asc, asc+6) by default (houseIndex=1; can be 1..12 to shift the lagna anchor). MD = 12 signs forward, 9 years each. Sub-period antara-seed option=2 by default (stronger_rasi of parent vs parent+6); option 1 = sign of lord(parent), option 3 = sign of lord(stronger). Children: equal 12-fold split, forward from antara seed.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shoola/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No |
TDQS
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 value beyond them by disclosing the credit cost (20 credits, Tier 2) and the default computational branches, which materially affect what comes back. It still says nothing about response size or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the identity of the dasha before the algorithm, and the appended group/endpoint/cost block is a tight metadata footer. The notation (`stronger_rasi(asc, asc+6)`) is dense and never defined, which costs a little readability but not length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 algorithm and defaults are well covered. However the targetDate/targetTime/targetTzOffset inputs are never mentioned in the schema properties or the description, so an agent cannot tell whether they trigger a 'current period at this date' computation or are ignored.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description genuinely adds meaning the schema cannot: the schema only shows `antardasaSeedOption` as const 1/2/3, while the description defines option 1 = sign of lord(parent), option 2 = stronger_rasi of parent vs parent+6, option 3 = sign of lord(stronger). It likewise explains that `houseIndex` shifts the lagna anchor rather than merely ranging 1..12.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and scope: Shoola Dasha as a Jaimini 'Trident' rasi-dasha, and 'MD' plus '12 signs forward, 9 years each' pins it to the mahadasha level. It is clear enough to separate this from the other 50+ dasha tools, though it never explicitly contrasts itself with its own shoola_antar/pratyantar/sookshma siblings or states the output shape in task terms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing to alternatives. The defaults discussed (`houseIndex=1`, `option=2`) are parameter behaviour, not selection criteria, so an agent must infer from the tool name alone whether to call this versus shoola_antar or shoola_pratyantar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shoola_pranaDashas: Shoola PranadashaBRead-onlyIdempotentInspect
Shoola Pranadasha: 5-level cascade (finest grain).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shoola/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No |
TDQS
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 operational context not in the annotations: the HTTP endpoint and the cost (20 credits, Tier 2). It does not explain what a 'cascade' returns or how the five levels nest, which is the main behavioral unknown.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely tight and front-loaded: purpose first, then group, endpoint and cost in bracketed metadata that an agent can parse quickly. It errs toward under-specification rather than verbosity, but nothing present is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. Still, for a 3-parameter paid dasha endpoint inside a family of five near-identical siblings, the description leaves the agent without usage guidance or level-selection logic, which is a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the body/natal-chart object, fields and precision all documented in the schema itself (including the timezone, lat/lon and houseSystem caveats). The description contributes nothing further about parameters, so the baseline 3 for schema-carried semantics is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific dasha system and level ('Shoola Pranadasha') and adds the scope qualifier '5-level cascade (finest grain)', which helps position it against the shoola_maha/antar/pratyantar/sookshma siblings. However, it is a bare noun phrase with no verb, so the agent must infer that it computes/returns periods rather than, say, lists definitions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites (e.g. that birth data with date/time/coordinates is required), and no explicit routing against the four other Shoola levels. 'Finest grain' implies a timing-resolution intent but never states the condition that should select this tool over shoola_sookshma or shoola_maha.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_shoola_pratyantarDashas: Shoola PratyantardashaCRead-onlyIdempotentInspect
Shoola Pratyantardasha: 3-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shoola/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No |
TDQS
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 a genuinely useful behavioral fact not present in annotations: cost of 20 credits (Tier 2). It does not describe response shape, pagination, or computational limits, but with annotations carrying safety this earns a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short and front-loaded, with no rambling. However, the first line merely repeats the title and the bracketed Group/Endpoint lines are largely redundant with the tool name, so the brevity reflects missing substance rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a domain-specific tool with a dense nested schema (birth data plus target date/time/house/seed options) and numerous near-identical dasha siblings, the description provides no interpretive help at all. An output schema exists, so return values need not be explained, but the absence of any explanation of the dasha level or how to choose it leaves the definition incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself documents body, fields, and precision in detail. The description adds nothing about parameters — no mention of birth data, targetDate, houseIndex, or the antardasaSeedOption seed. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description's core is 'Shoola Pratyantardasha: 3-level cascade', which essentially restates the tool name and title rather than stating what the tool produces. The '3-level cascade' phrase hints at output depth, but it does not explain the level hierarchy in a way that lets an agent distinguish this from siblings such as shoola_maha, shoola_antar, or shoola_prana.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sibling dasha levels (maha/antar/pratyantar/prana/sookshma) or versus other dasha systems (vimshottari, yogini, chara, etc.). The only context is 'Group: Vedic' and the endpoint path, which is routing metadata 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_vedic_dashas_shoola_sookshmaDashas: Shoola SookshmadashaCRead-onlyIdempotentInspect
Shoola Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/shoola/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No |
TDQS
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 real context — endpoint path and the 20-credit Tier 2 cost — which is useful for a metered API call, but it says nothing about output shape or any rate/limit behavior beyond cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and free of padding, but the first line is largely a restatement of the name/title, and the bracketed metadata tags are machine-oriented rather than agent-facing prose. No waste, but also almost no substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given a nested birth-data body, an output schema, and a dense family of near-identical dasha siblings, this description is incomplete: it does not say what a sookshma-level Shoola dasha is, how deep the cascade goes in the response, or when this level is preferred over maha/antar/pratyantar/prana.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including rich notes on timezone, timezoneOffset, coordinates and compact-mode fields/precision, so the schema carries parameter semantics fully. The description adds no parameter information, which is the correct baseline of 3 when the schema already does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description essentially restates the tool name and title ('Shoola Sookshmadasha'), adding only '4-level cascade'. It never states what the tool returns (Shoola dasha periods at the 4th/sookshma level) or how it differs from the sibling Shoola maha/antar/pratyantar/prana tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus the many sibling dasha tools, no prerequisites, and no exclusions. An agent has nothing to route on besides the name itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_sthira_antarDashas: Sthira AntardashaBRead-onlyIdempotentInspect
Sthira Antardasha: equal-split sub-periods of running MD at targetDate.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/sthira/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No | |
| currentMaha | No |
TDQS
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 covered. The description adds one genuine behavioral fact — the sub-periods are an 'equal split' of the running mahadasha (distinctive to Sthira dasha versus proportional systems) — plus the credit cost (20 credits, Tier 2). It says nothing about edge cases such as what happens when targetDate falls outside the running MD, or output shape. Useful but thin 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence, with group/endpoint/cost metadata clearly separated. Nothing is padded. The [Endpoint: POST ...] line adds little for an agent choosing a tool, keeping this just short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover the read-only safety profile. What is missing is domain context: 'MD' is undefined and the five-level dasha nesting (Maha > Antar > Pratyantar > Sookshma > Prana) that distinguishes this tool from its identical-looking siblings is never stated. Adequate for an expert, thin for a general agent navigating this large tool family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the nested body (date, time, latitude, longitude, timezone, ayanamsa, houseSystem, etc.) and the compact-mode fields/precision parameters are all documented in the schema itself. The description only pins down targetDate by name and does not explain targetTime/targetTzOffset or how the target date interacts with the birth data. Baseline 3 applies since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and scope ('Sthira Antardasha: equal-split sub-periods of running MD at targetDate'), which tells the agent this returns the Antar (second) level of the Sthira dasha tree rather than the Maha or Pratyantar levels. The abbreviation 'MD' is left undefined and no sibling is named explicitly, so the differentiation from sthira_maha/sthira_pratyantar relies on the agent parsing the name. Clear but not self-explanatory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no exclusion of alternatives, and no prerequisites. With roughly thirty near-identical dashas siblings in the same namespace (Vimshottari, Yogini, Chara, Shoola, etc., each with maha/antar/pratyantar/sookshma/prana levels), the agent gets no guidance on how to choose this one over the others. The single sentence states content, not usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_sthira_mahaDashas: Sthira MahadashaARead-onlyIdempotentInspect
Sthira Dasha: Jaimini fixed rasi-dasha. Seed = sign of Brahma planet (PyJHora house.brahma: stronger of asc vs 7th → top-2 lords of 6/8/12 from stronger rasi → strongest by 6 Jaimini rasi-rules). MD walks 12 signs forward; per-sign duration 7y movable / 8y fixed / 9y dual. Sub-periods: equal 12-fold split, forward from parent. Year basis 365.256364d (sidereal year, PyJHora canon).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/sthira/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is covered. The description adds real behavioral substance beyond that: the seed derivation (Brahma planet via house.brahma), the per-sign durations (7y movable / 8y fixed / 9y dual), the equal 12-fold sub-split, the 365.256364d sidereal year basis, and the 20-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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single dense, front-loaded paragraph that leads with the system identity, then the algorithm, then the metadata block. Every clause carries domain information, though the jargon density (house.brahma, Jaimini rasi-rules) is heavy for a general reader.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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; the description supplies the algorithmic grounding an astrologer would need to interpret the periods. It falls short only on selection guidance relative to the many sibling dasha tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (birth-data block, fields, precision all documented in the schema), so the schema does the heavy lifting and the baseline is 3. The description adds no parameter-level meaning — nothing about which inputs affect the Brahma-planet seed or the targetDate/targetTime fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific system (Sthira Dasha, the Jaimini fixed rasi-dasha) and describes the output as a Mahadasha sequence that 'walks 12 signs forward', which is a concrete verb+resource. It does not, however, explicitly distinguish this tool from its sthira_antar/pratyantar/sookshma siblings — it even mentions sub-periods, which belong to the deeper-level tools, creating slight ambiguity about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this tool over the other dasha systems (vimshottari, chara, yogini, etc.) or over the other Sthira levels. No prerequisites or exclusions are given; the only routing signal is the tool name and the bracketed group/endpoint metadata.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_sthira_pranaDashas: Sthira PranadashaBRead-onlyIdempotentInspect
Sthira Pranadasha: 5-level cascade (finest grain).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/sthira/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No |
TDQS
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 fully covered structurally. The description contributes real additional signal: the endpoint and a concrete cost (20 credits, Tier 2), which matters for an agent budgeting calls. It does not add anything about result shape or latency, but with annotations carrying the behavioral burden 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact lines, front-loaded with the identity of the dasha and its grain, followed by terse bracketed metadata. Every element earns its place with no prose padding, though the metadata block is more catalog-style than explanatory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 input schema is exhaustive. The gap is routing context: as one of ~60 near-identical dasha tools, the description does not tell an agent how to pick this level over its siblings, leaving completeness at minimum-viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested body schema richly documents date/time/latitude/longitude, ayanamsa, timezone, houseSystem, plus fields/precision. The description adds nothing about parameters, so baseline 3 applies since the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (Sthira Pranadasha) and qualifies it as a '5-level cascade (finest grain)', which distinguishes it from the coarser sthira_maha/antar/pratyantar/sookshma siblings. However, the verb is implicit (compute/list) and it leans on the reader knowing the dasha-level hierarchy rather than spelling out that this returns the finest sub-period subdivision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this level versus the adjacent sthira levels or the many parallel dasha systems (vimshottari, ashtottari, yogini, etc.). The '(finest grain)' hint implies a use case but no explicit when/when-not or alternative is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_sthira_pratyantarDashas: Sthira PratyantardashaCRead-onlyIdempotentInspect
Sthira Pratyantardasha: 3-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/sthira/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No |
TDQS
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 without the description. The description does add cost ('20 credits, Tier 2') and the concrete endpoint, which are genuinely useful and not present in structured fields, but it says nothing about what the cascade returns or any compute/rate behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short lines, front-loaded with the technique name and then metadata. Nothing is padded, and the reader reaches the endpoint and cost immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists and the input schema is rich, but for an agent choosing among dozens of near-identical dasha endpoints the description never explains what a '3-level cascade' produces or why this depth is chosen. The technique-specific context that would justify selecting it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the nested birth-data schema documents date/time/latitude/longitude, timezone handling, houseSystem letters and the ayanamsa enum in detail, so the schema carries the full burden. The description adds no parameter meaning at all, which is the baseline 3 case.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description restates the tool name ('Sthira Pratyantardasha: 3-level cascade') without a specific verb or resource explanation, and gives no way to tell it apart from the sibling levels sthira_maha, sthira_antar, sthira_prana and sthira_sookshma. '3-level cascade' hints at the depth layer but is not defined anywhere.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, what condition selects it over the other Sthira or Vimshottari dasha depths, or what prerequisites it has. The only routing signal is the surrounding '[Group: Vedic]' tag, which is taxonomy, not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_sthira_sookshmaDashas: Sthira SookshmadashaCRead-onlyIdempotentInspect
Sthira Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/sthira/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| lagna | No | |
| level | No | |
| system | No | |
| periods | No | |
| ayanamsa | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world behavior, so the safety profile is covered. The description adds two genuinely useful pieces beyond that: the credit cost (20, Tier 2) and the backing endpoint. It still says nothing about compute weight or what the cascade returns, but with rich annotations and an output schema the bar is lower.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short lines, front-loaded with the purpose, with no filler sentences. The bracket lines are terse and scannable, though they are largely boilerplate rather than substance, which keeps this just short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations, a full input schema and an output schema mean return values and safety need not be explained, and cost/endpoint are covered. What is missing is the one thing this description uniquely must supply: how Sookshma differs from the other four Sthira levels and from the ~30 sibling dasha tools. Without it, an agent in this namespace cannot select correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 3 top-level parameters (body, fields, precision) carry full schema descriptions, including detailed birth-data rules, the fields dotted-path compact mode and precision rounding. The description adds nothing about parameters, but the baseline is 3 when schema coverage is 100% and the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the dasha system and level and adds that it is a '4-level cascade', which hints at the depth of sub-period breakdown. However, it never explains what Sthira Sookshmadasha means relative to its near-identical siblings (sthira_maha, sthira_antar, sthira_pratyantar, sthira_prana), so an agent cannot distinguish this from four other Sthira tools. Vague rather than misleading.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no prerequisites, and no mention of alternatives such as the coarser Sthira levels. The bracketed lines give group, endpoint and cost, which is operational metadata, not usage guidance. The agent is left to infer selection entirely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_tribhagi_antarDashas: Tribhagi AntardashaARead-onlyIdempotentInspect
Tribhagi Antardasha: 9 sub-periods of the running MD at targetDate. Recursive proportional split (parent_years × sub_planet_period / 40).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/tribhagi/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered and the bar is lower. The description adds the cost (20 credits, Tier 2), the POST endpoint, and the arithmetic used to derive each sub-period — real added context, though the group/endpoint lines are boilerplate. It does not state response volume (9 periods) mapping to output, but an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the tool's identity and scope in one sentence, followed by a compact formula and the standard metadata block. No filler prose; the only mild excess is the metadata block that repeats across the whole tool family.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not explain return values, and the rich body schema covers inputs including timezone and ayanamsa handling. What remains thin is routing: no explicit contrast among the five Tribhagi levels (maha/antar/pratyantar/prana/sookshma) that share nearly identical names in the sibling list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the body (birth data, timezone semantics, house system letters, offsets) is already fully documented in the schema and the nested body description. The description only references `targetDate`, which the schema already defines with its pattern, adding no new syntax or semantics; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: it computes the Tribhagi Antardasha, defined as the 9 sub-periods of the running Mahadasha at targetDate, plus the proportional-split formula. This implicitly separates it from tribhagi_maha (the parent level) and the deeper tribhagi_pratyantar/prana/sookshma levels, but it never names those siblings or the hierarchy explicitly, so an agent must infer the distinctness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the definition — you call it when you want the second-level (antardasha) division of the current Mahadasha at a given target date. There is no explicit statement of when to prefer this over the sibling tribhagi levels or the other dasha systems (vimshottari, yogini, etc.), and no prerequisites beyond the schema-required birth data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_tribhagi_mahaDashas: Tribhagi MahadashaARead-onlyIdempotentInspect
Tribhagi Dasha: 1/3-scale variant of Vimshottari (40-year cycle). Same 9-planet sequence (Ketu→Venus→Sun→Moon→Mars→Rahu→Jupiter→Saturn→Mercury) and same nakshatra-mapping rule, all periods × (1/3): Ketu 7/3, Venus 20/3, Sun 2, Moon 10/3, etc. Useful when finer-grain timing is needed within a Vimshottari-equivalent span. Returns the running cycle of 9 mahadashas from the chart's initial-balance-adjusted birth time.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/tribhagi/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| moonSiderealLongitude | No |
TDQS
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 real behavioral value beyond that: it says what is returned (the running cycle of 9 mahadashas), that timing is anchored to the initial-balance-adjusted birth time, and the 20-credit Tier 2 cost. Rate limits and pagination behavior are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the definition, then the calculation rule, then the use case, then the return shape. The period list ("Ketu 7/3, Venus 20/3, Sun 2, Moon 10/3, etc.") is informative but trails into an incomplete enumeration that a table or single multiplier statement would have covered more cleanly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 prose explanation, and the description still adds the semantic anchor (initial-balance-adjusted birth time). The only real gap is the absence of any hint that full birth data (date, time, coordinates, timezone) is required, though the phrase "chart's... birth time" implies it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the nested birth-data object, timezone/ayanamsa rules, and compact-mode fields and precision all documented in the schema itself. The description contributes nothing about parameters, so the baseline 3 applies rather than a penalty or a bonus.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb/resource (returns the mahadasha cycle) and pins the variant precisely: a 1/3-scale Vimshottari with the same 9-planet sequence and nakshatra rule, distinguishing it from astroway_vedic_dashas_vimshottari_maha without naming it. The 40-year cycle and the explicit period arithmetic make the tool's identity unmistakable among the many dasha siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear positive condition: "Useful when finer-grain timing is needed within a Vimshottari-equivalent span." It does not state when NOT to use it or point at the alternative sibling (e.g. standard Vimshottari for conventional periods, or tribhagi_antar for sub-levels), so an agent must infer the routing itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_tribhagi_pranaDashas: Tribhagi PranadashaCRead-onlyIdempotentInspect
Tribhagi Pranadasha: 5-level cascade (finest grain).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/tribhagi/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world behavior, so the safety profile is covered. The description usefully adds cost (20 credits, Tier 2) and the endpoint path, but says nothing about the operation's output shape or timing 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely compact and front-loaded: one identifying line followed by three bracketed metadata tags. Nothing is wasted, though the bracket tags read as mechanical metadata rather than guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 input schema is rich. Still, for a dasha endpoint sitting among five identically named tribhagi levels, the description does not clearly establish where 'prana' sits relative to sookshma/pratyantar, leaving selection partly to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — every parameter (body, fields, precision) is documented in the schema itself, including birth-data constraints and compact mode. The description adds no parameter meaning on top of that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names the specific dasha system and level (Tribhagi Pranadasha) and adds that it is the '5-level cascade (finest grain)', which hints at its place among the tribhagi siblings. However there is no verb and no explicit statement of what is computed or returned, so it largely restates the title plus a level qualifier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 required birth data, and no routing to alternatives such as tribhagi_sookshma or tribhagi_pratyantar. The parenthetical 'finest grain' only weakly implies you pick this for maximum detail.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_tribhagi_pratyantarDashas: Tribhagi PratyantardashaARead-onlyIdempotentInspect
Tribhagi Pratyantardasha: 3-level cascade (MD → AD → 9 PDs).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/tribhagi/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds two genuinely useful operational facts beyond that: the endpoint (POST /v1/vedic/dashas/tribhagi/pratyantar) and the cost (20 credits, Tier 2), which agents need for budgeting. It stops short of explaining what the cascade output contains, but the output schema handles that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One content sentence plus three bracketed metadata lines; the dasha identity is front-loaded and nothing is padded. The '(MD → AD → 9 PDs)' fragment is terse to the point of being cryptic, which slightly undercuts the otherwise efficient structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full input schema, an output schema, and annotations covering the safety profile, an agent has nearly everything needed to invoke this correctly; the credit cost even closes the budgeting gap. The only real hole is disambiguation from the near-identical tribhagi_antar/prana/sookshma siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — the body, timezone/timezoneOffset, ayanamsa, houseSystem, fields and precision are all thoroughly documented in the schema itself, including rejection rules and defaults. The description adds no parameter meaning at all, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific dasha system (Tribhagi) and a specific depth level (Pratyantardasha), and the '3-level cascade (MD → AD → 9 PDs)' phrasing hints at where it sits in the hierarchy. However, it never contrasts itself with the crowded sibling set — tribhagi_antar (shallow), tribhagi_prana/sookshma (deeper), or the vimshottari/yogini pratyantar tools — so the agent must infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (birth data is required but that is only implied by the schema), and no routing to alternatives such as tribhagi_antar or tribhagi_prana when a different depth is wanted. The group and endpoint metadata are taxonomy, 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_vedic_dashas_tribhagi_sookshmaDashas: Tribhagi SookshmadashaCRead-onlyIdempotentInspect
Tribhagi Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/tribhagi/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
TDQS
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 adds genuinely new behavioral information in the form of cost (20 credits, Tier 2) and the endpoint, which is useful for call planning, but it says nothing about what the 4-level cascade returns or how large the payload is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and the metadata is cleanly bracketed, so there is no filler, but it is under-specified rather than truly concise: the single content clause ("4-level cascade") is not enough to orient the agent. Brevity here reflects missing content, not economy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 rich body schema covers inputs, leaving the definition only marginally incomplete. However, for a specialised dasha computation sitting among ~140 astrology siblings, the failure to state what distinguishes sookshma from the other Tribhagi levels 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the body schema is unusually thorough (rejecting short forms, timezone/timezoneOffset precedence, houseSystem letter semantics), so the structured fields carry the full parameter burden. The description adds nothing about body, fields, or precision, which is the baseline-3 outcome when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The body is essentially the title restated: "Tribhagi Sookshmadasha" plus a fragment, "4-level cascade," that hints at depth but names no verb and no resource action. It never says what the tool actually produces (a dasha timeline computed from birth data), and it gives no way to tell it apart from astroway_vedic_dashas_tribhagi_maha/antar/pratyantar/prana, which share an almost identical name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 any alternative tool. In a sibling set of five near-identical Tribhagi depth levels plus dozens of other dasha systems, the absence of routing guidance is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_vimshottari_antarDashas: Vimshottari AntardashaARead-onlyIdempotentInspect
Antardasha (sub-period) within the running Mahadasha. Identifies which MD is active at targetDate (default today UTC), then returns the 9 ADs covering that MD. Sub-period of planet Q within MD of P: years = (P.years × Q.years) / 120.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/vimshottari/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuine behavioral context — the default targetDate is today UTC, the result is exactly 9 ADs, and the cost line flags 20 credits (Tier 2) — but says nothing about output shape or temporal bounds.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, purpose first, formula last, followed by compact group/endpoint/cost metadata. Every line carries information; the formula is marginally decorative for tool selection but justifies the AD length semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return formatting need not be explained, and the input schema is unusually rich. The description supplies the one thing the schema omits (targetDate default) and the computation semantics, leaving only sibling routing as a gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the birth-data sub-schema is exhaustively documented, so the baseline is 3. The description earns an extra point by supplying the targetDate default ('today UTC'), which the schema itself does not declare.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific, well-defined output: it identifies the active Mahadasha at targetDate and returns the 9 Antardashas covering it, plus the AD-length formula. The term 'Antardasha (sub-period)' is defined inline, which separates it from the maha/pratyantar/prana/sookshma siblings by level. It does not, however, name any sibling explicitly for contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the period hierarchy (you want the second-level breakdown inside the running MD) and the description clarifies the default target date, but it never states when to choose this over vimshottari_maha, vimshottari_pratyantar, or the parallel Ashtottari/Yogini/Chara families.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_vimshottari_mahaDashas: Vimshottari MahadashaARead-onlyIdempotentInspect
Canonical Vimshottari Mahadasha sequence: 9 planets (Ketu/Venus/Sun/Moon/Mars/Rahu/Jupiter/Saturn/Mercury), 120-year total cycle, starts from the lord of Moon's nakshatra at birth. First period is truncated by elapsed fraction within Moon's nakshatra.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/vimshottari/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a read-only, idempotent, non-destructive call, so the safety profile is covered. The description adds genuine domain context the annotations cannot: the fixed 9-lord ordering, the 120-year cycle length, the nakshatra-lord starting rule, and the truncation of the first period. The stated 20-credit (Tier 2) cost is also operationally useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences front-load the definition, followed by compact group/endpoint/cost metadata. Little waste, though the planetary list and the truncation rule could be trimmed without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema covers return values and the schema covers all parameters, so the description only needs to orient the agent. It does so adequately for the computational definition, but is silent on the one thing a sibling-heavy namespace demands: which dasha depth to request and why.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the nested birth-data object plus the fields/precision compact-mode parameters are thoroughly documented in the schema itself. The description adds no parameter-level meaning (e.g. how ayanamsa or houseSystem interact with dasha computation), so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States precisely what is computed: the top-level Vimshottari Mahadasha sequence, with its 9 lords, 120-year cycle, starting rule and truncation of the first period. It never names its closest siblings (astroway_vedic_dashas_vimshottari_antar/pratyantar/prana/sookshma), so an agent must infer that this is the major-period level rather than a sub-period level from the word 'Mahadasha' alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites (birth date/time/coordinates are required but never mentioned), and no routing to the antar/pratyantar/prana/sookshma siblings that compute deeper levels of the same system. The agent gets domain vocabulary but no decision guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_vimshottari_pranaDashas: Vimshottari PranadashaBRead-onlyIdempotentInspect
Pranadasha (5th-level Dasha, the finest grain). 5-level cascade. Each Prana sub-period is typically a few hours to a few days.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/vimshottari/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No |
TDQS
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 new behavior: the cost (20 credits, Tier 2), the group, and the HTTP endpoint. It still does not disclose auth requirements, rate limits, or the cost of failure, so it is useful but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the most distinguishing fact (5th-level, finest grain), followed by compact bracketed metadata. No sentence is wasted, though the '[Group/Endpoint/Cost]' tags are boilerplate rather than explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 schema is thorough on inputs. What is missing for a 3-parameter analytical endpoint in a family of ~60 near-identical dasha siblings is any routing context (when to pick prana over sookshma or pratyantar) and any hint that birth data plus an optional target date/time drive the calculation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the birth-data schema plus its embedded description already document date/time/latitude/longitude, timezone semantics, houseSystem, and the compact-mode fields/precision parameters. The tool description adds nothing beyond that, which is the correct baseline of 3 when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific technique (Vimshottari Pranadasha), places it precisely in the dasha hierarchy ('5th-level Dasha, the finest grain', '5-level cascade'), and states the resulting period size. That differentiates it from its many vimshottari siblings (maha/antar/pratyantar/sookshma). It never states an explicit verb or that it computes the dasha from birth data, so it stops 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.
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 sibling is named as an alternative. 'Finest grain' plus the few-hours-to-few-days duration implicitly signals that this is for very narrow timing questions, but the agent must infer that and infer that coarser levels exist as options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_vimshottari_pratyantarDashas: Vimshottari PratyantardashaARead-onlyIdempotentInspect
Pratyantardasha (sub-sub-period) within the running Antardasha. 3-level cascade: find current MD → AD → return 9 PDs of that AD.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/vimshottari/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the bar is lower. The description still adds real value: it discloses the computed behavior (three-level cascade) and the cardinality of the result (9 PDs of the AD), plus cost (20 credits, Tier 2), none of which is in the annotations or schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences that state definition and computation, followed by compact metadata (group, endpoint, cost). No filler; the hierarchy explanation earns its place. Very slightly terse on routing, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return-shape detail is not required, and the description still summarizes the result (9 PDs) and the computation path. Combined with 100%-covered input schema and full annotations, an agent has everything needed to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the body schema carries extensive field-level documentation (birth data, timezone handling, ayanamsa, compact-mode fields/precision). The description adds nothing about the three parameters, which is acceptable when the schema does the work. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ('Pratyantardasha (sub-sub-period)') and pins its position in the dasha hierarchy with the cascade 'find current MD → AD → return 9 PDs of that AD'. That level specification distinguishes it from the vimshottari_antar, prana and sookshma siblings. It stops short of naming any sibling explicitly, so it lands just below the top band.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'3-level cascade: find current MD → AD → return 9 PDs of that AD' conveys implied context (you want the PD sub-level within an already-running AD), but never states when to pick this over vimshottari_antar or vimshottari_prana, nor any prerequisite about knowing the current AD. Usage is inferable 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_vedic_dashas_vimshottari_sookshmaDashas: Vimshottari SookshmadashaBRead-onlyIdempotentInspect
Sookshma (4th-level Dasha) within the running Pratyantardasha. 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/vimshottari/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No |
TDQS
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 adds real value beyond annotations by disclosing the endpoint and a concrete cost (20 credits, Tier 2), which an agent needs for budgeting. It does not describe the cascade output structure, but the output schema covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely short and front-loaded: the core meaning comes first, then bracketed metadata lines. Every sentence earns its place, though the metadata lines are boilerplate rather than explanatory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 input schema is thorough. However, for a specialist Vedic computation in a large sibling family, the description gives no indication of what the Sookshma cascade produces or how it relates to the other dasha levels, leaving an agent to infer from the title alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents body, fields, and precision with rich prose (timezone handling, houseSystem letters, compact mode). The description adds nothing about parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb-resource: computing the Sookshma (4th-level) Dasha within the running Pratyantardasha, plus '4-level cascade'. This distinguishes it from the maha/antar/pratyantar/prana siblings by level. It doesn't name an alternative sibling tool explicitly, but the level naming is unambiguous for an agent scanning the dasha family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no exclusions, and no reference to alternative dasha-level tools. The agent must infer from the word 'Sookshma' and the tool name that this is the 4th-level drill-down. Implied usage only, 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_vedic_dashas_yogini_antarDashas: Yogini AntardashaARead-onlyIdempotentInspect
Yogini Antardasha: 8 sub-periods of the running MD at targetDate (default today UTC). Sub-period of yogini Q within MD of P: years = (P.years × Q.years) / 36.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/yogini/antar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a read-only, idempotent, non-destructive, closed-world call, so the safety burden is largely covered. The description adds non-obvious behavior beyond that: the default of 'today UTC' for targetDate and the cost (20 credits, Tier 2), which help an agent plan calls. It does not discuss response size or limits, but with an output schema present that is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and dense with meaning; the formula earns its place by disambiguating what a 'sub-period' means here. The bracketed group/endpoint/cost lines add noise but carry operationally useful tier pricing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With annotations covering safety, a rich input schema describing all nested birth-data fields, and an output schema handling the return shape, the description only needs to establish scope and defaults — which it does, plus cost tier. Minor gap: no indication of the level relative to sibling dasha depths.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents the parameters in detail; baseline is 3. The description only adds the targetDate default (today UTC), which is genuinely extra information, but the P.years/Q.years references in the formula are dasha concepts, not parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific resource (Yogini Antardasha) and scope (8 sub-periods of the running MD at targetDate), and even gives the computation formula, so an agent knows this returns the second dasha level. It does not explicitly contrast itself with the sibling levels yogini_pratyantar/prana/sookshma, leaving the hierarchy depth to be inferred from the names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The formula and 'sub-periods of the running MD' imply when the tool applies, and the default targetDate is stated, but there is no explicit guidance on when to pick this depth versus the maha/pratyantar/prana siblings, and no stated prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_yogini_mahaDashas: Yogini MahadashaARead-onlyIdempotentInspect
36-year Yogini Dasha. 8 yoginis (Mangala/Pingala/Dhanya/Bhramari/Bhadrika/Ulka/Siddha/Sankata) ruled by Moon/Sun/Jupiter/Mars/Mercury/Saturn/Venus/Rahu with periods 1/2/3/4/5/6/7/8 (total 36). Starts from yogini-of-Moon-nakshatra at birth, first MD truncated by elapsed nakshatra fraction.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/yogini/maha] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive and closed-world, so the safety profile is covered. The description adds real context beyond that: the computational rule (starts from the yogini of the Moon's nakshatra at birth, first MD truncated by elapsed nakshatra fraction) and the cost tier (20 credits, Tier 2). It does not describe the shape or length of the returned dasha list, though that is partly the output schema's job.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core definition (36-year Yogini Dasha) before the supporting detail, and the two prose sentences each carry information. The yogini-name enumeration is dense but is genuinely needed to interpret the output; the bracketed group/endpoint/cost tags are compact metadata rather than filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich input schema and an output schema present, the description only needs to establish what is being computed and how — which it does thoroughly, including the truncation rule for the first period. The one notable gap is level disambiguation within the large dasha family, which the agent must infer from the 'Maha' token alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including a very detailed body/birth-data description, so the schema already carries all parameter meaning. The description adds nothing about parameters, which is acceptable but earns only the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific artifact computed (the 36-year Yogini Mahadasha) and even enumerates the eight yoginis, their ruling planets, and their period lengths, so an agent knows exactly what it gets back. It does not, however, distinguish this from the sibling levels astroway_vedic_dashas_yogini_antar/pratyantar/prana/sookshma, which share the same system name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Given that five yogini-dasha siblings exist (maha/antar/pratyantar/prana/sookshma) plus several other dasha systems (vimshottari, ashtottari, chara), the description never says why an agent should pick the Maha (top) level instead of a sub-period level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_yogini_pranaDashas: Yogini PranadashaCRead-onlyIdempotentInspect
Yogini Pranadasha: 5-level cascade (finest grain).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/yogini/prana] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentSookshma | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
TDQS
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 fully covered. The description adds genuinely useful operational context the annotations do not carry — the endpoint and the 20-credit (Tier 2) cost — but says nothing about the shape or volume of the 5-level cascade output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely compact: one content sentence plus bracketed metadata for group, endpoint and cost. Front-loaded and free of filler, though the single content sentence is arguably too terse for the domain it describes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 nested input schema is richly documented. What is missing is the domain context an agent needs to pick this tool over its many siblings: what distinguishes prana from sookshma, and what the cascade actually returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so body/fields/precision are already documented in detail (including timezone, ayanamsa and houseSystem caveats). The description adds no parameter-level 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies the specific resource (Yogini Pranadasha, the deepest level of the Yogini dasha cycle) via the name and '5-level cascade (finest grain)'. However, 'finest grain' is jargon that only helps an agent who already knows the maha > antar > pratyantar > sookshma > prana hierarchy; it does not explicitly distinguish this from astroway_vedic_dashas_yogini_sookshma or the other 60+ dasha siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 statement of what a prana-level dasha is for versus the coarser sookshma/pratyantar levels, no prerequisites, and no alternatives named despite a very dense sibling set of dasha tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_yogini_pratyantarDashas: Yogini PratyantardashaBRead-onlyIdempotentInspect
Yogini Pratyantardasha: 3-level cascade (MD → AD → 8 PDs).
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/yogini/pratyantar] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish readOnly, idempotent and non-destructive behavior, so safety and side-effect questions are answered structurally. The description adds cost (20 credits, Tier 2), endpoint and group, which is useful operational context; it says nothing about whether targetDate/targetTzOffset are needed for finer PD resolution or how the cascade is returned. A 3 reflects a modest but real addition on top of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence of substance followed by three bracketed metadata lines — front-loaded, no filler, nothing redundant. The bracketed format is slightly mechanical but each line (group, endpoint, cost) carries unique operational value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 parameter schema is exhaustive. But for a large family of near-identical dasha tools, the description is thin on the one thing that matters — level selection relative to yogini_maha/antar/prana/sookshma — and never mentions the optional targetDate/targetTzOffset fields present in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the nested birth-data schema is extremely detailed (rejected short forms, timezone semantics, house letter case-sensitivity), so the schema carries the parameter burden. The description adds nothing about body, fields or precision, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific calculation ('Yogini Pratyantardasha') and clarifies its position in the hierarchy with the '3-level cascade (MD → AD → 8 PDs)' notation, which is real information not obvious from the name alone. It does not, however, explicitly distinguish itself from the closely named siblings yogini_maha, yogini_antar, yogini_prana and yogini_sookshma, leaving an agent to infer the level from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 four sibling Yogini levels (maha/antar/prana/sookshma) or the parallel pratyantar tools in other dasha systems. The group/endpoint/cost lines are metadata, not usage guidance, so the agent gets no help choosing this tool over its near-identical siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_dashas_yogini_sookshmaDashas: Yogini SookshmadashaCRead-onlyIdempotentInspect
Yogini Sookshmadasha: 4-level cascade.
[Group: Vedic] [Endpoint: POST /v1/vedic/dashas/yogini/sookshma] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| level | No | |
| system | No | |
| initial | No | |
| periods | No | |
| ayanamsa | No | |
| nakshatra | No | |
| currentMaha | No | |
| currentAntar | No | |
| currentPratyantar | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, non-destructive, closed-world read, so the safety profile is covered. The description usefully adds the billing profile (20 credits, Tier 2) and the exact endpoint, which are behaviorally relevant, but says nothing about the cascade semantics, computation time, or what the nested dasha levels contain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is very short and front-loads the tool identifier, with cost and endpoint on separate bracketed lines that are easy to scan. No sentence is padded, though the opening phrase duplicates the title rather than adding information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The input schema is rich and an output schema exists, so return values and parameter mechanics need not be explained. What is missing is the domain layer: what a Yogini sookshma period is, how it relates to the coarser Yogini levels, and why an agent would call this one. For a specialized dasha tool in a dense sibling cluster, that gap is significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested body documents date/time/latitude/longitude, timezone handling, ayanamsa, and the compact-mode fields/precision params in detail. The description contributes nothing beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is essentially the tool title restated ("Yogini Sookshmadasha: 4-level cascade") with no verb and no statement of what the tool returns or computes. "4-level cascade" adds a sliver of meaning, but it does not distinguish this tool from the five sibling Yogini levels (maha, antar, pratyantar, prana, sookshma) or from the other dasha systems. An agent reading only this text cannot tell what it produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of alternatives. Given ~10 dasha families and five Yogini depths in the sibling list, the absence of any routing hint (e.g. 'use sookshma for the finest sub-period within a pratyantar') leaves selection to guesswork. The metadata lines give cost/endpoint but no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_kp_fullDoshas: KP full summaryARead-onlyIdempotentInspect
Composite KP dosha summary: manglik + kalasarpa + pitra + kemadruma + Sade-Sati pointer. (Sade Sati requires an explicit targetDate; call /sade-sati separately.)
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/kp/full] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| pitra | No | |
| school | No | |
| manglik | No | |
| kalasarpa | No | |
| kemadruma | No | |
| lagnaSign | No | |
| disclaimer | No | |
| sadeSatiNote | No |
TDQS
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). The description adds operationally relevant context annotations cannot express: the 20-credit Tier 2 cost, the POST endpoint, and the required parameter set — useful for an agent budgeting calls. It says nothing about response shape, but an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded: the composite contents come first, then the Sade-Sati caveat, then compact bracketed metadata (group, endpoint, required, cost). No filler sentences; the metadata block is scannable rather than prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool at 33% schema coverage, the description covers only the required set and cost. With an output schema present it need not explain returns, but it leaves ayanamsa defaults, timezone handling, and the compact-mode parameters undocumented here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description needs to compensate and does not. It merely restates the four required params already declared in the schema's required list, adding no meaning for city, name, fields, precision, houseSystem, zodiacType, or the ayanamsa/ayanamsaId pair.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific composite output — manglik + kalasarpa + pitra + kemadruma + Sade-Sati pointer — which tells the agent exactly which dosha results are bundled and distinguishes it from the sibling single-dosha tools (kp_manglik, kp_kalasarpa, etc.). The exclusion of Sade Sati is stated outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly routes the agent away from this tool for Sade Sati ('requires an explicit targetDate; call /sade-sati separately'), which is a concrete when-not-to-use instruction. It does not explicitly say to prefer this over the individual kp_* dosha calls, but the 'composite/full' framing makes that implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_kp_kalasarpaDoshas: KP KalasarpaBRead-onlyIdempotentInspect
Kalasarpa dosha with KP Rahu sub-lord chain attached.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/kp/kalasarpa] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| partial | No | |
| present | No | |
| subType | No | |
| severity | No | |
| lagnaSign | No | |
| disclaimer | No | |
| kpRahuChain | No | |
| affectedHouses | No | |
| contributingPlanets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive, so the safety profile is covered. The description adds genuinely useful operational facts — the POST endpoint and the 20-credit Tier 2 cost — which an agent needs for budgeting and routing, but says nothing about latency, the output content, or the KP-specific semantics of the sub-lord chain.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line purpose followed by compact bracketed metadata. Every line earns its place; the only weakness is that the metadata blocks replace rather than supplement real semantic content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 required inputs and cost are stated. However, for a 15-parameter Vijay/Vedic calculation with three enums and a small coverage footprint, the description leaves the agent without guidance on the sidereal school, house system, or house/zodiac options that materially change the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description would need to compensate, yet it only restates the four required fields (date, time, latitude, longitude) that the schema already marks required. Eleven optional parameters, including ayanamsa, zodiacType, houseSystem, cosmogram, and timezoneOffset, get no mention here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb-less but resource-specific output: the Kalasarpa dosha computed with the KP Rahu sub-lord chain. That distinguishes it from sibling dosha tools like kp_kemadruma, kp_manglik, and lal_kitab_kalsarpa, though it does not explicitly say 'computes' or name the lineage difference versus parashara_kaal_sarp.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this over kp_full, lal_kitab_kalsarpa, or parashara_kaal_sarp is given. The only context is endpoint/cost metadata, which tells an agent nothing about selection conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_kp_kemadrumaDoshas: KP KemadrumaARead-onlyIdempotentInspect
Kemadruma yoga: no planet (excl. Sun, Rahu, Ketu) in 2nd or 12th from Moon. Moon-isolation flag, emotional/financial volatility indicator. KP Moon sub-lord chain attached.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/kp/kemadruma] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| present | No | |
| moonSign | No | |
| lagnaSign | No | |
| disclaimer | No | |
| kpMoonChain | No |
TDQS
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 bar is lower. The description adds genuinely useful operational context beyond that: the cost (20 credits, Tier 2), the endpoint, and the fact that a KP Moon sub-lord chain is attached to the result. It does not describe error or edge-case behavior, hence not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the yoga's defining condition, followed by compact bracketed metadata (group, endpoint, required, cost). Every element carries information and there is no filler, though the [Required] line duplicates the schema's required array.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. For a single-dosha detector the description supplies the condition, the flag meaning, the cost and the endpoint, which is enough for correct invocation; the main gap is that no alternative/aggregate sibling is named.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (low), so the description is expected to compensate, but it does no more than restate the four required parameters already declared in the schema. It adds no meaning for ayanamsa, zodiacType, houseSystem, timezone, precision, fields, or the remaining optional inputs, leaving half the surface undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise computed condition (no planet excluding Sun/Rahu/Ketu in 2nd or 12th from Moon) and labels the output as a Moon-isolation flag with an emotional/financial volatility indicator. That is a specific verb+resource that an agent can match to the request 'check Kemadruma'. It does not explicitly distinguish itself from the aggregate sibling astroway_vedic_doshas_kp_full, which is the only reason it is not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the yoga definition rather than stated: an agent can infer it should call this when a user asks specifically about Kemadruma, but there is no explicit 'use X instead of Y' or exclusion against the kp_full aggregate sibling. No prerequisites or when-not conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_kp_manglikDoshas: KP ManglikBRead-onlyIdempotentInspect
Manglik dosha with KP sub-lord precision attached. Sub-lord chain of Mars added for transit-trigger analysis.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/kp/manglik] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| present | No | |
| severity | No | |
| kpSubLord | No | |
| lagnaSign | No | |
| disclaimer | No | |
| affectedHouses | No | |
| contributingPlanets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description adds genuinely useful operational context the annotations do not carry: the POST endpoint, the cost (20 credits, Tier 2), and the required inputs. It says nothing about what the response contains, though the output schema covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The substantive sentence is front-loaded and the bracketed metadata block is compact and scannable. Every line carries information; nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need not be explained. However, for a 15-parameter tool with 33% schema coverage and a crowded Manglik/dosha sibling set, the description omits how this KP variant differs in practice from the other Manglik tools and provides no parameter guidance beyond the required list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description should compensate, and it does not. It merely repeats the four required parameters (date, time, latitude, longitude) that are already enumerated in the schema's required array, adding no format, default, or interaction detail for the 11 other parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific artifact (Manglik dosha) and its differentiator (KP sub-lord precision, Mars sub-lord chain), which distinguishes it from siblings like astroway_vedic_doshas_parashara_mangal and astroway_vedic_compatibility_manglik_check. It lacks an explicit verb (it never says 'computes' or 'returns'), but the resource and scope are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for transit-trigger analysis' hints at one use case, but there is no when-to-use guidance, no exclusions, and no routing to the many competing Manglik tools (parashara, lal_kitab, compatibility_manglik_check). An agent must guess which Manglik variant fits its request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_kp_pitraDoshas: KP PitraBRead-onlyIdempotentInspect
Pitra dosha (Sun affliction) with KP Sun sub-lord chain.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/kp/pitra] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| present | No | |
| severity | No | |
| lagnaSign | No | |
| disclaimer | No | |
| kpSunChain | No | |
| affectedHouses | No | |
| contributingPlanets | No |
TDQS
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 non-annotation context — endpoint, group, and a 20-credit Tier 2 cost — but says nothing about what the analysis returns or any computational caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One content sentence plus a compact bracketed metadata block, front-loaded with the purpose. Nothing is wasted, though the bracket lines are boilerplate rather than tool-specific insight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/endpoint are supplied. But for a 15-parameter, niche KP endpoint, the description leaves the meaning of the 'KP Sun sub-lord chain' result and its relationship to the other KP dosha endpoints unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate and does not. It merely repeats the four required fields already marked required in the schema and adds no meaning for ayanamsa, houseSystem, zodiacType, cosmogram, city, or name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific subject (Pitra dosha / Sun affliction) and method (KP Sun sub-lord chain), which distinguishes it from the Parashara and Lal Kitab Pitra siblings by school. It does not explicitly name those siblings, so the differentiation is implied by the 'KP' qualifier rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus astroway_vedic_doshas_kp_full or the other KP dosha tools (kalasarpa, kemadruma, manglik, sade_sati), nor versus the Parashara/Lal Kitab Pitra variants. The only routing aid is the required-parameter list, which is 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_vedic_doshas_kp_sade_satiDoshas: KP Sade SatiARead-onlyIdempotentInspect
Sade Sati state at targetDate: Saturn transit through 12th/1st/2nd from natal Moon (7.5y total). Returns the active phase with KP Saturn sub-lord chain.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/kp/sade-sati] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus the target date for the Sade Sati phase. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| phase | No | |
| school | No | |
| present | No | |
| moonSign | No | |
| lagnaSign | No | |
| disclaimer | No | |
| transitDate | No | |
| kpSaturnChain | No | |
| transitSaturnSign | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safe, read-only, idempotent profile, so the description's main added value is the cost disclosure (20 credits, Tier 2) and the endpoint, plus the fact that the result is the active phase plus a KP sub-lord chain. That credit cost is genuinely useful behavioural 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences lead with the core purpose and return, followed by compact metadata tags. Nothing is wasted, though the tag lines are bookkeeping rather than description content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema and complete parameter documentation, the description needs only to orient the agent, which it does. Its only shortfall is not distinguishing this dosha endpoint from the broader kp_full aggregation option.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the body/timezone/houseSystem semantics are thoroughly documented in the schema itself. The description only names `targetDate` in passing without adding format or constraint detail, so the 3 baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific resource (Sade Sati state) and the computation basis (Saturn transit through 12th/1st/2nd from natal Moon over 7.5y), plus what is returned (active phase with KP Saturn sub-lord chain). This clearly separates it from the sibling dosha tools like kp_kalasarpa, kp_kemadruma and kp_manglik, which address entirely different afflictions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used when a Sade Sati assessment for a given date is wanted, and the targetDate framing makes that inference easy, but it never states prerequisites or points to alternatives such as kp_full for a combined dosha read. Usage is implied rather than guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_lal_kitab_fullDoshas: Lal Kitab full summaryBRead-onlyIdempotentInspect
Composite Lal Kitab dosha summary: manglik + kalsarpa + pitra + shrapit + 6 Rin + kismat score.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/lal-kitab/full] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| rins | No | |
| pitra | No | |
| kismat | No | |
| school | No | |
| manglik | No | |
| shrapit | No | |
| kalsarpa | No | |
| lagnaSign | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely non-structural context: a 20-credit Tier 2 cost and the endpoint plus the four required inputs, which helps an agent budget and pre-validate before calling. It does not describe computation behavior, but with an output schema present that is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The composite contents are front-loaded in a single dense sentence, and the bracketed metadata lines are terse and skimmable. Nothing is padded, though the bracketed block is boilerplate rather than prose that adds interpretation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter Vedic computation the description is only minimally sufficient: it fixes the required inputs and cost but leaves the agent guessing about which ayanamsa/house-system defaults are assumed and what the composite output contains. The output schema covers return values, which keeps this from being inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a compensation burden it does not meet. It lists the four required parameters but says nothing about the consequential optional ones (ayanamsa, houseSystem, zodiacType, timezone, fields, precision) that materially change the result.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (Lal Kitab dosha summary) and enumerates its exact contents: manglik, kalsarpa, pitra, shrapit, 6 Rin, and kismat score. This is clearly distinguishable from the single-dosha siblings, but it never explicitly says it is the composite counterpart to astroway_vedic_doshas_lal_kitab_manglik/_kalsarpa/etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given. The presence of five sibling single-dosha Lal Kitab tools makes an obvious routing question ('use this for a complete screen, or a single-dosha tool for one specific dosha?') that the description never answers. Cost and required-parameter notes are metadata, 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_vedic_doshas_lal_kitab_kalsarpaDoshas: Lal Kitab KalsarpaBRead-onlyIdempotentInspect
Kalsarpa dosha (Rahu-Ketu encirclement) with Lal Kitab remedies.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/lal-kitab/kalsarpa] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| remedy | No | |
| present | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely new behavioural context: the endpoint, the four required inputs, and a billing trait (20 credits, Tier 2) that appears nowhere in the schema or annotations. It stops short of noting auth requirements or response shape, but against the annotation baseline this is a solid contribution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose in one line, followed by compact tagged metadata blocks; nothing is padded. The '[Required: ...]' line partially duplicates the schema's required array, but it is cheap and readable rather than verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/required-parameter facts are present. However, for a 15-parameter astrological computation tool with low schema coverage and several near-identical sibling dosha endpoints, the description lacks the differentiation and optional-parameter context an agent needs to call the right tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate, and it does not. It merely restates the four required parameters already enumerated in the schema's `required` array, and says nothing about the eleven optional parameters (ayanamsa, houseSystem, fields, precision, timezone handling) that drive the actual output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific computed resource – Kalsarpa dosha under the Lal Kitab system – and glosses it as 'Rahu-Ketu encirclement', so the agent knows what is being analysed. The 'Lal Kitab' qualifier does separate it from the KP (astroway_vedic_doshas_kp_kalasarpa) and Parashara (astroway_vedic_doshas_parashara_kaal_sarp) variants, but the description never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, and no alternative is named. The agent is left to infer that this is the Lal Kitab flavour versus the KP or Parashara Kalsarpa siblings with near-identical scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_lal_kitab_manglikDoshas: Lal Kitab ManglikARead-onlyIdempotentInspect
Manglik dosha per Lal Kitab: Mars in 1/4/7/8/12 with LK-specific cancellation (Mars in Aries/Scorpio/Gemini cancels).
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/lal-kitab/manglik] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| mars | No | |
| dosha | No | |
| remedy | No | |
| school | No | |
| present | No | |
| lagnaSign | No | |
| disclaimer | No | |
| cancellation | No |
TDQS
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 a genuine behavioral trait beyond them: the cost (20 credits, Tier 2) and the concrete endpoint, which is useful resource-consumption context for an agent budgeting calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the operative rule ('Mars in 1/4/7/8/12 with LK-specific cancellation') and follows with a compact bracketed metadata block. Every element is short and scannable, though the endpoint line is somewhat redundant with the name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return values needn't be explained, and the core dosha rule is given. However, for a 15-parameter astronomy calculation the description omits any guidance on the ayanamsa/timezone defaults that materially affect a Lal Kitab result, leaving gaps an agent cannot resolve from the description alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% and 15 parameters exist, so the description carries a compensation burden it does not meet. It merely restates the four required params (already in the schema's required list) and adds nothing about ayanamsa, houseSystem, timezone, or the compact-mode fields/precision options for a Lal Kitab chart.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb+resource (compute Manglik dosha) scoped to the Lal Kitab school, and even spells out the criterion (Mars in 1/4/7/8/12) and cancellation rule. The 'Lal Kitab' framing cleanly separates it from astroway_vedic_doshas_kp_manglik and astroway_vedic_doshas_parashara_mangal, so an agent can pick it without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied via the school name and the stated rule; there is no explicit 'use this when you want the Lal Kitab interpretation rather than KP/Parashara' and no exclusions. An agent can infer intent but is given no direct routing guidance relative to the several manglik siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_lal_kitab_pitraDoshas: Lal Kitab PitraCRead-onlyIdempotentInspect
Pitri Rin (paternal-debt dosha) per Lal Kitab patterns. Triggers + remedy.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/lal-kitab/pitra] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| remedy | No | |
| school | No | |
| present | No | |
| triggers | No | |
| lagnaSign | No | |
| disclaimer | No |
TDQS
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 genuinely adds non-annotation context: the endpoint, the required inputs and a 20-credit Tier 2 cost, which matters for an agent budgeting calls. It does not describe result depth or failure modes, so it stays at a moderate score.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded two-sentence core followed by a tight bracketed metadata block; nothing is padded. The brevity is appropriate, though the metadata block is doing work the prose should arguably do.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with low schema coverage, the description omits selection guidance against three competing Pitra/Pitru siblings and explains none of the optional parameters. An output schema exists so return values need not be covered, but the input-side and routing gaps leave it under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a compensation burden it does not meet. It merely restates the four required fields already marked required in the schema and adds no semantics for city, name, cosmogram, zodiacType, houseSystem or ayanamsaId.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific dosha (Pitri Rin / paternal-debt) and the interpretive school (Lal Kitab), plus states the deliverable (triggers + remedy). This meaningfully separates it from sibling pitfalls like astroway_vedic_doshas_parashara_pitru and astroway_vedic_doshas_kp_pitra. It lacks an explicit verb ('compute'/'analyse'), so it's clear but marginally less crisp than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, despite a dense sibling set of Pitra/Pitru tools across KP, Parashara and Lal Kitab schools. The only guidance is the required-parameter list and cost, which is operational rather than selection-oriented.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_lal_kitab_rinDoshas: Lal Kitab Rin (6 ancestral debts)ARead-onlyIdempotentInspect
Aggregate of all 6 Rin (Pitri/Stree/Kanya/Atma/Rishi/Daiva) with active count. Same engine as /lal-kitab/debts but framed as dosha.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/lal-kitab/rin] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| rins | No | |
| dosha | No | |
| school | No | |
| lagnaSign | No | |
| disclaimer | No | |
| activeCount | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior, so the safety profile is covered. The description adds genuinely useful non-annotation context: the cost (20 credits, Tier 2) and the equivalence caveat against the debt endpoint. Auth requirements and rate-limit behavior are not addressed, but the cost disclosure is real added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose sentence, then a compact bracketed metadata block for group, endpoint, required params and cost. No filler, and the most decision-relevant facts come first. The endpoint path is slightly redundant but costs little.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return structure need not be explained. Required inputs, cost, engine equivalence and the six debt types are all present, and annotations cover safety. Missing only a note on what the "active count" means or auth/prerequisite conditions, which is minor for a read-only chart tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The [Required: date, time, latitude, longitude] line only restates the schema's required array, adding no new meaning. There are 10 undocumented parameters, but the genuinely tricky ones (timezone, timezoneOffset, fields, precision, ayanamsa) do carry schema descriptions, so the effective gap left to the description is modest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Aggregate") and resource (all 6 Rin ancestral debts), enumerating the six types, and explicitly distinguishes itself from the sibling astroway_vedic_lal_kitab_debts by noting it is the same engine "but framed as dosha." An agent can separate it from the debt tool without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The "same engine as /lal-kitab/debts but framed as dosha" clause gives clear context for choosing between the two near-identical tools, and the required-parameter line signals the inputs needed. It stops short of an explicit when-to-use/when-not rule, but the framing cue is sufficient to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_lal_kitab_shrapitDoshas: Lal Kitab ShrapitCRead-onlyIdempotentInspect
Shrapit dosha (ancestral curse) per LK: Saturn conjunct Rahu/Ketu. Specific remedies provided.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/lal-kitab/shrapit] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| remedy | No | |
| details | No | |
| present | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds useful non-annotation context: the credit cost (20, Tier 2), the endpoint, and that remedies are returned. It does not mention auth needs or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the dosha definition and remedy note, followed by bracketed operational metadata. Efficient and scannable, though the bracketed block is somewhat boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter tool with low schema coverage the description leaves most parameter semantics (ayanamsa, house system, timezone handling, precision) unexplained. It is not sufficient for correct invocation without reading the schema closely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only 33% schema description coverage, the description must carry weight, but it merely restates the four required fields already listed in the schema. It says nothing about the interplay of timezone vs timezoneOffset, ayanamsa selection, or the compact-mode fields parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Shrapit dosha) and even the defining condition (Saturn conjunct Rahu/Ketu), which is unusually concrete. However, it does not explicitly differentiate itself from the many near-identical siblings (lal_kitab_pitra, lal_kitab_rin, parashara_shrapit); the 'per LK' tag is the only routing signal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose this tool over the other Lal Kitab or Parashara dosha tools, and no prerequisites or exclusions. The [Required] and [Cost] lines are operational facts, not usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_parashara_fullDoshas: Parashara full reportARead-onlyIdempotentInspect
Combined Parashara dosha report: runs all 6 detectors (Mangal/Kaal Sarp/Pitru/Shrapit/Grahan/Guru-Chandal).
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/parashara/full] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| pitru | No | |
| grahan | No | |
| mangal | No | |
| school | No | |
| shrapit | No | |
| kaalSarp | No | |
| lagnaSign | No | |
| guruChandal | No |
TDQS
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 structurally. The description adds real but limited behavior context, namely the cost (20 credits, Tier 2) and the aggregation scope; it says nothing about output size, latency, or how the six sub-reports are combined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose sentence is front-loaded and wastes no words; the bracketed metadata block (group, endpoint, required, cost) is compact and scannable. Slightly machine-formatted, but nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the safety annotations cover the mutation profile. However, with 15 parameters at 33% schema coverage and no guidance on combined vs. single-dosha invocation, the definition leaves meaningful gaps for a Tier 2-cost, 15-parameter call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description needs to compensate, yet it merely restates the required set (date, time, latitude, longitude) which the schema's 'required' array already declares. Optional parameters such as city, name, cosmogram and zodiacType carry no meaning in either the description or the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific deliverable (combined Parashara dosha report) and enumerates the six detectors it runs (Mangal/Kaal Sarp/Pitru/Shrapit/Grahan/Guru-Chandal), which map one-to-one onto the sibling tools astroway_vedic_doshas_parashara_*." An agent can tell this aggregates those siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: because it runs 'all 6 detectors', it is the batch alternative to the six single-dosha siblings, but the description never says 'use this instead of calling the six individually' or when a single-dosha call is preferable. No prerequisites or exclusions are given beyond the required-parameter note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_parashara_grahanDoshas: Grahan (eclipse-like)BRead-onlyIdempotentInspect
Grahan Dosha: Sun + Rahu/Ketu or Moon + Rahu/Ketu conjunct (eclipse-mimicking position). Up to 4 sub-patterns possible (Surya-Rahu / Surya-Ketu / Chandra-Rahu / Chandra-Ketu).
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/parashara/grahan] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| present | No | |
| severity | No | |
| lagnaSign | No | |
| affectedHouses | No | |
| contributingPlanets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare this a safe, idempotent, non-destructive read, so the safety profile is covered. The description adds genuinely useful behavior the annotations lack: the credit cost (20 credits, Tier 2) and the endpoint. It does not discuss determinism, rate limits, or what a partial/undefined result means, so it remains a moderate improvement rather than rich disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definitional sentence is front-loaded and dense, and the bracketed metadata is compact and scannable. Nothing is padded, though the metadata block partly duplicates structured fields rather than earning its place as prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 prose, and cost/endpoint/required inputs are present. However, for a 15-parameter tool with low schema coverage, the description omits any guidance on the optional configuration parameters and offers no usage context, leaving it minimally viable rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the description only restates the four required parameters that the schema already marks as required — adding no meaning for date/time formats, timezone behavior, ayanamsa selection, or compact-mode `fields`. With a 15-parameter surface and low coverage, the description fails to compensate for the schema's gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific dosha and spells out the exact astrological configuration that triggers it (Sun/Moon conjunct Rahu/Ketu), plus the four sub-patterns. An agent can tell it apart from the sibling Parashara dosha tools (mangal, pitru, kaal_sarp, guru_chandal). The verb is implicit ('analyze/detect') 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no mention of alternatives among the many Parashara dosha siblings, and no prerequisites. The bracketed [Required]/[Cost] block is metadata already available in the schema, 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_vedic_doshas_parashara_guru_chandalDoshas: Guru-ChandalBRead-onlyIdempotentInspect
Guru-Chandal Dosha: Jupiter + Rahu or Jupiter + Ketu conjunct. Wisdom-confusion affliction.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/parashara/guru-chandal] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| present | No | |
| severity | No | |
| lagnaSign | No | |
| affectedHouses | No | |
| contributingPlanets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the read-only, idempotent, non-destructive profile, so the safety burden is lifted. The description usefully adds cost metadata (20 credits, Tier 2) and the endpoint, but says nothing about output shape, whether the dosha is reported as present/absent with strength, or any latency/rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very compact and front-loaded: the dosha definition comes first, followed by clearly labeled bracketed metadata blocks. The format repeats the tool name already in the title, but no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 schema covers the geocoding/timing inputs. However, for a Vedic-only calculation nothing warns that sidereal zodiac and an appropriate ayanamsa are expected defaults, which is 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate but lists only the four required fields. Material inputs such as zodiacType, houseSystem, ayanamsa selection, and timezone are not addressed in the description even though they change the result.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific dosha and defines its astronomical condition (Jupiter conjunct Rahu or Ketu), which clearly separates it from sibling dosha tools like parashara_pitru or parashara_mangal. The actual action, evaluating a chart for the presence of this dosha, is implied rather than stated with an explicit verb, so it falls 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.
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 narrow dosha tool versus parashara_full or the sibling dosha endpoints. Only a bare [Required: date, time, latitude, longitude] list hints at the birth-chart input context; no inclusions, 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_vedic_doshas_parashara_kaal_sarpDoshas: Kaal SarpBRead-onlyIdempotentInspect
Kaal Sarp Dosha: all 7 classical grahas on one side of the Rahu-Ketu axis. Returns 12 sub-types by Rahu house position (Anant=1H, Kulik=2H, Vasuki=3H, Shankhpal=4H, Padma=5H, Mahapadma=6H, Takshak=7H, Karkotak=8H, Shankhachud=9H, Ghatak=10H, Vishdhar=11H, Sheshnag=12H). Also partial: true flag when 6 of 7 grahas on one side.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/parashara/kaal-sarp] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| partial | No | |
| present | No | |
| subType | No | |
| severity | No | |
| affectedHouses | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the read-only, idempotent, non-destructive, closed-world profile, so the safety bar is low. The description adds genuinely useful non-schema context: the computation rule, the sub-type taxonomy, the `partial: true` edge case, plus the endpoint, required inputs, and credit cost. It does not cover auth, rate limits, or pagination, but those are minor here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The dosha definition is front-loaded, followed by the output taxonomy. The 12-entry house mapping is verbose but informative and earns its space. The bracketed metadata lines are compact and skimmable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because an output schema exists, return values need not be spelled out, and the description nevertheless covers them. However, for a 15-parameter tool at 33% schema coverage, the description leaves too many optional inputs unexplained, which is the main completeness gap. The core domain behavior is adequately conveyed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description needs to compensate and does not. It restates the four required inputs but adds no meaning for the 11 optional parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId, etc.), several of which are undocumented in both the schema and the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description precisely defines the resource: it states the exact condition computed (all 7 classical grahas on one side of the Rahu-Ketu axis) and enumerates the 12 sub-type outputs by Rahu house position. This goes well beyond the title. It does not, however, distinguish itself from the sibling kp_kalasarpa and lal_kitab_kalsarpa variants, which compute the same dosha from different systems, so the 'Parashara' differentiation is left implicit in the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance, no statement of prerequisites, and no direction toward the KP or Lal Kitab Kalasarpa siblings. The definition of the dosha implies the context, but an agent receives no routing advice for choosing among the many dosha tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_parashara_mangalDoshas: Mangal (Mars affliction)ARead-onlyIdempotentInspect
Mangal Dosha detection with school selection (school body param: strict BPHS verse 1/4/7/8/12 from Lagna only; north 1/2/4/7/8/12 from Lagna+Moon; south 1/2/4/7/8/12 from Lagna+Moon+Venus, default). Canonical sign-based cancellations applied: Mars in own (Aries/Scorpio) or exalted (Capricorn) sign cancels; per-house cancellations (house 2: Gemini/Virgo; house 4: Taurus/Libra; house 12: Taurus/Libra/Gemini/Virgo).
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/parashara/mangal] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| present | No | |
| severity | No | |
| lagnaSign | No | |
| mangalSchool | No | |
| affectedHouses | No | |
| contributingPlanets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds substantive domain behavior: the exact house rules per school and the canonical sign- and house-based cancellations that affect the result. This tells the agent how the verdict is derived, not just what is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, followed by the school modes and then cancellations. The parentheticals are dense but every clause carries domain meaning; nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and annotations cover the safety profile. The description supplies the missing domain semantics (school definitions and cancellation logic) needed to interpret the result, though the schema/description mismatch on the `school` param leaves a small gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% and the schema does not even contain the `school` property the description centers on, so the description carries real weight by documenting the three school modes and their default. However, the many other configuration params (ayanamsa, timezone, houseSystem, zodiacType, etc.) are left entirely to the schema, so compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource (Mangal Dosha detection) and scopes it to the Parashara school via the `school` parameter, which distinguishes it in spirit from the KP and Lal Kitab manglik siblings. It does not explicitly name those siblings, so an agent must infer the school boundary rather than being told.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The text explains how to configure the `school` parameter but never states when to choose this tool over astroway_vedic_doshas_kp_manglik, lal_kitab_manglik, or compatibility_mangal_match. There is no when-to-use or when-not-to-use guidance for routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_parashara_pitruDoshas: Pitru (ancestral)BRead-onlyIdempotentInspect
Pitru Dosha: Sun + Rahu or Sun + Saturn conjunct, plus Sun in 9th house as auxiliary marker. Note: BPHS lists 14 patterns of Pitru Dosha; this endpoint detects 3 most-cited conjunction patterns. Full canonical detection (9th-lord placement, malefic in 9H) is not done yet.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/parashara/pitru] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| present | No | |
| severity | No | |
| lagnaSign | No | |
| affectedHouses | No | |
| contributingPlanets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds genuinely useful behavioral context: it detects only 3 of the 14 BPHS patterns and explicitly states what full canonical detection is missing. Cost (20 credits) is also disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The detection rule is front-loaded, followed by a clearly labeled limitation note and structured metadata block. No filler, though the [Group/Endpoint/Required/Cost] block partially duplicates schema and annotation data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 conveys what the tool computes and its known limitations. It is complete enough to invoke correctly, with the only real gap being guidance relative to the sibling dosha tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% across 15 parameters. The description merely restates the four required fields already declared in the schema and adds no syntax, format, or meaning for the remaining 11 parameters, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what is detected (Sun+Rahu or Sun+Saturn conjunction, plus Sun in 9th house as auxiliary), giving a concrete rule set rather than a tautology. It is specific about scope but never names the sibling variants (kp_pitra, lal_kitab_pitra, parashara_full) it must be distinguished from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of alternatives, despite ~5 Pitru Dosha siblings and a parashara_full aggregate. The limitation note implies this is a partial check, but it never tells the agent when to prefer this endpoint over the fuller or alternate-system variants.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_doshas_parashara_shrapitDoshas: Shrapit (curse)BRead-onlyIdempotentInspect
Shrapit Dosha: Saturn + Rahu conjunct in any sign. Signifies inherited curse/blockage in life.
[Group: Vedic] [Endpoint: POST /v1/vedic/doshas/parashara/shrapit] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| dosha | No | |
| school | No | |
| details | No | |
| present | No | |
| severity | No | |
| lagnaSign | No | |
| affectedHouses | No | |
| contributingPlanets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false), so the description only needs to add operational context. It does disclose the cost (20 credits, Tier 2) and the endpoint, which are genuinely useful for an agent budgeting calls, but says nothing about failure modes, data requirements, or interpretation limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the dosha definition and its astrological condition, then a compact bracketed metadata block for group, endpoint, required inputs and cost. Every line is short and scannable with no filler prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the required inputs plus cost are covered. What is missing is the routing context an agent needs in a catalogue of ~160 sibling tools: why choose this Parashara Shrapit endpoint over the KP, Lal Kitab, or full-dosha variants.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (10 of 15 params undocumented, including date, time, latitude, longitude, city, name, zodiacType, houseSystem, ayanamsaId, cosmogram). The description merely restates the required set that the schema's 'required' array already lists, so it does not compensate for the uncovered optional parameters an agent must reason about (e.g. ayanamsaId, zodiacType, houseSystem).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific dosha and gives its astronomical definition (Saturn + Rahu conjunct in any sign), so an agent knows exactly which condition this tool evaluates. It stops short of differentiating itself from the closely named siblings (astroway_vedic_doshas_kp_shrapit, astroway_vedic_doshas_lal_kitab_shrapit, astroway_vedic_doshas_parashara_full), leaving the 'Parashara' scope to be inferred from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 when to call this single-dosha endpoint versus astroway_vedic_doshas_parashara_full, or how it relates to the KP and Lal Kitab Shrapit variants. The only context given is group/endpoint/cost metadata, which is 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_vedic_gemstonesGemstone (ratna) recommendationBRead-onlyIdempotentInspect
Which of the nine gems to wear, from the sidereal lagna. Two schools are implemented: lagna-lord (default) prescribes the gems of the 1st, 9th and 5th lords as the life, lucky and benefic stones; functional-benefic classifies every graha by the houses it owns from the lagna, prescribes only for functional benefics led by the yogakaraka, and names the functional malefics as gems to avoid.
[Group: Vedic] [Endpoint: POST /v1/vedic/gemstones] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a gemstone recommendation. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude. Coordinates do NOT default to 0 here as they do on other chart endpoints: the whole answer is derived from the lagna, so an omitted pair is a 400 rather than a confident set of gems for 0N 0E. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | No | |
| avoid | No | |
| lagna | No | |
| school | No | |
| ayanamsa | No | |
| cautions | No | |
| condition | No | |
| nodesNote | No | |
| disclaimer | No | |
| schoolNote | No | |
| recommended | No | |
| conditionNote | No |
TDQS
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 useful behavioral context — that each school withholds different gems and orders results differently, and that malefics are surfaced as gems to avoid — but says nothing about response shape, credits consumed (20) or error behavior in the description text itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences with no filler: the deliverable comes first, then the school mechanics. Dense Vedic terminology is justified by the domain, though the school sentence is long and could be split for scanability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and a fully-described input schema, the description need not document returns or parameters. It adequately covers purpose and mode selection; the one real gap is disambiguation from astroway_vedic_gemstones_navaratna and the omission of the coordinate-non-defaulting caveat that the schema carries.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description goes beyond it by explaining what lagna-lord prescribes (1st/9th/5th lords as life/lucky/benefic stones) and what functional-benefic does (classification by owned houses, yogakaraka-led, malefics flagged as avoid), giving an agent a reason to pick a school rather than just an enum label.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific deliverable — which of the nine gems to wear — and grounds it in the sidereal lagna, then distinguishes two implementation schools by name. It does not, however, distinguish this tool from the sibling astroway_vedic_gemstones_navaratna, which an agent must resolve to choose correctly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description never says when to pick this tool over the navaratna sibling or other Vedic endpoints, nor does it state prerequisites (e.g. that coordinates are mandatory and non-defaulting). It explains the two schools' logic but leaves tool selection 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_vedic_jaimini_argala_analysisJaimini: Argala / Virodhargala scanARead-onlyIdempotentInspect
Full Argala (intervention) + Virodhargala (counter-intervention) scan across all 12 houses. Argala from 2/4/11 (primary), 5 (secondary), 8 (special); Virodhargala from 12/10/3 (primary), 9 (secondary), 6 (special). Net influence and dominant-over metric per house.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/argala-analysis] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| houses | No | |
| method | No | |
| weakestArgala | No | |
| strongestArgala | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds real value beyond that: the cost (20 credits, Tier 2), the POST endpoint, the required inputs, and the shape of the result ('net influence and dominant-over metric per house').
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and dense with useful domain detail, and the bracketed metadata block efficiently conveys endpoint, required params, and cost. It is slightly redundant in re-listing required parameters already present in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description's burden. For a domain-complex Vedic technique, the description adequately explains what is computed and what it costs; the main gap is parameter-level guidance, which is partially offset by schema descriptions for the non-core fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the description contributes nothing to the 15 parameters beyond restating which four are required — which the schema already enforces. No guidance is added for ayanamsa, zodiacType, houseSystem, or the compact-mode fields, so the description 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact technique (Jaimini Argala/Virodhargala), the verb-like scope (full scan across all 12 houses), and the precise contributing houses (2/4/11 primary, 5 secondary, 8 special for Argala; 12/10/3, 9, 6 for Virodhargala). This distinguishes it cleanly from sibling Jaimini tools like jaimini_aspects, jaimini_drishti_rasi, and jaimini_karakas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the domain-specific technique name, but there is no explicit statement of when to choose this over jaimini_aspects, jaimini_drishti_rasi, or the Jaimini yoga tools. No prerequisites or exclusions are given, leaving the agent to infer the selection context from the technique label alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_aspectsJaimini: Aspects (Rasi + Graha drishti)ARead-onlyIdempotentInspect
Combined Jaimini aspects: rasi drishti (12-rasi sign-aspect table per modality rules) + graha drishti (per-planet Parashari aspects). Convenience aggregate of /drishti-rasi and /drishti-graha.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/aspects] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| rasiDrishti | No | |
| grahaDrishti | No |
TDQS
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 meaningful extra context the annotations lack: a cost of 20 credits (Tier 2) and the aggregate nature of the call, letting the agent weigh it against calling the two components.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences plus a compact metadata block (Group/Endpoint/Required/Cost), all front-loaded with the core purpose first. Every line carries signal, though the bracketed metadata is structural rather than explanatory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 supplies endpoint, cost tier, and required inputs. The main shortfall is the sparse parameter documentation, but for a read-only aggregate whose output schema is defined, this is largely adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only describes 33% of 15 parameters, so the description carries a heavier burden but adds almost nothing. It restates the four required params already marked required in the schema and offers no meaning for the many undocumented fields (city, name, cosmogram, date/time formats, houseSystem).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (combined Jaimini aspects) and precisely decomposes it into rasi drishti and graha drishti. It explicitly distinguishes itself from the sibling tools astroway_vedic_jaimini_drishti_rasi and astroway_vedic_jaimini_drishti_graha by naming itself a 'convenience aggregate' of them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Convenience aggregate of /drishti-rasi and /drishti-graha' tells the agent when to pick this tool: when both aspect tables are wanted in one call. It implies the components can be called separately if only one is needed, but does not state that exclusion explicitly, so it falls short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_atmakaraka_rotationJaimini: Atmakaraka rotation (timeline)BRead-onlyIdempotentInspect
Naisargika 1°/year symbolic progression of sidereal longitudes; scans for moments when the rank-1 chara karaka (Atmakaraka) changes. Returns timeline of soul-significator transitions with age-of-event + before/after planets + life-event hints. Default span 84 years; capped at 120.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/atmakaraka-rotation] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| events | No | |
| method | No | |
| yearsScanned | No | |
| birthAtmakaraka | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so the safety profile is covered. The description adds genuine context beyond that: the default 84-year span, the 120-year hard cap, the tier-2 cost of 20 credits, and what the timeline contains (age-of-event plus before/after planets and life-event hints). These are real behavioral constraints an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences state mechanism, return content, and span limits, followed by a compact bracketed metadata block for group/endpoint/required/cost. Little waste; the return-content sentence partially overlaps the output schema but is brief.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 spelled out, and annotations carry the safety profile. However, for a 15-parameter tool with only 33% schema coverage, the description leaves the optional-parameter surface essentially unaddressed, which is a meaningful gap even if not fatal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate for undocumented params. Instead it only repeats the four required fields (date, time, latitude, longitude), which the schema already marks as required, and says nothing about ayanamsa, houseSystem, zodiacType, fields, precision, or the timezone family beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource: it performs the Naisargika 1°/year symbolic progression and scans for moments when the rank-1 chara karaka (Atmakaraka) changes, returning a transition timeline. This is clearly distinguished from static Jaimini siblings like chara_karakas or atmakaraka_navamsa by its temporal/rotation framing. It stops short of explicitly naming a sibling to route against, so 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance and no named alternative. The only constraints given ('default span 84 years; capped at 120') are behavioral limits, not routing guidance. An agent must infer applicability from the purpose statement alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_chara_karakasJaimini: Chara Karakas (detailed)BRead-onlyIdempotentInspect
Detailed chara karaka ranking with Atmakaraka/Darakaraka highlighted. Same algorithm as /karakas but focused output for AK/DK-driven analyses.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/chara-karakas] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| method | No | |
| ranking | No | |
| atmakaraka | No | |
| darakaraka | No |
TDQS
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 (20 credits, Tier 2), the POST endpoint, and the required inputs, but says nothing about output shape, computation caveats, or what 'Atmakaraka/Darakaraka highlighted' changes in the payload. Adds some value beyond annotations, not rich context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and the sibling comparison in the first sentence, then tight metadata lines for group, endpoint, required params, and cost. No filler prose; the only slight cost is the redundant restatement of required parameters already in the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and annotations carry the safety profile, so the description does not need to explain returns. It is adequate but thin for a 15-parameter, credit-charged calculation tool: it omits how ayanamsa/house-system choices affect the karaka ranking and never spells out what the 'focused' output contains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
15 parameters with only 33% schema description coverage, so the description should compensate for undocumented params (houseSystem, zodiacType, ayanamsaId, cosmogram, city, name). Instead it only restates the four required fields, which the schema already declares, adding zero meaning for the remaining eleven.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('detailed chara karaka ranking') and names the sibling it overlaps with ('/karakas', i.e. astroway_vedic_jaimini_karakas), asserting it returns a focused AK/DK view instead. The only weakness is that 'focused output' is never concretely described, so the exact delta from /karakas 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'focused output for AK/DK-driven analyses' implies when this tool is preferred, but there is no explicit when-to-use statement or when-NOT-to-use condition (e.g. 'use /karakas for the full ranked table of all karakas'). The guidance is implied 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_vedic_jaimini_dasha_summaryJaimini: Running Dasha SummaryARead-onlyIdempotentInspect
Convenience aggregate: returns the running Mahadasha for Chara, Sthira, and Shoola at targetDate (default = now). Same builders as the dedicated /dashas/{chara,sthira,shoola}/maha endpoints; this one returns three running periods in a single call.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/dasha-summary] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus the target date for the Jaimini dasha summary. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| summary | No | |
| ayanamsa | No |
TDQS
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: the cost tier (20 credits / Tier 2), the concrete endpoint, and the guarantee that it reuses the 'same builders' as the individual endpoints, so results are consistent. It stops short of describing granularity of the running periods returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the aggregate behavior and followed by the sibling comparison; the bracketed group/endpoint/cost tags are compact and scannable. Slightly redundant to restate the endpoint paths twice, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not explain return values, and it covers the remaining essentials: what is returned (running Mahadashas across three systems), the target-date default, and the cost. An agent has everything needed to decide and invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, including a detailed `body` description covering birth data, timezone handling, and field naming rules, plus descriptions for `fields` and `precision`. The description only adds the meaning of the `targetDate` default ('now'). Per the rubric, a fully documented schema sets the baseline at 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('returns the running Mahadasha for Chara, Sthira, and Shoola') and pins the temporal scope with `targetDate` (default = now). It also names the sibling endpoints it aggregates (`/dashas/{chara,sthira,shoola}/maha`), so an agent can distinguish it from the many astroway_vedic_dashas_chara_* / sthira_* / shoola_* tools without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Frames itself as a 'convenience aggregate' that 'returns three running periods in a single call', which implicitly tells the agent to prefer this over three separate system-specific calls. However, it never states an explicit when-not condition (e.g., if you only need one system, call the dedicated endpoint) and gives no guidance on choosing between summary vs. antar/pratyantar depth levels.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_drishti_grahaJaimini: Graha Drishti (planet aspects)ARead-onlyIdempotentInspect
Per-planet graha drishti per Parashari rules (BPHS): Mars 4/7/8, Jupiter 5/7/9, Saturn 3/7/10, others 7th. Used in Jaimini-context dashboards alongside rasi drishti.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/drishti-graha] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| method | No | |
| grahaDrishti | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly/idempotent/non-destructive/closed-world, so safety is covered; the description adds operationally relevant facts those annotations cannot carry - the POST endpoint and a billing cost (20 credits, Tier 2). It does not describe return shape, but an output schema exists and covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The most distinctive content (the aspect rules) is front-loaded, followed by a short context sentence and a compact bracketed metadata block. Every line carries information; only the 'Jaimini-context dashboards' phrasing leans on vocabulary an agent may not need.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter computation tool, the basics are there: what is computed, the cost, the endpoint, the required inputs, plus complete safety annotations and an output schema. What is missing is guidance on the chart-shaping options (zodiacType, houseSystem, ayanamsa variants) that materially change the result, leaving a large share of parameters unexplained in both places.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate - yet it only restates the four required parameters that are already enumerated in the schema's required array. Cryptic inputs such as ayanamsaId (number), houseSystem (single-letter enum) and cosmogram receive no meaning from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names the exact computation (per-planet graha drishti) and even spells out the Parashari aspect rules for Mars, Jupiter, Saturn and the default 7th, which no sibling does. It also names the sibling it belongs next to ('alongside rasi drishti', i.e. astroway_vedic_jaimini_drishti_rasi), so an agent can separate the two aspect tools without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Used in Jaimini-context dashboards alongside rasi drishti' implies the context of use but never states a when-to-use/when-not rule or a selection condition against the rasi drishti sibling. The agent must infer that graha drishti and rasi drishti are complementary rather than alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_drishti_rasiJaimini: Rasi Drishti (sign aspects)BRead-onlyIdempotentInspect
Jaimini rasi drishti table: movable signs aspect all fixed except adjacent; fixed aspect all movable except adjacent; dual aspect all other dual. Per Jaimini Sutras 1.1.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/drishti-rasi] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| method | No | |
| rasiDrishti | No |
TDQS
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 fully covered structurally. The description adds the cost (20 credits) and the required inputs, which is useful billing context, but says nothing about latency, whether a full chart is needed internally, or failure modes. With annotations carrying the safety burden, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the substantive rule content in a single dense sentence, followed by a compact metadata block for group, endpoint, required params and cost. Every line carries information; the format is efficient for an agent to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 unnecessary, and the annotations cover safety, leaving the domain rules as the main thing to convey. However, the description omits sibling differentiation against graha drishti and any guidance on the optional chart parameters that materially affect this calculation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% across 15 parameters, yet the description contributes nothing beyond repeating the four required fields already in the schema. Meaningful options such as fields (compact mode), ayanamsa school, zodiacType, houseSystem, and timezone handling are left entirely to the schema, so the description 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (Jaimini rasi drishti table) and even enumerates the actual sign-aspect rules, which makes the output unambiguous. It does not name or distinguish itself from the sibling astroway_vedic_jaimini_drishti_graha (planetary drishti), so the agent must infer the sign-vs-planet distinction from the domain rule text alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not guidance and the closely related sibling astroway_vedic_jaimini_drishti_graha is never mentioned. The rules of the technique imply its purpose, but an agent cannot tell from the text which of the two Jaimini drishti tools to pick for a given question.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_karakasJaimini: Karakas (Chara + Naisargika)BRead-onlyIdempotentInspect
Jaimini karakas: chara karakas (8-planet ranking by advancement-in-rasi, Atmakaraka..Darakaraka) + naisargika karakas (fixed planet→house mapping). Source: Jaimini Sutras 2.x + BPHS Adhyaya 47 + PyJHora chara_karakas/naisargika_karakas.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/karakas] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| chara | No | |
| lagna | No | |
| ayanamsa | No | |
| charaRoles | No | |
| naisargika | No |
TDQS
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 source lineage (Jaimini Sutras 2.x, BPHS 47, PyJHora) and cost/tier, but says nothing about computation or determinism 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence captures the resource and scope, followed by a compact metadata block. Front-loaded and free of filler, though the bracket metadata is slightly boilerplate-heavy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a 15-parameter tool at 33% schema coverage, the description omits param guidance the agent needs, 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters. The description contributes nothing about parameters beyond restating the four required ones, leaving many undocumented fields (city, name, cosmogram, houseSystem, zodiacType) unexplained in either place.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: computes Jaimini karakas, splitting chara karakas (8-planet ranking, Atmakaraka..Darakaraka) from naisargika karakas (fixed planet→house mapping). This is clear, but it does not differentiate from the sibling astroway_vedic_jaimini_chara_karakas, which overlaps on the chara half.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. It never tells the agent whether to call this versus astroway_vedic_jaimini_chara_karakas for chara-only work or the atmakaraka siblings for derived charts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_padasJaimini: Padas (Bhava/Surya/Chandra/Graha Arudhas)BRead-onlyIdempotentInspect
All canonical Arudhas: A1..A12 (Bhava Arudhas / lagna padas), S1..S12 (Surya/Sun arudhas), M1..M12 (Chandra/Moon arudhas), and Graha Arudhas (lagna + 9 planets). Implements 1/7-trim rule per BPHS Adhyaya 26 verse 4.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/padas] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| bhavaArudhas | No | |
| grahaArudhas | No | |
| suryaArudhas | No | |
| chandraArudhas | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description usefully adds the cost (20 credits, Tier 2), the endpoint, and the required parameter set, which is genuine context beyond annotations. It does not describe response shape or computational caveats, so it adds value without being rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The substantive content is two tightly written sentences with the output inventory front-loaded, followed by a compact bracketed metadata block. Nothing is wasted, though the inventory enumeration is dense and the metadata block restates schema/annotation-adjacent facts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema exists, so return values need not be explained, and annotations carry the safety profile. However, for a 15-parameter computation with 33% schema coverage, the description omits any guidance on time/place inputs, ayanamsa choice, or compact mode, leaving the agent reliant on raw schema fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only 33% schema description coverage, the description should compensate for the undocumented parameters, but it mentions none of them. Devices like timezone vs timezoneOffset, fields, precision, and ayanamsa carry real invocation risk here and are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (Arudhas/padas) and enumerates the exact contents: A1..A12 Bhava, S1..S12 Surya, M1..M12 Chandra, and Graha Arudhas. An agent can tell this is the comprehensive padas computation. It does not explicitly distinguish itself from siblings like astroway_vedic_jaimini_upapada or _karakas, so it falls 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.
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, no prerequisites, and no conditions or exclusions. The BPHS verse citation is a provenance note, not usage guidance. The sibling upapada tool returns a subset, but the router is never told which to pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_upapadaJaimini: Upapada Lagna (UL)BRead-onlyIdempotentInspect
Upapada Lagna (UL = A12): pada of the 12th house from lagna. Canonical Jaimini significator for spouse, marriage, partnerships.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/upapada] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| meaning | No | |
| upapada | No |
TDQS
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 usefully adds the cost (20 credits, Tier 2), the HTTP endpoint, and the required inputs, which help an agent decide whether to call it, but it says nothing about determinism or output shape 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the concept and its astrological role, followed by compact bracketed metadata blocks (group, endpoint, required, cost). Every line carries information and there is no filler, though the concept sentence could be tightened into an action statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the description supplies what an agent needs to invoke it correctly: purpose, required coordinates/date/time, endpoint, and cost. The main gap is guidance on the many optional calculation settings (ayanamsa, zodiacType, houseSystem) that materially affect results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate, yet it only restates the four required fields (date, time, latitude, longitude) that the schema's `required` array already lists. Optional parameters like ayanamsa, zodiacType, houseSystem, and the compact-mode fields get no semantic help from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific artifact (Upapada Lagna, UL = A12), defines it concretely as the pada of the 12th house from lagna, and states its role as the Jaimini significator for spouse, marriage, and partnerships. An agent can tell this apart from generic 'padas' or 'karakas' siblings, though no sibling is named explicitly and it describes the concept more than the action ('computes/returns').
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'canonical significator for spouse, marriage, partnerships' implies the domain in which to reach for this tool, but there is no explicit when-to-use framing, no prerequisites, and no routing to alternatives such as the compatibility or karakamsa tools that overlap in subject matter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_jaimini_yogasJaimini: Yogas (basic AK/DK/PK set)BRead-onlyIdempotentInspect
Basic Jaimini-yoga checks based on chara karakas: Raja yoga (AK in Lagna/Kendra), marriage yoga (DK in trine), AK+PK conjunction (success yoga), AK in dusthana (challenge flag). Phase 2 block 19 will add 5 dedicated /yogas/jaimini/* endpoints with Raja/Dhana/Daridra/Viparita Raja yogas per Jaimini canon.
[Group: Vedic] [Endpoint: POST /v1/vedic/jaimini/yogas] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| note | No | |
| lagna | No | |
| yogas | No | |
| atmakaraka | No | |
| darakaraka | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a read-only, idempotent, non-destructive, closed-world computation, so the safety profile is covered without the description. The description does add value beyond that: it discloses the cost (20 credits, Tier 2), the endpoint, and the specific flags returned (e.g. 'challenge flag' for AK in dusthana). It does not cover latency, caching, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first sentence, followed by a compact enumeration of checks and a metadata block. Only the 'Phase 2 block 19' roadmap sentence is arguably noise, but it is one sentence and not disruptive.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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/endpoint/required inputs are given. However, for a 15-parameter astrological computation the description is silent on which parameters affect results and how this differs from the numerous sibling yoga endpoints, leaving real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description must carry more weight, and it only lists the four required parameters (date, time, latitude, longitude) without explaining their meaning or format — information already present in the schema's required array. The eleven optional parameters (ayanamsa, houseSystem, zodiacType, precision, etc.) that materially change the computed yogas get no mention.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb/resource (Jaimini yoga checks) and enumerates the exact checks performed (Raja via AK in Lagna/Kendra, marriage via DK in trine, AK+PK success, AK in dusthana). It is harder to place against the already-listed siblings (astroway_vedic_yogas_jaimini_raja/dhana/daridra/viparita), because the 'Phase 2 will add' note suggests those dedicated endpoints do not exist yet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance: no statement of which chart/context this is appropriate for, and no routing such as 'use jaimini_full for a complete picture.' The only comparative statement is a forward-looking roadmap note about future endpoints, which does not help an agent choose among current siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_asc_subKP: Ascendant sub-lordBRead-onlyIdempotentInspect
Sub-lord of the Ascendant: the canonical "ruling indicator" for the chart's primary motivation, life direction, and dominant karmic theme per K.S. Krishnamurti Reader I-II.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/asc-sub] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| chain | No | |
| lagna | No | |
| meaning | No | |
| ascSubLord | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds non-redundant operational context that matters for agent planning: a 20-credit Tier 2 cost and the concrete endpoint. It does not describe latency or result shape, but the output schema covers returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, and the bracketed metadata block is scannable and wastes little space. The required-parameter line duplicates the schema's `required` list, which is the one non-earning element.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter, paid, KP-specific calculation, the description leaves important correctness context unaddressed — notably that the ayanamsa default is Lahiri rather than the Krishnamurti/KP school the tool's doctrine assumes — which an agent would need in order to call it and interpret results reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate — but it only restates the four required fields already declared in the schema's `required` array. It says nothing about consequential optional inputs such as ayanamsa (the schema defaults to Lahiri, which is questionable for KP work), timezone/timezoneOffset, or the `fields`/`precision` compact-mode switches.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific computed artifact (the Ascendant's sub-lord) and explains its interpretive role — the chart's primary motivation, life direction, and karmic theme — with a cited source. It is clearly distinguishable from the broader KP sub-lord and significator siblings, though it never explicitly names or contrasts them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: calling it when you need the 'ruling indicator' for primary motivation. The bracketed block supplies operational facts (required inputs, cost tier, endpoint) but no when-to-use/when-not guidance and no routing to alternatives such as astroway_vedic_kp_sub_lords or astroway_vedic_kp_ruling_planets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_cuspsKP: Placidus cusps with sub-lord chainBRead-onlyIdempotentInspect
KP-canonical Placidus cusps (12) with full sub-lord chain (sign / star / sub / sub-sub) for each cusp. Sub-lord chain follows K.S. Krishnamurti 1971 Vimshottari proportional sub-divisions.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/cusps] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| cusps | No | |
| lagna | No | |
| method | No | |
| ayanamsa | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and a closed world, so the safety profile is covered. The description adds genuinely new behavioral facts — a 20-credit Tier 2 charge and the concrete endpoint — but says nothing about authentication, quotas, or how heavyweight the computation is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences of substance followed by a compact bracketed metadata block, with the output definition front-loaded. Every element is short and scannable, though the entity's derivation claim ('K.P. Krishnamurti 1971') is the least actionable line for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a 15-parameter tool at 33% schema coverage the definition should at least steer the ayanamsa/house-system defaults, since this is a KP tool where the 'kp' vs 'krishnamurti' enum distinction is easy to get wrong.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, and the description compensates for none of it: it just repeats the four required names the schema already marks as required. Choices that matter for this tool (ayanamsa 'kp' vs 'krishnamurti', houseSystem, fields, precision, timezone handling) are left entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb+resource: computes the 12 KP Placidus cusps with the full sign/star/sub/sub-sub sub-lord chain, and names the Krishnamurti 1971 method. That is far more specific than a title restatement, but it never distinguishes itself from close KP siblings like kp_sub_lords, kp_sub_sub_lord, or kp_asc_sub.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no when-not-to, and no mention of which sibling to pick for a different KP need (e.g. sub-lords of planets vs. cusps). The only routing aids are the [Required] and [Cost] lines, which are input/cost 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_vedic_kp_fortunaKP: Part of FortuneBRead-onlyIdempotentInspect
Part of Fortune (Lot of Fortune): ASC + Moon − Sun (day birth) or ASC + Sun − Moon (night birth). Sub-lord chain attached for KP-style usage.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/fortuna] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| chain | No | |
| house | No | |
| lagna | No | |
| formula | No | |
| isDayBirth | No | |
| fortunaLongitude | No |
TDQS
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 genuinely new context: the day/night branch that governs the result, the fact that a KP sub-lord chain is attached to the output, and the 20-credit Tier 2 cost — none of which the annotations or schema convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition leads with the substance — the point name and its formula — before the bracketed metadata block, and nothing is padded. The Group/Endpoint lines are mildly boilerplate but compact and useful for cost/route awareness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return shape need not be explained, and annotations cover safety and idempotency. However, for a 15-parameter tool with one-third schema coverage, the description leaves the configuration parameters (house system, zodiac type, ayanamsa, compact-mode options) entirely to the schema, which is a real gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. Listing 'Required: date, time, latitude, longitude' merely restates the schema's required array and adds no meaning for the eleven other fields (houseSystem, zodiacType, ayanamsa, precision, cosmogram, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific computed point and even gives the exact formula (ASC + Moon − Sun for day births, reversed at night), so an agent knows precisely what this endpoint produces. It does not explicitly differentiate itself from KP siblings like kp_asc_sub or kp_cusps, but the named artifact is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use / when-not-to-use guidance and no named alternative among the many KP and Vedic sibling tools. The phrase 'for KP-style usage' hints at the applicable school but does not tell the agent when this computation is the right call versus kp_cusps or kp_sub_lords.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_horaryKP: Horary chart (1..249)ARead-onlyIdempotentInspect
KP number chart: the number 1..249 fixes the sidereal ascendant (249-entry table, the six subs on a sign edge split in two); cusps are Placidus for the moment of the question day when that degree rises at the place, planets are taken at the question time. ascendantAt picks the centre (default) or the first degree of the segment. Latitudes past 66.5 are refused.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/horary] [Required: horaryNumber, date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| ascendantAt | No | Where in the number's segment the ascendant is placed: its centre (default) or its first degree. Sources differ; sign, star and sub are the same either way. | middle |
| horaryNumber | Yes | ||
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| cusps | No | |
| method | No | |
| planets | No | |
| segment | No | |
| ayanamsa | No | |
| housesJd | No | |
| ascendant | No | |
| ascSidereal | No | |
| ascendantAt | No | |
| horaryNumber | No | |
| housesOffsetHours | No |
TDQS
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. The description adds genuine behavioral context beyond that: latitudes past 66.5 are refused, cusps use Placidus computed for the question moment, and ascendantAt controls placement. These are useful operational traits not present in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core mechanic is front-loaded in the first clause, followed by supporting detail and the ascendantAt clarification. It is dense but every sentence carries information, with no filler. Slightly long for a single paragraph but well organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. The description covers the key quirks an agent needs (refused latitudes, computation basis, ascendantAt effect), and cost/endpoint/required fields are supplied in the metadata block. It is essentially complete for calling the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% across 12 parameters, so the description must compensate. It does add meaning for horaryNumber (1..249 fixes the ascendant) and ascendantAt (centre vs first degree of the segment), but leaves the remaining half of parameters — including ayanamsaId, timezone, timezoneOffset, precision, fields — to the schema. Partial compensation merits a baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ('KP number chart') and explains precisely what the horaryNumber does — fixing the sidereal ascendant from a 249-entry table. It is far more than a restatement of the title. It does not, however, distinguish this tool from the many sibling KP tools (kp_cusps, kp_asc_sub, etc.), so an agent must infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The text is entirely mechanical: it explains how the chart is computed but never states when to use a KP horary chart versus a natal chart or versus sibling KP tools like kp_asc_sub or kp_cusps. There are no exclusions or prerequisites for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_planet_cuspal_positionKP: Planet cuspal positionsBRead-onlyIdempotentInspect
For each planet: sidereal longitude + KP chain (sign/star/sub/sub-sub) + Placidus house occupied. Convenience layout for KP analyses.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/planet-cuspal-position] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| planets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only, idempotent, closed-world nature of the call. The description adds useful behavioral context beyond that: the exact endpoint, the four required inputs, and the cost (20 credits, Tier 2), which helps an agent budget the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core output summary is front-loaded in the first sentence, followed by compact metadata lines. There is little waste, though the bracketed metadata could be slightly more integrated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. Annotations cover the safety profile, and the description supplies cost and required inputs. However, it lacks any routing guidance among the numerous KP siblings and does not clarify the many optional parameters, leaving clear gaps for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters. The description merely repeats the four required parameters already listed in the schema and does not explain the optional parameters (e.g., ayanamsa, fields, precision, timezone), 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies exactly what is returned for each planet: sidereal longitude, the full KP chain (sign/star/sub/sub-sub), and the Placidus house occupied. This distinguishes it from siblings like kp_cusps or kp_sub_lords, though it never explicitly names an alternative tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Convenience layout for KP analyses' implies the tool is meant for KP workflows, but there is no explicit guidance on when to choose it over the many other KP siblings (e.g., kp_cusps, kp_sub_lords) or any when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_ruling_planetsKP: Ruling PlanetsBRead-onlyIdempotentInspect
Canonical KP ruling planets: Day-lord + Hora-lord + Asc-sign + Asc-star + Asc-sub + Moon-sign + Moon-star + Moon-sub, deduplicated. Used in horary timing analysis.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/ruling-planets] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| moon | No | |
| method | No | |
| dayLord | No | |
| ayanamsa | No | |
| horaLord | No | |
| ascendant | No | |
| rulingPlanets | No |
TDQS
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 cost (20 credits, Tier 2) and required inputs, which is useful, but says nothing about latency, caching, or the deduplication behavior's practical effect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded with the tool's output components, followed by compact bracketed metadata. No filler sentences; every line carries information, though the bracketed block is mildly redundant with schema fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 unnecessary, and annotations cover safety. For a 15-parameter tool the description is adequate, though the low schema coverage of several optional parameters leaves minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description is expected to compensate, yet it merely restates the four required parameters already marked required in the schema. It adds no meaning for ayanamsa, timezone, houseSystem, fields or precision, leaving several parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific computation and enumerates its exact components (Day-lord, Hora-lord, Asc-sign/star/sub, Moon-sign/star/sub), so an agent knows precisely what is returned. It does not, however, differentiate itself from closely named siblings such as astroway_vedic_kp_horary or astroway_vedic_kp_significators.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Used in horary timing analysis" gives an implied context of use, but there is no explicit when-to-use/when-not, nor any routing to alternative KP tools. The agent must infer that this is a supporting call rather than a standalone horary query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_significatorsKP: Significators (primary/secondary/tertiary)BRead-onlyIdempotentInspect
KP significator hierarchy per planet: primary = houses occupied by the star-lord; secondary = houses occupied by the planet itself; tertiary = houses occupied by the sign-lord. K.S. Krishnamurti Reader IV.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/significators] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| method | No | |
| significators | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint, idempotentHint, non-destructive, and closed-world, so safety needs no restating. The description adds genuinely new operational context: a 20-credit Tier 2 cost, the group, and the POST endpoint — cost is material for an agent deciding whether to call it. It omits auth requirements and rate limits, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The substantive content is front-loaded in a single dense sentence that defines the three tiers, followed by a compact bracketed metadata block that is easy to scan. Nothing is padded, though the source citation (K.S. Krishnamurti Reader IV) is scholarly color rather than actionable instruction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 prose, and required inputs plus cost are stated. For a 15-parameter KP endpoint, however, the description leaves a real correctness gap: it never signals that KP significators conventionally require the KP/Krishnamurti ayanamsa and a KP-appropriate house system, so an agent could invoke it with defaults and produce non-KP results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. It echoes the four required names already present in the schema's `required` array, but says nothing about the choices that materially change KP output — ayanamsa (krishnamurti/kp), houseSystem, zodiacType, or the `fields`/`precision` compact-mode options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific computation (KP significator hierarchy per planet) and even defines the three tiers operationally — primary from the star-lord's houses, secondary from the planet's own, tertiary from the sign-lord's. That is far more specific than a restated title. It stops short of 5 because it never distinguishes this output from adjacent KP tools such as kp_sub_lords, kp_ruling_planets, or kp_planet_cuspal_position, so an agent must guess which KP artifact it wants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no when-not-to, and no named alternative among the many KP siblings. The bracketed block lists required inputs and cost but gives no selection guidance. An agent learns what the tool computes, not when it should be preferred over a different KP endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_sub_lordsKP: Sub-lords (cusps + planets)BRead-onlyIdempotentInspect
Full KP "horoscope at a glance" table: sub-lord chain for every cusp + every planet (lagna, 9 grahas including Ketu).
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/sub-lords] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| cusps | No | |
| lagna | No | |
| planets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a safe, idempotent, non-destructive read (readOnlyHint/idempotentHint/destructiveHint), so the safety profile is covered. The description adds two genuinely useful behavioral facts beyond the schema: the 20-credit Tier 2 cost and the POST endpoint. It does not describe the returned structure, though an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is a single front-loaded sentence, with bracketed metadata for group, endpoint, required inputs, and cost. It is compact and easy to scan. Minor waste in the redundant required-parameter bracket, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool the definition covers purpose, required inputs, cost, and endpoint, and the output schema carries the return contract, so the agent can call it. What is missing is any guidance on the optional parameters (timezone vs timezoneOffset, ayanamsa, fields) and on when to prefer this over sibling KP tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate and it does not. It merely repeats the four required parameters (date, time, latitude, longitude), which the schema already lists in its required array, and says nothing about the 11 optional parameters such as fields, ayanamsa, timezone, precision, or houseSystem.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and resource: it returns the KP sub-lord chain for every cusp plus every planet (lagna, 9 grahas including Ketu). This is clearly more than a tautology. However, it never contrasts itself against close siblings like astroway_vedic_kp_cusps (cusps only) or astroway_vedic_kp_sub_sub_lord (deeper chain), 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no exclusions, and never names an alternative tool. An agent must infer from the title alone that this is the full cusp+planet sub-lord table rather than the cusps-only or sub-sub-lord variant. Only the required-input list and cost are provided, neither of which is usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_sub_sub_lordKP: Sub-sub-lord lookupARead-onlyIdempotentInspect
Returns the full sub-lord chain (sign/star/sub/sub-sub) at any sidereal longitude 0..360. Useful for transit-trigger and dasha-bhukti exact-moment analysis.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/sub-sub-lord] [Required: longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| chain | No |
TDQS
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 contributes the credit cost (20 credits, Tier 2) and endpoint, which are useful but not behavioral traits like edge cases or precision loss beyond the schema's note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the return content, followed by the use case, with metadata in a compact bracketed block. Efficient, though the metadata block slightly dilutes the core sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covers the required param, cost tier, and endpoint. The only shortfall is the lack of sibling disambiguation among several closely named KP tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and the schema already documents `fields` and `precision`. The description adds the 'sidereal' qualifier for longitude beyond the raw 0..360 range, a small but real semantic gain; nothing is said about the compact-mode parameters, so it doesn't compensate for the gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Returns the full sub-lord chain (sign/star/sub/sub-sub) at any sidereal longitude 0..360.' An agent can distinguish this from the sibling kp_sub_lords (which operates on a chart/planet) because this one is longitude-scoped.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It names use cases ('transit-trigger and dasha-bhukti exact-moment analysis') but gives no when-not guidance and never contrasts itself with the related kp_sub_lords or kp_asc_sub siblings, leaving the agent to infer which KP sub-lord tool applies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kp_transit_kpKP: Transit positionsBRead-onlyIdempotentInspect
Sidereal positions of all 9 grahas (incl. Ketu) at targetDate (default = now) with KP sub-lord chain attached. Use for KP transit-timing.
[Group: Vedic] [Endpoint: POST /v1/vedic/kp/transit-kp] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| jd | No | |
| planets | No | |
| ayanamsa | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnly/idempotent/non-destructive, lowering the burden, and the description adds useful extras: the default of 'now', the Ketu inclusion, and the 20-credit Tier 2 cost. It still says nothing about rate limits, auth, or response shape, so it is solid but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior is front-loaded in one dense sentence, followed by a compact metadata block for group/endpoint/cost. No filler, though the metadata block could be folded or trimmed for tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 endpoint/cost lines are useful. However, for an 8-parameter tool with 63% schema coverage and no required params, the definition never explains the date/time pair or resolves the `targetDate` mismatch, leaving ambiguity about the single most important input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description references a `targetDate` parameter that does not exist in the schema (which has `date` and `time`), which will mislead an agent about how to supply the moment. With schema coverage at 63% and no format hints for date/time, the description does not compensate for the gap and actively introduces a naming inconsistency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: sidereal positions of all 9 grahas including Ketu with the KP sub-lord chain attached. This distinguishes it from the many natal/KP siblings (kp_cusps, kp_sub_lords, kp_significators) by scoping it to transits, though no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Use for KP transit-timing' gives an implied use case, but there is no when-not, no prerequisite (e.g. birth data vs. just a date), and no named alternative among the ~15 other KP tools. It is adequate but leaves the agent to infer scope boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_kundliKundli (one call)ARead-onlyIdempotentInspect
A kundli card in one call: D1 lagna and the nine grahas with sign names, the Moon nakshatra and pada, the running Vimshottari maha and antar at targetDate (default now), and the Parashari yogas and doshas with a present list of the ones found. Each part is the same answer as its own route (/vedic/varga/D1, /vedic/dashas/vimshottari/antar, /vedic/yogas/parashara/full, /vedic/doshas/parashara/full). latitude and longitude are required; time is HH:mm:ss or HH:mm.
[Group: Vedic] [Endpoint: POST /v1/vedic/kundli] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| dasha | No | |
| lagna | No | |
| yogas | No | |
| doshas | No | |
| grahas | No | |
| ayanamsa | No | |
| nakshatra | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false), so the description's job is supplemental. It adds real context beyond annotations: that the response is a composite of four otherwise-separate route answers, that `targetDate` defaults to now, and that yogas/doshas come back as a `present` list of those found. It doesn't mention the 50-credit cost or latency of composing four computations, which would be useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the most important fact (one call, full card), then the returned contents, then the route equivalence, then parameter caveats. Dense but no filler sentences; slightly heavy with backticked route/format tokens, but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 reproduced; the description still summarizes the payload shape usefully. Annotations cover safety, the schema covers the birth-data contract, and the description covers composition semantics and the targetDate default — an agent has everything needed to call this correctly for a 3-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents parameters and the baseline is 3. The description adds value beyond it by stating latitude/longitude are required, giving the accepted `time` formats, and noting `targetDate` defaults to now — a default that does not appear in the schema for that field. The `fields`/`precision` compact-mode params are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource (a kundli card in one call) and enumerates exactly what it returns: D1 lagna, nine grahas with sign names, Moon nakshatra/pada, running Vimshottari maha/antar, and Parashari yogas/doshas with a `present` list. It explicitly maps each part to the sibling routes it aggregates (/vedic/varga/D1, /vedic/dashas/vimshottari/antar, /vedic/yogas/parashara/full, /vedic/doshas/parashara/full), so an agent can distinguish it from those sibling tools without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'one call' framing plus the explicit equivalence to four individual routes tells the agent when this is the right pick (want the whole card, avoid four round trips) versus the narrower single-purpose siblings. It doesn't state exclusions (e.g., use a different tool for compatibility or transits), so it falls short of full when/when-not guidance, but the aggregation context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_blind_houseLal Kitab: Blind houses (Andha bhava)BRead-onlyIdempotentInspect
Houses with no planet AND no Parashari aspect. Per Lal Kitab, blind houses indicate areas where karma is "unilluminated" and remedies are essential.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/blind-house] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| meaning | No | |
| disclaimer | No | |
| blindHouses | No |
TDQS
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 conceptual context (what a blind house means, that remedies follow) but says nothing about computation behavior, cost implications beyond the metadata line, or response shape. This is adequate but not rich; a 3 fits against annotations carrying the safety burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is front-loaded, compact, and the bracketed metadata block cleanly separates endpoint/cost/required-args from the conceptual description. Every sentence carries information, though the required-field line is redundant with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. The conceptual base is present, but with 33% schema coverage and no usage guidance for a tool that sits among many similar Lal Kitab siblings, the description leaves meaningful selection and parameter gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (15 params), so the description should compensate for undocumented parameters. Instead it merely restates the four required fields (date, time, latitude, longitude) that the schema already enforces as required, adding no syntax or semantic meaning for the remaining 11 optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description defines the specific astrological concept ("Houses with no planet AND no Parashari aspect") that this tool computes, which is clear and non-tautological. However, it never distinguishes itself from close siblings like astroway_vedic_lal_kitab_sleeping_house or astroway_vedic_lal_kitab_remedies, leaving an agent to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternative. The statement that remedies are "essential" is interpretive color, not routing information that would help an agent choose this tool over lal_kitab_remedies or lal_kitab_full.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_dashaLal Kitab: Dasha (35-year cycle)BRead-onlyIdempotentInspect
Lal Kitab dasha: 35-year cycle, 1 house per ~2.917 years from age 0 forward. Per K. Ashant tradition (alternate 38y impl in some authors flagged in method).
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/dasha] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| dasha | No | |
| lagna | No | |
| method | No | |
| cycleYears | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, idempotent, non-destructive, closed-world behavior. The description adds genuine value beyond them: the cycle length, per-house duration, starting age, attribution to the K. Ashant tradition, endpoint, and a 20-credit (Tier 2) cost warning. This is substantive computational and cost context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core computational definition is front-loaded, and the bracketed metadata (group, endpoint, required, cost) is scannable. Fairly efficient, though the bracket block is somewhat conventional filler rather than description prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 astronomical/cycle semantics are covered. But the dangling `method` reference, absent usage guidance, and undocumented parameters leave gaps for a 15-parameter tool. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only ~33% schema coverage, the description is expected to compensate, but it repeats only the required list already present in the schema. Worse, it references a `method` field that does not exist in the input schema, which could mislead an agent looking for that property.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and mechanism: 'Lal Kitab dasha: 35-year cycle, 1 house per ~2.917 years from age 0 forward.' An agent can identify the technique precisely. However, with ~150 sibling dasha tools (vimshottari, shodashottari, yogini, etc.), it never differentiates itself from those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no routing to alternatives despite a dense field of sibling dasha tools. The only directional hint is that an alternate 38-year implementation exists 'in some authors,' which is a variant note rather than usage guidance. An agent gets no signal on when to prefer this over the other dasha tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_debtsLal Kitab: Rin (6 ancestral debts)BRead-onlyIdempotentInspect
Detects six ancestral debts (Pitri / Stree / Kanya / Atma / Rishi / Daiva Rin) per Lal Kitab planet-affliction patterns. Each rin returns trigger conditions + recommended remedy. Per K. Ashant Vol. IV + R.D. Mathur consensus.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/debts] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| rins | No | |
| lagna | No | |
| disclaimer | No | |
| activeCount | No |
TDQS
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 burden is lifted; the description adds genuinely new context by disclosing the response shape ('trigger conditions + recommended remedy'), the interpretive source, and the operational cost (20 credits, Tier 2). It omits auth requirements and any latency/pagination expectations, but for a deterministic read-only calculation this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences that establish what, what-you-get, and provenance, followed by a compact metadata block. The bracketed 'Required' line duplicates the schema's required array and costs a line, but overall it is tight and free of filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 strictly needed, and the definition still covers purpose, output gist, source, required inputs, and cost. The notable gap is the absence of any routing guidance against the overlapping lal_kitab_rin / doshas siblings, which is where an agent would most likely err.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. It repeats the four required fields already enforced by the schema and says nothing about the ayanamsa/zodiacType/houseSystem enums, the compact 'fields' projection, or the timezone-vs-timezoneOffset tradeoff that materially affects results.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Detects') and names the exact resource and its six sub-types (Pitri/Stree/Kanya/Atma/Rishi/Daiva Rin), plus the doctrinal basis (Lal Kitab planet-affliction patterns), so the agent knows what computation is performed. It does not, however, distinguish itself from the near-identical sibling astroway_vedic_doshas_lal_kitab_rin, which an agent would have no way to choose between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use statement and no named alternatives, despite the crowded Lal Kitab sibling set (lal_kitab_remedies, doshas_lal_kitab_rin, doshas_lal_kitab_pitra, doshas_lal_kitab_full). The only usage-ish content is the bracketed 'Required: date, time, latitude, longitude', which merely restates schema requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_kismatLal Kitab: Kismat (fortune indicator)BRead-onlyIdempotentInspect
LK fortune score: +2 pakka ghar, +1 own sign, +2 exalted, −2 debilitated. Higher = more fortunate per K. Ashant Vol. III.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/kismat] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| kismat | No | |
| disclaimer | No | |
| interpretation | No |
TDQS
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 the cost (20 credits, Tier 2) and the source citation (Ashant Vol. III), which are useful, but says nothing about return shape, whether pakka ghar/own sign are evaluated per planet, or aggregation behavior — the burden there is only partly met by the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The scoring rubric is front-loaded in a single dense sentence, followed by compact bracketed metadata blocks that are easy to scan. Nothing is padded, though the rubric's notation (+2 pakka ghar) assumes domain familiarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 scoring formula gives the agent what it needs to interpret the number. However, for a 15-parameter tool at 33% schema coverage with no alternative-routing guidance, the definition leaves meaningful gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate — but it only restates the four required parameters (date, time, latitude, longitude) already marked required in the schema. The numerous optional chart-shaping parameters (ayanamsa, houseSystem, zodiacType, fields, precision) get no explanation here, leaving the coverage gap unaddressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and computation — a Lal Kitab fortune (kismat) score — and exposes the exact scoring rubric (+2 pakka ghar, +1 own sign, +2 exalted, −2 debilitated), so an agent knows precisely what it produces. It is distinguishable from siblings like prosperity or life_graph by its single fortune score. It stops short of explicitly contrasting itself with those siblings, so it is a clear 4 rather than a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 versus the other ~15 Lal Kitab endpoints (prosperity, life_graph, teva, etc.), nor any prerequisites or exclusions. 'Higher = more fortunate per K' explains output interpretation, not usage. The agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_lal_kundaliLal Kitab: Kundali (12-house grid)BRead-onlyIdempotentInspect
Lal Kitab kundali grid layout: 12 houses, each listing planets currently in it with state. Companion to /teva for chart visualization.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/lal-kundali] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| grid | No | |
| lagna | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, non-destructive, and closed-world, so the safety profile is covered. The description adds two pieces of genuinely behavioral metadata the annotations lack: the 20-credit Tier-2 cost and the POST endpoint. It says nothing about pagination, response shape, or auth, so it is modestly additive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One prose sentence followed by bracketed metadata (group, endpoint, required, cost) — front-loaded and scannable, with no filler. The parenthetical tags are terse and each carries distinct information. Not padded, though the required-params tag duplicates the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 here. For a 15-parameter chart endpoint with three enums and a defaulted house system, however, the description gives no orientation on which configuration choices matter, leaving an agent to infer intent from bare schema fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should be compensating and does not. Its only parameter content is '[Required: date, time, latitude, longitude]', which merely restates the schema's required array. Undocumented or thin fields like zodiacType, houseSystem, ayanamsaId, cosmogram, and the interaction between timezone and timezoneOffset get no help from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete output: a 12-house Lal Kitab kundali grid with planets per house and their state. This is a specific resource and it positions itself against the sibling astroway_vedic_lal_kitab_teva as a 'companion for chart visualization'. It stops short of a crisp verb, but the artifact is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Companion to /teva for chart visualization' hints at the relationship to one sibling, implying they are used together. But among ~150 sibling tools there is no explicit when-to-use/when-not guidance, no statement of what you'd pick instead, and no prerequisites beyond the required-params line. Usage is implied rather than taught.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_life_graphLal Kitab: Life graph (age-by-age)BRead-onlyIdempotentInspect
Year-by-year (age 0..35) Lal Kitab dasha snapshot showing the running house, its ruler, and the ruler's current state in the chart. Use as a rough timing index.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/life-graph] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| meaning | No | |
| lifeGraph | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description adds genuine extra context: the bounded age range 0..35, the caveat that output is a 'rough timing index', the required parameters, and the cost tier (20 credits). It stops short of describing pagination or output shape, but the annotations and output schema carry that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and information-dense, followed by a compact bracketed metadata block (group, endpoint, required, cost). Every element earns its place, though the bracketed lines are boilerplate rather than tool-specific insight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, idempotent tool with an output schema present, the description needn't explain return values, and it covers purpose, scope, and cost. What it lacks is enough parameter guidance for a 15-param tool with only 33% schema coverage, so it is only minimally adequate for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate — but it merely restates the four required fields (date, time, latitude, longitude) that the schema already marks as required. It supplies no meaning for the eleven optional parameters (fields, precision, ayanamsa, timezone, houseSystem, etc.), leaving most of the low-coverage surface undocumented in prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: a year-by-year (age 0..35) Lal Kitab dasha snapshot showing the running house, its ruler, and the ruler's state. The 'age-by-age' scope is distinctive. It does not, however, explicitly differentiate itself from the closely named sibling astroway_vedic_lal_kitab_dasha, which an agent could easily 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use as a rough timing index' gives a soft usage cue and a hedge about precision, which is helpful context. But it names no alternative tool and gives no when-to-use/when-not-to-use conditions, so the agent must infer how this differs from the other Lal Kitab dasha tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_planet_house_effectLal Kitab: Planet-in-house effectARead-onlyIdempotentInspect
Short summary of a (planet, house) placement per LK. Caller passes planet (0..6, 11=Rahu, 100=Ketu) and house (1..12). Currently Sun-only full data; remaining 8 planets are placeholder text; the full 144-cell reading database is a Phase 3 content task.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/planet-house-effect] [Required: planet, house] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| house | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| planet | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| house | No | |
| effect | No | |
| planet | No | |
| pakkaGhar | No | |
| disclaimer | No |
TDQS
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 description's real contribution is the blunt data-completeness caveat: only Sun has full data, the other 8 planets return placeholder text, and the 144-cell database is deferred to Phase 3. It also surfaces cost (20 credits, Tier 2) and the endpoint. Telling an agent the tool is partially stubbed is exactly the kind of context structured fields cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the one-line purpose, then the input encoding, then the completeness caveat, with bracketed metadata block for group/endpoint/required/cost. Every sentence carries information; nothing is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. Combined with annotations covering the safety profile and the description covering the critical input encoding and the stub-data limitation, an agent has what it needs to call the tool correctly. Only the missing usage framing keeps it below 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%, and the two undescribed parameters are the required ones. The description compensates by giving the planet encoding (0..6, 11=Rahu, 100=Ketu) and the house range (1..12), which the schema's generic safe-integer bounds do not convey at all. It adds nothing for the already-documented `fields` and `precision`, so not a full 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and action: a short summary of a (planet, house) placement per Lal Kitab. That cell-level scope is inherently distinct from the broader Lal Kitab siblings (lal_kitab_full, lal_kitab_lal_kundali, lal_kitab_teva), so an agent can tell them apart without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the inputs but gives no when-to-use guidance, no exclusions, and never routes the agent toward or away from the other Lal Kitab tools. Usage is only weakly implied by the tool name and title, so this is a clear gap rather than merely a missing exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_prosperityLal Kitab: Sukh (prosperity yoga)BRead-onlyIdempotentInspect
LK dhana yoga sum: count benefics (Moon/Mercury/Venus/Jupiter) in 2/5/9/11 houses (LK fixed). +2 each. Higher = more prosperity yoga.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/prosperity] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| sukh | No | |
| lagna | No | |
| disclaimer | No | |
| interpretation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this is a safe, idempotent, non-destructive, closed-world read. The description adds genuinely new behavioral facts beyond them: the POST endpoint, the required inputs, and notably the 20-credit (Tier 2) cost per call. It does not, however, describe output shape or limits, which the output schema partly covers.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short and front-loads the computation rule before the bracketed metadata block. The formula sentence is dense but earns its place; no filler text. Slightly terse given the tool's parameter complexity, but structurally clean.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 core computation is stated. But for a 15-parameter chart tool with only 33% schema coverage, the absence of any description of the sidereal/zodiac/house-system options leaves real gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a compensating burden it does not meet. It merely restates the four required fields (date, time, latitude, longitude) that the schema already marks as required, and says nothing about ayanamsa, zodiacType, houseSystem, fields, precision, or the enum choices.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: it computes a Lal Kitab dhana/'Sukh' prosperity yoga score by counting benefics (Moon/Mercury/Venus/Jupiter) in houses 2/5/9/11 with +2 each. This is far more concrete than the title alone. It does not name sibling alternatives (e.g. astroway_vedic_yogas_parashara_dhana or astroway_vedic_yogas_jaimini_dhana), so it falls short of full sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 comparison to the many competing dhana/prosperity yoga tools in the sibling list. The only context given is the required-parameter list and cost, which the schema and pricing already imply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_remediesLal Kitab: Remedies (Upayas)ARead-onlyIdempotentInspect
Per-planet Lal Kitab remedies (upayas): the canonical Mathur-tradition remedy + day + donation + mantra. With optional planet param, returns single-planet upaya; without, returns all 9.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/remedies] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| remedies | No |
TDQS
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), and the description adds genuinely new operational context: the credit cost and tier (20 credits, Tier 2) as well as the exact composition of the returned remedy. It does not mention rate limits or caching, but the cost disclosure is the kind of detail agents cannot get from the annotation block.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences plus compact metadata tags; the capability statement leads and the optional-parameter behavior follows immediately. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 detailed, and the description still summarizes the shape helpfully while adding group, endpoint, and cost. The main remaining gap is the planet index convention, though that is arguably a schema-authoring problem rather than a description one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, and the description only adds the planet/no-planet branching already visible in the schema. It does not resolve the biggest ambiguity: `planet` is an integer with no enum or description, so an agent has no idea whether it is a 1-based graha index or something else.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Lal Kitab remedies/upayas) and enumerates exactly what each remedy contains: remedy, day, donation, mantra. It also names the tradition (Mathur) and the scope (per-planet), which cleanly separates it from the sibling lal_kitab tools that report chart structure, dashes, or doshas rather than remedies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a conditional on the `planet` param (single-planet upaya vs all 9), which implies when to narrow scope, but it never states when to reach for this tool over adjacent ones such as astroway_vedic_gemstones or astroway_vedic_doshas_lal_kitab_*. Usage is inferable but not spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_sleeping_houseLal Kitab: Sleeping housesBRead-onlyIdempotentInspect
Houses where a planet is in its pakka ghar with no companions/aspects. LK considers such planets dormant; remedies activate them.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/sleeping-house] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| meaning | No | |
| disclaimer | No | |
| sleepingHouses | No |
TDQS
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 useful operational context — the cost (20 credits, Tier 2) and the endpoint path — but says nothing about response shape, latency, or determinism beyond what annotations state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences of concept followed by a clean bracketed metadata block; the definition is front-loaded and the cost/endpoint data is scannable. Slightly terse relative to the complexity, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/endpoint block covers operational essentials. However, for a 15-parameter tool with low schema description coverage and a dense cluster of Lal Kitab siblings, the definition leaves the agent without enough to choose inputs or disambiguate the tool from blind_house and planet_house_effect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a real burden here — yet it only restates the four required parameters that the schema already marks as required. It offers no guidance on ayanamsa choice (relevant for Lal Kitab), timezone vs timezoneOffset precedence, or the compact-mode fields/precision parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description defines the domain artifact precisely — houses where a planet sits in its pakka ghar with no companions or aspects — which tells the agent what content the tool produces. It is not a plain verb+resource statement, and it does not distinguish itself from close siblings like astroway_vedic_lal_kitab_blind_house or astroway_vedic_lal_kitab_planet_house_effect, but the concept is specific enough to be actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 tool is preferable to the other Lal Kitab endpoints, and no prerequisites beyond the bare [Required: date, time, latitude, longitude] line. The statement that 'remedies activate them' hints at interpretation but does not route the agent to any remedy tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_tevaLal Kitab: Teva (fixed-house chart)ARead-onlyIdempotentInspect
Lal Kitab teva: fixed-house chart where house = sign (Aries=1..Pisces=12), no ASC rotation. Each planet placed by sign with state (own/exalted/debilitated/neutral) + pakka-ghar match flag. YELLOW: Lal Kitab is single-school; we ship K. Ashant + R.D. Mathur consensus.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/teva] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| teva | No | |
| lagna | No | |
| disclaimer | No | |
| pakkaGhars | No |
TDQS
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 bar is low. The description adds real value beyond them: it describes the returned content shape (each planet by sign with own/exalted/debilitated/neutral state plus a pakka-ghar match flag) and flags a source-authority caveat about the single-school Lal Kitab interpretation used.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is tight and front-loaded: mechanics first, returned content second, caveat last, with bracket metadata kept separate. Every sentence earns its place, though the metadata block adds tokens the surrounding structured context already supplies.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 detailed, and the safety profile is covered by annotations. For a 15-parameter tool at 33% description coverage, however, the description leaves the agent without enough to configure sidereal/zodiac/house options confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description would need to compensate and does not. It lists the four required inputs and the cost, but says nothing about zodiacType, houseSystem, ayanamsa, cosmogram, or fields — parameters whose meaning an agent must infer from bare enum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb+resource (Lal Kitab teva) and immediately states the defining mechanics: fixed-house chart where house = sign (Aries=1..Pisces=12), no ASC rotation. That single clause distinguishes it from the generic kundli and varga chart siblings without opening their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the chart is but never says when to reach for it versus siblings such as astroway_vedic_lal_kitab_lal_kundali or astroway_vedic_kundli. The YELLOW note about school consensus is a caveat, not usage guidance, and no prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_lal_kitab_varshphalLal Kitab: Varshphal (annual)ARead-onlyIdempotentInspect
Lal Kitab annual progression at given age. Returns the running 35-year-cycle dasha house + approximate solar-return JD for full annual chart casting.
[Group: Vedic] [Endpoint: POST /v1/vedic/lal-kitab/varshphal] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth 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. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| lagna | No | |
| varshphal | No | |
| disclaimer | No | |
| runningDashaHouse | No |
TDQS
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 useful context by naming what comes back (running 35-year-cycle dasha house plus approximate solar-return JD) and the credit tier, but says nothing about auth, rate limits, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence carries the substance, followed by short structured metadata lines (group, endpoint, cost). No filler, no repetition of schema content; only the boilerplate block borders on non-essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, rich annotations, and a fully documented input schema, the definition only needs to frame purpose and selection — which it mostly does. The lone gap is the absence of any signal distinguishing it from the other Lal Kitab and Varshaphal siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does single out `age` as the pivot for the annual progression, which maps meaning to the one non-generic parameter, but adds no range, default, or edge-case semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Lal Kitab annual progression at given `age`" gives a clear verb+resource and the annual-scoping is specific enough to separate it from the general Lal Kitab dasha tools. It never names a sibling, though, so an agent weighing it against astroway_vedic_lal_kitab_dasha or astroway_vedic_varshaphal must infer the distinction from the label alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase "for full annual chart casting" gestures at the use case, but there is no explicit when-to-use, when-not-to-use, or named alternative. An agent gets an implied context rather than a routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_business_startMuhurat: Business start (Vyapara)BRead-onlyIdempotentInspect
Auspicious-window scanner for starting a business / new venture. Preferred nakshatras: Pushya/Hasta/Chitra/Anuradha/U.Phalguni/U.Ashadha/U.Bhadrapada/Sravana/Punarvasu. Avoid Sun/Tue/Sat. Same scoring shape.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/business-start] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours 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. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
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 genuinely useful operational context: the POST endpoint, the required parameter, and the 50-credit Tier 3 cost. It does not describe pagination or the 'scoring shape' it references, but with an output schema present that gap is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded one-line purpose followed by a compact metadata block. The nakshatra list is long but domain-relevant and the 'Same scoring shape' note is efficiently terse. No filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 metadata block covers endpoint, required input, and cost. However, for a 10-parameter tool the description leaves most parameters and all sibling routing unexplained, which is a clear gap for correct invocation in a crowded muhurat family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40% across 10 parameters, so the description carries more burden than usual. It only surfaces the required search_window_start and the nakshatra selection rules, leaving latitude, longitude, ayanamsa, timezoneOffset, topN, and fields unexplained here and thinly documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Auspicious-window scanner for starting a business / new venture.' The domain is unambiguous and clearly distinct from siblings like muhurat_marriage or muhurat_property_purchase. It stops short of naming which sibling to prefer when the venture type is ambiguous, so it doesn't reach 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the domain (business/new venture) but gives no explicit when-to-use, when-not-to-use, or alternatives. With ~12 muhurat siblings sharing the same shape, nothing here helps the agent route between e.g. business_start, investment, or general_auspicious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_education_startMuhurat: Education start (Vidyarambha)ARead-onlyIdempotentInspect
Auspicious-window scanner for starting formal education / Vidyarambha ceremony. Preferred nakshatras: Hasta/Chitra/Swati/Pushya/Sravana/Revati/Anuradha/Punarvasu/U.Phalguni/U.Ashadha/U.Bhadrapada. Avoid Sun/Tue/Sat.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/education-start] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours 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. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
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 description earns credit by adding operational context: endpoint, cost (50 credits, Tier 3), and the required parameter. It could go further on what the scan returns and window bounds, but the cost/auth context is genuinely useful.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the purpose, then compact structured brackets for group/endpoint/required/cost, plus a tight nakshatra list. Every line carries signal; only minor trimming possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the domain-specific auspiciousness rules that an agent would otherwise lack. The remaining gap is parameter-level guidance on the non-required inputs, which is modest given schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 no parameter semantics beyond restating the required 'search_window_start'. It says nothing about topN, latitude/longitude, timezoneOffset, or search_window_end, so it fails to compensate for the coverage gap on a 10-parameter tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: an 'auspicious-window scanner' for 'starting formal education / Vidyarambha ceremony'. The education/Vidyarambha framing cleanly distinguishes it from the many sibling muhurat tools (marriage, business_start, travel, etc.) without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides domain rules for a good window (preferred nakshatras, avoid Sun/Tue/Sat) and lists the required input, but never states when to choose this tool over a sibling like naming_ceremony or general_auspicious. Guidance is implied rather than explicit about tool selection or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_general_auspiciousMuhurat: General auspicious windowARead-onlyIdempotentInspect
Generic favourable-window finder when no specific activity applies (Sankalpa, prayer, fallback). Universal Pushya/Hasta nakshatras + standard shubha tithis. Returns top-N days against universal Panchang criteria.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/general-auspicious] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours 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. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, and closed-world behavior. The description adds useful operational context: the astrological criteria used (universal Pushya/Hasta and shubha tithis), that it returns top-N days, the endpoint, and the 50-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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is front-loaded with the tool's purpose and criteria, followed by compact bracketed metadata. It is efficient and well-structured, though the endpoint/cost block is slightly extraneous to pure tool selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter tool with only 40% schema description coverage, the description is incomplete. It does not explain how to constrain the search window or set location, timezone, ayanamsa, or topN, all of which are important for a muhurat finder. The output schema covers return values, but parameter guidance is largely missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40% across 10 parameters, so the description should compensate but does not. It mentions the required search_window_start only, leaving topN, ayanamsa, latitude, longitude, timezoneOffset, precision, fields, search_window_end, and ayanamsaId without added meaning in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource ('favourable-window finder') and explicitly scopes it as the generic fallback when no specific activity applies. It names the criteria used (Pushya/Hasta nakshatras, shubha tithis) and distinguishes itself from the many activity-specific muhurat siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly says to use this when no specific activity applies, with Sankalpa, prayer, and fallback as examples. It implies the activity-specific muhurat tools should be used instead but does not name any alternative tool, so it falls short of the top score.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_investmentMuhurat: Investment / Dhana SthapanaARead-onlyIdempotentInspect
Auspicious-window scanner for major investments and financial commitments (deposits, share/bond purchase, lending). Preferred nakshatras: Pushya/Anuradha/U.Phalguni/U.Ashadha/U.Bhadrapada/Hasta/Sravana. Avoid Sun/Tue/Sat.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/investment] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours 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. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive, so safety is covered. The description adds genuinely new behavioral context: the credit cost and tier ('50 credits (Tier 3)') plus the search-window requirement, which the agent cannot get from 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and dense, and the bracketed metadata block is compact. The nakshatra/day lists are relevant domain content rather than padding, though the block format slightly fragments the flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/required params are surfaced. However, for a 10-parameter tool with 40% schema coverage, the description leaves geographic and formatting parameters (lat/long, topN, fields, precision) opaque, leaving real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, and the description repeats just the one required parameter (search_window_start) already flagged by the schema. It says nothing about the geographic inputs (latitude/longitude), topN, ayanamsaId, or search_window_end, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource ('Auspicious-window scanner for major investments and financial commitments') and enumerates the covered cases (deposits, share/bond purchase, lending). This clearly separates it from sibling muhurat tools such as business_start, property_purchase, or vehicle_purchase without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Domain scoping implies when the tool applies, and the required-parameter note hints at invocation, but there is no explicit when-to-use/when-not guidance and no reference to the many sibling muhurat scanners. The agent must infer routing from the purpose statement alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_journey_longMuhurat: Long journey (multi-day Yatra)ARead-onlyIdempotentInspect
Auspicious-window scanner for multi-day journeys (pilgrimages, relocation travel). Stricter than short travel: Friday is excluded per Yatra prakarana. Preferred nakshatras: Punarvasu/Pushya/Anuradha/Sravana/Hasta/Mrigashira/Revati/Ashwini.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/journey-long] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours 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. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
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 light. The description adds genuinely useful non-structural context: 50 credits (Tier 3) cost, the POST endpoint, and the domain rule that Friday is excluded per Yatra prakarana plus the preferred nakshatra set. It says nothing about rate limits or response shape, though an output schema exists to cover the latter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose and scope, followed by the differentiator, the nakshatra rule, and then a compact bracketed metadata block. Every line carries information; the nakshatra enumeration is long but domain-relevant. Minor overhead comes from the endpoint string, which is not actionable for a tool call.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values need no explanation, and the domain selection rules are well stated. The gap is input completeness: with 10 parameters at 40% coverage, the description never explains that latitude/longitude (defaulting to 0) determine location-specific windows, nor the ayanamsaId alias, leaving correctness of a computational tool partly undocumented.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 should compensate for the undocumented ones, but it only repeats that search_window_start is required. Latitude/longitude, search_window_end, topN, and ayanamsaId have no descriptions in either the schema or the description, so the agent gets no guidance on location-dependence or the ayanamsaId/ayanamsa duality. Only the required-parameter note adds marginal value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: an 'auspicious-window scanner for multi-day journeys (pilgrimages, relocation travel)', which is clearly a muhurat computation, not a chart lookup. It differentiates against short travel ('stricter than short travel', Friday excluded), but never names the sibling astroway_vedic_muhurat_travel, so an agent must infer which of the many sibling tools is the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives clear context for use: multi-day journeys, pilgrimages, relocation travel, and implicitly excludes short trips by claiming to be stricter than the short-travel variant. The metadata block also states the one required parameter and the credit cost, which helps an agent decide whether to call it. However, it never explicitly says 'use astroway_vedic_muhurat_travel for single-day trips', so routing is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_marriageMuhurat: Marriage (Vivah)ARead-onlyIdempotentInspect
Auspicious-window scanner for marriage (Vivah Muhurat) over a date range. Scores each day by Tithi + Vara + Nakshatra + Yoga + Karana per Muhurta Chintamani Adhyaya 5 + B.V.Raman Muhurta Ch.6. Preferred nakshatras: Rohini/Mrigashira/Magha/Hasta/Swati/Anuradha/Mula/U.Phalguni/U.Ashadha/U.Bhadrapada/Revati. Avoid Sun/Tue/Sat. Returns top-N days sorted by score with per-day Abhijit Muhurat sub-window.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/marriage] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours 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. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and non-destructive, so the safety profile is covered. The description adds real behavioral value beyond that: the scoring factors (Tithi/Vara/Nakshatra/Yoga/Karana), the classical sources cited, preferred and avoided nakshatras, the days to avoid (Sun/Tue/Sat), and the output shape (top-N sorted by score with an Abhijit sub-window). It stops short of noting the 50-credit cost or any rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first clause, followed by methodology and then output format — a logical scan-read order. Every sentence carries distinct information (source citations, preferred nakshatras, avoided weekdays, return shape) with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because an output schema exists, the description needn't explain return values, and it is complete on the astrological methodology, which is what an agent needs to trust the ranking. However, for a 10-parameter tool with only 40% schema coverage it leaves meaningful parameter semantics undocumented, so it is adequate but with a clear gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, so the description bears more burden, yet it names no parameters at all. Only weak implicit mapping exists ('date range' → search_window_start/end, 'top-N' → topN); there is no guidance on latitude/longitude, ayanamsa, timezoneOffset, precision, or fields, and no mention that search_window_start is the sole required field despite that being flagged in context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('auspicious-window scanner for marriage (Vivah Muhurat)') and immediately names the domain and scope ('over a date range'). The '(Vivah)' qualifier and marriage-specific nakshatra/scoring rules clearly distinguish it from sibling muhurat tools like business_start or vehicle_purchase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and scanning framing — an agent can infer this is for picking marriage dates — but there is no explicit when-to-use, when-not, or alternative routing (e.g. vs astroway_vedic_muhurta_types or general_auspicious). The required date window is noted only in context lines, not framed as a usage condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_name_changeMuhurat: Name changeBRead-onlyIdempotentInspect
Auspicious-window scanner for legal or sacramental name change (uses Namkaran-derived rules with widened tithi set). Preferred nakshatras: Hasta/Chitra/Swati/Pushya/Anuradha/Revati/U.Phalguni/U.Ashadha/U.Bhadrapada.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/name-change] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours 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. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
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 bar is lower. The description adds genuinely useful operational context beyond them: cost (50 credits, Tier 3), the endpoint, the required parameter, and the rule derivation. It stops short of describing result shape or window-size constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded purpose sentence followed by compact bracketed metadata; nothing is padded. The nakshatra list is long but is domain content the agent may need, not filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/required/endpoint are present. The main gap is the absence of any disambiguation from the near-identical naming_ceremony tool and no note on how a narrow search window affects results, which matters for a 10-parameter scanner.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%, and the description barely compensates: it only restates that search_window_start is required, which the schema's required array already conveys. Latitude, longitude, topN, search_window_end and ayanamsaId remain undocumented in both places, so an agent gets little help on the geolocation/timezone inputs this scanner needs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: an auspicious-window scanner for name change, with the rule basis (Namkaran-derived, widened tithi set) called out. However it does not distinguish itself from the very close sibling astroway_vedic_muhurat_naming_ceremony, and the 'Namkaran-derived' phrasing actually blurs that boundary rather than sharpening it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'for legal or sacramental name change' implies the use case, and the widened tithi set hints at scope. But there is no explicit when-to-use vs the naming_ceremony sibling, no statement of exclusions, and no guidance on choosing among the ~12 muhurat siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_naming_ceremonyMuhurat: Naming ceremony (Namkaran)BRead-onlyIdempotentInspect
Auspicious-window scanner for Namkaran (naming ceremony). Wide nakshatra acceptance per classical text. Note: orthodox practice schedules Namkaran on the 11th or 12th day after birth; this scan returns top auspicious days within any caller-supplied window.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/naming-ceremony] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours 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. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
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 real contribution is operational: the 50-credit Tier 3 cost and the requirement that search_window_start be supplied. It does not disclose pagination or result-shape behavior, but with an output schema present that is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight prose sentences followed by a structured [Group]/[Endpoint]/[Required]/[Cost] block; the purpose and the practical prerequisites are front-loaded. Slightly more than strictly needed, but nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost plus the required parameter are covered. What is missing for a 10-parameter geolocation-sensitive muhurat tool is guidance on the coordinate/timezone/ayanamsa inputs and any differentiation from the adjacent muhurat siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40% across 10 parameters, so the description carries a compensation burden it does not meet. It names search_window_start as required and implies topN ('top auspicious days'), but says nothing about latitude/longitude, ayanamsaId, fields, or the search_window_end pairing, all of which are undocumented or thinly documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('auspicious-window scanner for Namkaran') and grounds it in classical practice ('wide nakshatra acceptance'). It does not explicitly distinguish itself from the near-identical sibling astroway_vedic_muhurat_name_change, which an agent would plausibly 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The note about orthodox practice (11th/12th day after birth) and the statement that the scan returns top days in any caller-supplied window gives implied usage context. However, there is no explicit when-to-use/when-not, and no routing away from muhurat_name_change or muhurat_general_auspicious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_property_purchaseMuhurat: Property purchase / Griha PraveshBRead-onlyIdempotentInspect
Auspicious-window scanner for purchasing or moving into property (Griha Pravesh). Preferred nakshatras: Anuradha/U.Phalguni/U.Ashadha/U.Bhadrapada/Mrigashira/Rohini/Pushya/Hasta/Sravana/Dhanishta/Shatabhisha/Revati. Avoid Sun/Tue/Sat.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/property-purchase] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours 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. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
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 bar is lower. The description adds genuine domain behavior beyond that: the preferred nakshatras, the avoid Sun/Tue/Sat rule, and the 50-credit Tier 3 cost. It does not mention permissions or rate limits, but for a read-only scanner this is solid additive context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two content sentences are front-loaded with the core purpose followed by the domain rules, with no filler prose. The bracketed metadata block (group/endpoint/required/cost) is compact and useful, though slightly boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 10-parameter tool, the definition covers purpose, cost, and domain rules, and an output schema exists so return values need not be explained. It leaves gaps on the large set of unmentioned parameters and on differentiation from the broader muhurat family, making it adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 40% across 10 parameters, so the description is expected to compensate and does not. It only restates that search_window_start is required, which the schema already declares, and says nothing about latitude/longitude, timezoneOffset, topN, ayanamsa, or search_window_end semantics. The list of nakshatras describes internals of the scan, not how to fill the inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb+resource: an auspicious-window scanner for purchasing or moving into property (Griha Pravesh). That is clearly distinct from the neighboring muhurat tools (vehicle_purchase, marriage, investment, etc.). It stops short of explicitly naming a sibling to differentiate against, but the domain scoping is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The domain context (buying or moving into property) implies when the tool applies, so an agent can infer the use case. However, no explicit when-to-use vs alternatives guidance is given, and with a large family of muhurat_* siblings a note such as 'use general_auspicious for non-property events' would materially help selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_surgeryMuhurat: Surgery (Shastrakarma)ARead-onlyIdempotentInspect
Auspicious-window scanner for elective surgery. Inverted polarity vs benefic activities: Tue/Sat (Mars/Saturn) preferred for cutting work; Sun/Mon/Thu/Fri avoided. Output is advisory only, and modern medical scheduling takes precedence.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/surgery] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours 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. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the burden is light — and the description still adds meaningful context: the counterintuitive Tue/Sat preference for 'cutting' work, the advisory-only framing with medical scheduling taking precedence, and the 50-credit Tier 3 cost. The polarity rule is exactly the kind of behavior an agent would otherwise get wrong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three front-loaded sentences carry the core meaning with no filler, followed by a compact metadata block (group, endpoint, required, cost). Efficient, though the bracketed metadata is somewhat boilerplate rather than descriptive prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. The description supplies purpose and the advisory caveat, but for a geo-dependent muhurat tool it is silent on coordinate/timezone expectations and on the non-obvious equator default.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40% across 10 parameters, and the description contributes nothing about them beyond restating the single required 'search_window_start' (already enforced by the schema). Key parameters such as latitude/longitude (defaulting to 0, i.e. the equator/Atlantic), topN, ayanamsaId, and search_window_end are left unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('auspicious-window scanner for elective surgery') that cleanly distinguishes this tool from the many sibling muhurat scanners (marriage, travel, property, business). The added note that polarity is inverted relative to benefic activities makes the tool's output semantics unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'inverted polarity vs benefic activities' remark implicitly steers the agent toward the other muhurat_* tools for benefic events, and the advisory caveat bounds expectations. However, there is no explicit when-to-use/when-not-to-use statement or named alternative for non-surgical timing queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurat_travelMuhurat: Travel (short Yatra)BRead-onlyIdempotentInspect
Auspicious-window scanner for short / daily travel. Preferred nakshatras: Ashwini/Pushya/Anuradha/Hasta/Sravana/Mrigashira/Punarvasu/Revati. Avoid Sun/Tue/Sat.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/travel] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours 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. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly/idempotent/non-destructive, so the description correctly focuses on complementary facts: the credit cost (50 credits, Tier 3), the endpoint, and the required parameter. This adds budgeting and invocation context beyond the structured fields, though nothing about latency or result shape (the output schema covers the latter).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences are front-loaded with the purpose and scanning rules, followed by scannable bracketed metadata. There is no filler prose, though the metadata block adds lines without additional semantic content beyond routing and cost.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema means return values need not be explained, but for a 10-parameter scanner with 40% schema coverage the description is thin: it says nothing about the search-window semantics, topN behavior, or the fact that latitude/longitude default to 0 (an ambiguous default location). Adequate for routing, incomplete for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40% across 10 parameters, and the description compensates almost nothing: it merely restates 'Required: search_window_start', which the schema already marks required. Key parameters such as topN, latitude/longitude (defaulting to 0), ayanamsa, precision, and fields receive no clarifying meaning from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('auspicious-window scanner') and a precise scope ('short / daily travel'), which implicitly separates it from the long-journey muhurat sibling. It does not name or contrast an alternative tool explicitly, so it falls 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives domain selection criteria (preferred nakshatras, avoid Sun/Tue/Sat) but never states when to choose this tool over the muhurat_journey_long or muhurat_general_auspicious siblings. Usage is implied by the 'short / daily travel' scope 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_vedic_muhurat_vehicle_purchaseMuhurat: Vehicle purchaseARead-onlyIdempotentInspect
Auspicious-window scanner for buying a new vehicle. Preferred nakshatras: Ashwini/Pushya/Hasta/Chitra/Anuradha/Revati/U.Phalguni/U.Ashadha/U.Bhadrapada/Sravana. Avoid Sun/Sat. Same scoring shape as /vedic/muhurat/marriage.
[Group: Vedic] [Endpoint: POST /v1/vedic/muhurat/vehicle-purchase] [Required: search_window_start] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| topN | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| timezoneOffset | No | Hours 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. | |
| search_window_end | No | ||
| search_window_start | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| activity | No | |
| ayanamsa | No | |
| location | No | |
| search_window | No | |
| auspiciousWindows | No | |
| nextAuspiciousWindow | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only/idempotent safety profile, so the bar is lower. The description adds genuinely useful behavior beyond that: the preferred nakshatra set, the Sun/Sat avoidance rule, and the cost tier (50 credits, Tier 3).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Money sentences are front-loaded, and the bracketed metadata block is easy to scan. It is dense but every element (nakshatras, cost, endpoint, required field) earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, with 10 parameters and 40% schema coverage, several inputs remain undocumented in both places, leaving the description adequate but incomplete for a tool of this surface area.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40% across 10 parameters. The description repeats only that search_window_start is required (already in the schema) and adds nothing for topN, fields, ayanamsa, precision, latitude/longitude, or timezoneOffset, so it fails to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: 'Auspicious-window scanner for buying a new vehicle.' The vehicle framing cleanly distinguishes it from the many sibling muhurat tools (property_purchase, marriage, travel, etc.), so an agent can route without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The vehicle-purchase scope makes the intended situation clear, and it cross-references 'Same scoring shape as /vedic/muhurat/marriage' for the output. It offers no explicit when-not or sibling routing (e.g., vs. general_auspicious), so it stops short of full 5-level guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_muhurta_typesMuhurat: activity catalogueARead-onlyIdempotentInspect
List the 12 supported muhurat activities (key + Sanskrit name + one-line purpose) so a client can discover them without hard-coding. Free metadata read, no calculation.
[Group: Vedic] [Endpoint: GET /v1/muhurta/types] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| activities | No |
TDQS
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 adds real behavioral context beyond them: 'Free metadata read, no calculation' sets cost and computational expectations. However, the 'Free metadata read' claim sits awkwardly against the auto-generated 'Cost: see your plan — endpoint not in the public credit manifest', leaving the cost signal slightly muddled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is tight and front-loaded, delivering purpose, content, and the non-calculation caveat immediately. The trailing bracketed metadata (group/endpoint/cost) adds length but is clearly structured and skimmable, so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 it even summarizes them anyway. Combined with full annotation coverage and fully-documented optional params, nothing essential is missing; only the guidance on how it fits into a muhurat workflow is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both optional parameters (fields, precision) are fully self-documented in the schema. The description adds nothing about them, which is the correct baseline-3 outcome when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise verb (list) and resource (the 12 supported muhurat activities) and even spells out the return shape: key + Sanskrit name + one-line purpose. The phrase 'no calculation' distinguishes it from the many astroway_vedic_muhurat_* calculation siblings, so an agent can tell this is a discovery/catalogue tool rather than a chart computation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'So a client can discover them without hard-coding' implies the intended use — enumerate activity keys before invoking a specific muhurat calculation — but it never says when to use this versus a calculation endpoint, nor names an alternative. Usage is inferable rather than stated, which lands at minimum-viable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_nakshatrasNakshatrasBRead-onlyIdempotentInspect
Calculate the Nakshatra (lunar mansion) for each planet using the sidereal zodiac. Returns nakshatra name, pada, deity, and quality.
[Group: Vedic] [Endpoint: POST /v1/nakshatras] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| planets | No | |
| ayanamsaId | No |
TDQS
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 that computation is sidereal and lists the output payload, and the metadata discloses a 20-credit (Tier 2) cost, which is real value beyond annotations; however it says nothing about rate limits, ayanamsa defaults, or timezone requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences front-load the calculation and the return payload, followed by a compact metadata block. Nothing is padded or redundant, though the bracketed lines are somewhat boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so explaining return values is not strictly required, and required inputs plus cost are supplied. For a 15-parameter calculation with 33% schema coverage, however, the description leaves notable gaps around the sidereal configuration options and timezone handling that an agent would need to resolve elsewhere.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate more than it does. It does name the four required inputs and pins the zodiac mode to sidereal, which is useful, but it says nothing about the compact-mode fields, ayanamsa school selection, or the timezone/timezoneOffset interplay, leaving that burden entirely to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Calculate the Nakshatra (lunar mansion) for each planet using the sidereal zodiac') and even names the returned fields. The 'for each planet' scope implicitly separates it from the per-day sibling astroway_vedic_panchang_nakshatra_of_day, but that sibling is never named, so 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this tool over the many other Vedic calculation siblings, and no prerequisites or exclusions. The bracketed metadata lists required inputs and credit cost, which is practical context, but that is not usage guidance about when the tool 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_vedic_panchang_choghadiaPanchang: ChoghadiaBRead-onlyIdempotentInspect
8 day + 8 night Choghadia divisions. Each ~1.5h, marked good/bad/neutral. Cycle: Udveg, Char, Labh, Amrit, Kaal, Shubh, Rog. Day-start by weekday.
[Group: Vedic] [Endpoint: POST /v1/vedic/panchang/choghadia] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| sunset | No | |
| daytime | No | |
| sunrise | No | |
| nighttime | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive. The description adds practical context: POST endpoint, required parameters, 20-credit Tier 2 cost, and the division/cycle model. It still does not explain auth or response behavior, but output schema and annotations carry much of that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence front-loads the core concept, followed by a compact cycle list and bracketed metadata. It is tight and scannable, though the metadata block could be integrated more cleanly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter Vedic calculation with no output-schema burden, the description covers the concept and required inputs but omits how this tool relates to other panchang endpoints and how optional astrological settings affect results. Annotations and output schema fill safety/return gaps, leaving usage and parameter context thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Coverage is only 33% across 15 parameters. The description repeats the four required parameters already present in the schema and adds no meaning for optional parameters such as ayanamsa, timezone, fields, precision, or houseSystem.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the specific Choghadia divisions, their count/duration and quality marks, so it is clearly not panchang_full or hora. It does not explicitly name sibling alternatives, which keeps it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no contrast with other panchang tools such as hora, karana, tithi, rahu_kaal, or yoga. Required inputs are listed, but that is invocation data 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_vedic_panchang_fullPanchang: fullARead-onlyIdempotentInspect
Complete daily Panchang: Tithi, Vara, Karana, Yoga, Nakshatra + Choghadia + Rahu Kaal + Yamaganda + Gulika + Abhijit Muhurat. Single call. Tithi, karana, yoga and nakshatra carry endsAt (local ISO time with offset); sunNakshatra, moonrise and moonset (first after sunrise, disc centre on the horizon as panchangs count it; null when the Moon does not rise or set within 30 hours). muhurtas: Brahma Muhurta, Pratah and Sayahna Sandhya, Vijaya, Godhuli, Nishita, durMuhurtam, amritKalam and varjyam (lists), each { start, end } in local ISO time.
[Group: Vedic] [Endpoint: POST /v1/vedic/panchang/full] [Required: date, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | moment (default): tithi, nakshatra, yoga and karana at date + time. sunrise: at local sunrise of that date, as a printed panchang gives them; time may be omitted. | |
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| jd | No | |
| vara | No | |
| yoga | No | |
| tithi | No | |
| gulika | No | |
| karana | No | |
| sunset | No | |
| sunrise | No | |
| ayanamsa | No | |
| muhurtas | No | |
| rahuKaal | No | |
| choghadia | No | |
| nakshatra | No | |
| tarabalam | No | |
| yamaganda | No | |
| chandrabalam | No | |
| abhijitMuhurat | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so safety is covered. The description adds real non-obvious behavior: `endsAt` semantics, the sunrise-referenced moonrise/moonset convention ('disc centre on the horizon as panchangs count it') and the null rule when the Moon does not rise/set within 30 hours. It stops short of stating computation basis (ayanamsa default, zodiac) which matters for a sidereal panchang.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the component inventory, then moves to time/return semantics in dense but economical sentences; no filler prose. The trailing [Group]/[Endpoint]/[Required]/[Cost] block is boilerplate but does add transport and cost facts that are otherwise unavailable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description still supplies the interpretive details an agent needs to read the response correctly (endsAt offsets, null conditions, muhurta list shapes). Combined with the cost/endpoint block, an agent has enough to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38% across 16 parameters, so the description is expected to compensate but addresses no parameter at all — it never mentions date/time, latitude/longitude, the `at` moment-vs-sunrise switch, timezone, ayanamsa or the `fields`/`precision` compact mode. The only thing close to parameter meaning is the sunrise timing convention, which is about output rather than inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (complete daily Panchang) and enumerates exactly which elements it returns (Tithi, Vara, Karana, Yoga, Nakshatra, Choghadia, Rahu Kaal, Yamaganda, Gulika, Abhijit Muhurat, muhurtas). This enumeration distinguishes it at a glance from the single-element siblings such as panchang_tithi, panchang_rahu_kaal and panchang_choghadia, which return just one component.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: 'Single call' plus the full component list signals this is the aggregate tool to pick when you want everything, and the granular siblings exist for single components. However, there is no explicit when-to-use / when-not sentence, no guidance on preferring a cheaper sibling, and no mention of the credit cost tradeoff (20 credits, Tier 2).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_panchang_horaPanchang: HoraCRead-onlyIdempotentInspect
24 planetary hours per Chaldean order, with sunrise/sunset and day ruler.
[Group: Vedic] [Endpoint: POST /v1/vedic/panchang/hora] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| date | No | |
| hours | No | |
| latitude | No | |
| sunTimes | No | |
| timezone | No | |
| dayOfWeek | No | |
| longitude | No | |
| dayRulerPlanetId | No | |
| dayRulerPlanetName | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive behavior, so the safety profile is covered. The description usefully adds the cost (20 credits, Tier 2) and the shape of the returned content, but says nothing about determinism, location sensitivity, or the polar-latitude edge case where sunrise/sunset are undefined.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose in one sentence, with zero filler and no repetition. The bracketed metadata block is rote but compact and skimmable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, location-and-timezone-sensitive Vedic calculation, a one-line purpose plus metadata leaves the agent without routing guidance or parameter meaning. The presence of an output schema and annotations removes some burden, but the high parameter complexity is unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description should compensate, yet it merely restates the four required parameters already declared in the schema. It contributes nothing about ayanamsa, zodiacType, houseSystem, timezone, or precision, which materially change the Hora output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase '24 planetary hours per Chaldean order, with sunrise/sunset and day ruler' names a concrete resource and scope (the Hora division of the day) and implicitly separates it from the tithi/karana/yoga/nakshatra siblings. It lacks an explicit compute/get verb and never names a sibling, so it is clear but not maximally differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to call this versus panchang_full, panchang_choghadia, or any other panchang tool, and no prerequisites or exclusions. The bracketed metadata gives required inputs and cost, but that is operational data, 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_vedic_panchang_karanaPanchang: KaranaCRead-onlyIdempotentInspect
Half-tithi (1-60). 7 movable (Bava-Vishti) + 4 fixed (Kimstughna, Shakuni, Naga, Chatushpada).
[Group: Vedic] [Endpoint: POST /v1/vedic/panchang/karana] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| index | No | |
| isFixed | No |
TDQS
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 fully covered. The description adds genuinely new operational context — the endpoint and a 20-credit Tier 2 cost — which is useful for an agent budgeting calls, but it says nothing about output shape or edge cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded domain definition followed by bracketed endpoint/required/cost metadata; no filler sentences. Efficient, though the bracket lines are slightly redundant with the schema's required list.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema and annotations exist, so return values and safety need not be re-explained. However, for a 15-parameter tool at 33% schema coverage, the near-total absence of parameter and usage guidance leaves the definition under-specified for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a heavy burden and does not meet it. It restates the four required fields (date, time, latitude, longitude) but adds nothing about timezone handling, ayanamsa, fields/precision compact mode, or the other optional inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description defines what Karana is (half-tithi, 1-60, with named movable/fixed types), which orients an agent to the domain but never states the tool's action — it does not say it returns the karana active at a given date/time/location. Nothing distinguishes it from sibling panchang tools such as panchang_tithi, panchang_yoga, or panchang_full.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternative named, despite many sibling panchang tools that overlap (panchang_full, panchang_tithi, panchang_yoga, panchang_nakshatra_of_day). The '[Required: ...]' line lists inputs but is 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_vedic_panchang_nakshatra_of_dayPanchang: Nakshatra of DayBRead-onlyIdempotentInspect
Moon's sidereal Nakshatra (lunar mansion) at the given moment, with Pada (1-4) and percent-complete.
[Group: Vedic] [Endpoint: POST /v1/vedic/panchang/nakshatra-of-day] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| pada | No | |
| nakshatra | No | |
| percentComplete | No | |
| moonSiderealLongitude | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and openWorldHint=false, so the safety profile is covered. The description adds useful operational context beyond that - the cost (20 credits, Tier 2), the endpoint, and the shape of the result (nakshatra, pada, percent-complete) - which is helpful but not rich behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the payload definition, with metadata brackets kept separate. Every line (group, endpoint, required, cost) carries information, though the 'Required' line largely duplicates the schema's required array.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 safety profile is covered by annotations. However, for a 15-parameter tool with 33% schema coverage, the description omits any guidance on the optional ayanamsa, timezone, fields and precision parameters, leaving real gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description needs to compensate but does not. It merely restates the four required fields already declared in the schema's `required` array and adds nothing about ayanamsa, timezone/timezoneOffset, fields, precision, or houseSystem.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb-resource pair ('Moon's sidereal Nakshatra ... with Pada (1-4) and percent-complete'), so an agent knows exactly what comes back. It is clear, but it never distinguishes itself from the many panchang siblings (panchang_full, panchang_tithi, panchang_yoga, etc.), so the agent must infer that this is the single-nakshatra slice rather than the composite.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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' line and endpoint hint at a computed ephemeris lookup, but nothing tells the agent to prefer panchang_full when several panchang elements are needed, nor what preconditions (e.g. geocoding to lat/long) apply.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_panchang_rahu_kaalPanchang: Rahu Kaal blockBRead-onlyIdempotentInspect
Three inauspicious 1.5h-windows (Rahu Kaal + Yamaganda + Gulika) + Abhijit Muhurat. Position depends on weekday and sunrise/sunset.
[Group: Vedic] [Endpoint: POST /v1/vedic/panchang/rahu-kaal] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| gulika | No | |
| sunset | No | |
| sunrise | No | |
| rahuKaal | No | |
| yamaganda | No | |
| abhijitMuhurat | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, so the safety profile is covered. The description usefully adds that window positions depend on weekday and sunrise/sunset, and discloses cost tier and endpoint, but says nothing about precision of the windows or required permission/auth beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded content line followed by compact bracketed metadata (group, endpoint, required, cost). Every element is short and earns its place, though the repeated 'required' line duplicates the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 required inputs and cost. But for a 15-parameter tool at 33% schema coverage with no usage guidance, it leaves meaningful gaps for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description needs to compensate but does not. It merely restates the four required fields (date, time, latitude, longitude) already present in the schema's 'required' array, and leaves undocumented params like city, name, cosmogram, zodiacType, and houseSystem unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the concrete output content — Rahu Kaal, Yamaganda, Gulika (three 1.5h windows) plus Abhijit Muhurat — so an agent knows exactly what this resource returns. It does not, however, explicitly differentiate itself from sibling Panchang tools like panchang_choghadia, which also deal with inauspicious time windows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternative named. An agent cannot tell from the text whether to call this versus astroway_vedic_panchang_choghadia or astroway_vedic_panchang_full for inauspicious timing questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_panchang_tithiPanchang: TithiBRead-onlyIdempotentInspect
Lunar day (1-30): Moon-Sun elongation / 12°. Returns paksha (shukla/krishna), tithi name, % complete.
[Group: Vedic] [Endpoint: POST /v1/vedic/panchang/tithi] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| number | No | |
| paksha | No | |
| elongation | No | |
| indexInPaksha | No | |
| percentComplete | No |
TDQS
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 new context: credit cost and tier ('20 credits (Tier 2)'), the transport endpoint, and the required-input set — real operational context that annotations do not carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core definition, then compact bracketed metadata (group, endpoint, required, cost). It is dense but every line carries information; no filler prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, though the description helpfully names the three returned fields. For a 15-parameter tool with 33% schema coverage and many near-identical panchang siblings, the description is minimally adequate but leaves parameter and sibling-selection gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and largely does not. It restates the four required fields already marked required in the schema, but says nothing about zodiacType, houseSystem, ayanamsaId, cosmogram, city or name, leaving a large documentation gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a precise verb-adjacent definition: 'Lunar day (1-30): Moon-Sun elongation / 12°', and names the concrete outputs (paksha, tithi name, % complete). An agent knows exactly what computation this performs. It does not, however, distinguish it from sibling panchang tools (panchang_full, nakshatra_of_day, karana, yoga), several of which also touch tithi-adjacent daily values.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Prerequisites are explicit ('Required: date, time, latitude, longitude') and the endpoint/cost framing implies when the call is warranted. But there is no 'use this vs panchang_full' guidance, and no exclusions, so usage is only implied by the definition of a tithi.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_panchang_yogaPanchang: YogaCRead-onlyIdempotentInspect
Surya-Chandra Yoga (1-27). Sum of Sun + Moon longitudes / (360/27).
[Group: Vedic] [Endpoint: POST /v1/vedic/panchang/yoga] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| number | No | |
| sumLongitude | No |
TDQS
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 marginally useful operational context via the endpoint path and the cost (20 credits, Tier 2), but says nothing about permissions, rate limits, or what the returned Yoga value looks like beyond the range.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the concept name and value range, and the bracketed metadata block is scannable. The formula sentence is slightly ambiguous (imprecise operator precedence), but nothing is padded and it reads in seconds.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool where two-thirds of parameters lack schema descriptions, the description does not fill the gap: it never explains the optional controls (ayanamsa, timezone, precision, fields, houseSystem) or how the result relates to the full panchang. An output schema exists, so return values need no explanation, but the input-side guidance is materially incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so several inputs (city, name, cosmogram, ayanamsaId, zodiacType, houseSystem, date, time, latitude, longitude) carry no documentation anywhere. The description merely repeats the four required parameter names that the schema already enforces and adds no meaning, format, or default guidance to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific resource (Surya-Chandra Yoga, the Yoga limb of Panchang, values 1-27) and even gives the underlying formula, which cleanly separates it from the sibling panchang tools for tithi, karana, nakshatra, hora and choghadia. However it never explicitly routes the agent away from panchang_full, so the differentiation is implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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: nothing tells the agent to pick this over astroway_vedic_panchang_full or the other limb-specific panchang tools. The bracketed [Required:] line only restates schema essentials and provides no 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_vedic_shadbala_cheshtaShadbala: Cheshta (motional)BRead-onlyIdempotentInspect
Cheshta Bala, motional strength via simplified retrograde+speed model: retrograde=60v, direct slow=ratio*60, direct fast=(2-ratio)*60. Sun=0 (handled via Ayana with ×2), Moon=0 (handled via Paksha with ×2). Full BPHS Cheshta-Kendra method (mean-longitude based) is not implemented yet; current divergence vs jhora ≤30v on non-stationary dates.
[Group: Vedic] [Endpoint: POST /v1/vedic/shadbala/cheshta] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| type | No | |
| unit | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare a safe read-only, idempotent operation, but the description goes far beyond them: it discloses the exact simplified retrograde/speed formula, the exception handling for Sun and Moon, the fact that the full BPHS Cheshta-Kendra method is not implemented, and a quantified divergence bound versus jhora. These are the limitations an agent genuinely needs to judge output trustworthiness.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but front-loaded: the tool identity leads, then the model, then caveats, then the metadata block. The formulas are technical but arguably earn their place by letting an agent reason about the strength values; there is little outright filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 thoroughly covers the computational model and its limitations. However, for a 15-parameter tool with low schema coverage it omits any parameter-level guidance and any usage routing against shadbala_full, so it is adequate for behavior but incomplete for invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate, yet it says nothing about date, time, latitude, longitude, ayanamsa, timezone, precision, or the compact 'fields' mode. Only the implicit 'speed/retrograde' concept relates to the computation, leaving most parameters undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb/resource: 'Cheshta Bala, motional strength', which is one of the six Shadbala components and identifies it apart from siblings like shadbala_dig, kala, sthana, naisargika and drik. An agent can tell it computes one specific strength component, but the description never explicitly contrasts it with astroway_vedic_shadbala_full, which is the obvious alternative for a complete six-fold score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 statement of when Cheshta alone is preferable to shadbala_full, and no prerequisites such as needing a chart or ayanamsa context. The Sun=0 / Moon=0 notes explain internal scoring conventions rather than routing the agent to the right tool, so this is effectively absent guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_shadbala_digShadbala: Dig (directional)ARead-onlyIdempotentInspect
Dig Bala: directional strength. 60v at preferred kendra cusp, 0v at opposite point, linear gradient. Sun/Mars→10th, Moon/Venus→4th, Jupiter/Mercury→1st, Saturn→7th.
[Group: Vedic] [Endpoint: POST /v1/vedic/shadbala/dig] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| type | No | |
| unit | No | |
| items | No |
TDQS
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 bar is lower. The description adds useful context beyond that: a specific cost of 20 credits (Tier 2), the endpoint, and the required parameter set. It does not discuss return values, but an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the key astrological semantics before the bracketed metadata. The bracket lines repeat some information available elsewhere, but cost and endpoint are useful and the whole is efficiently sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter endpoint with a rich output schema and strong annotations, the description covers purpose and cost but omits usage guidance and parameter semantics. An agent can invoke it correctly for the required fields, but the optional parameters remain opaque beyond their schema entries.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description needs to compensate for underspecified parameters. It does not: it merely lists the four required parameter names, adding no meaning beyond the schema's required list, and says nothing about the optional ayanamsa, timezone, houseSystem, precision, or fields parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the exact astrological quantity computed — Dig Bala, directional strength — and gives its formula (60v at preferred kendra, 0v opposite, linear gradient) plus planet-house mappings. This cleanly distinguishes it from sibling Shadbala tools such as sthana, kala, cheshta, drik, and naisargika.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no alternative sibling is named (e.g., use shadbala_full for all components). The astrological definition implies the context, but the description 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_vedic_shadbala_drikShadbala: Drik (aspectual)BRead-onlyIdempotentInspect
Drik Bala, net aspectual strength per BPHS A.27.49: (benefic_drishti − malefic_drishti) / 4 + full Mercury_drishti + full Jupiter_drishti. Mercury and Jupiter aspects super-add (full weight). Vedic full drishti: 7th for all + Mars 4/8, Jupiter 5/9, Saturn 3/10.
[Group: Vedic] [Endpoint: POST /v1/vedic/shadbala/drik] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| type | No | |
| unit | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, non-destructive read. The description adds genuinely non-redundant operational context: the POST endpoint and a cost of 20 credits (Tier 2), which is exactly the kind of rate/cost disclosure that annotations cannot convey. It stops short of describing anything about the returned structure, but an output schema exists so that is not required here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core formula is front-loaded in the first sentence and the operational metadata is cleanly bracketed at the end. No filler sentences. The drishti-rule sentence is dense but legitimately needed to interpret the result, so it earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter domain calculation the definition covers the mathematics well and an output schema handles the return shape. What is missing is family context: sitting among six Shadbala components plus a full composite, the agent gets no signal about which to call or whether this feeds into shadbala_full. Adequate but with a real gap for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% across 15 parameters, so the description carries extra burden — yet it says nothing about any parameter beyond restating the four required ones, which the schema already marks as required. The many undescribed inputs (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId, the raw coordinates) get no clarification, and the drishti narrative is about the output, not the inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific computed quantity (net aspectual strength) with the exact formula and the BPHS chapter-verse citation, plus the drishti rules used. An agent knows precisely what this returns. It does not, however, draw any contrast with the sibling Shadbala tools (drik vs dig vs kala vs shadbala_full), so differentiation rests on 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.
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 statement of when Drik Bala is the right component versus astroway_vedic_shadbala_full or the other five Shadbala parts, and no prerequisites or follow-up suggestions. The description is purely a formula spec, leaving routing entirely to inference from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_shadbala_fullShadbala: full summaryBRead-onlyIdempotentInspect
Combined Shadbala: всі 6 типів strength + total Virupa + total Rupa per planet. Single call. Useful for Vedic chart strength dashboards.
[Group: Vedic] [Endpoint: POST /v1/vedic/shadbala/full] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| type | No | |
| unit | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (read-only, idempotent, non-destructive), so the description earns credit for adding operational context beyond them: the HTTP endpoint, the 20-credit Tier 2 cost, and the four required parameters. It does not mention latency or response size for a consolidated six-fold calculation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core capability in one sentence, followed by compact bracketed metadata (group, endpoint, required, cost). Slight noise from the mixed-language fragment 'всі 6 типів' and the bracket block, but no wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 safety profile is in annotations. However, for a 15-parameter tool with 33% schema coverage and dense sibling overlap, the description leaves the agent guessing about optional parameters and about which Shadbala variant to pick.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must carry more weight than it does. It restates the four required parameters already declared in the schema's required list, and says nothing about the many optional knobs (ayanamsa/ayanamsaId, zodiacType, houseSystem, timezone vs. timezoneOffset, fields, precision) that materially change the result.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Combined Shadbala ... all 6 types strength + total Virupa + total Rupa per planet'), and 'Single call' hints that it consolidates the work of the six sibling component tools (sthana, dig, kala, cheshta, naisargika, drik). It never names those siblings, so the differentiation is inferable rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an implied context ('Useful for Vedic chart strength dashboards') but no explicit when-to-use/when-not guidance and no mention of the six per-component Shadbala siblings that an agent must choose between. 'Single call' is the only routing hint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_shadbala_kalaShadbala: Kala (temporal)BRead-onlyIdempotentInspect
Kala Bala, sum of Nathonnatha (continuous time-from-midnight/noon), Paksha (continuous Moon-Sun elongation, Moon-doubled per BPHS), Tribhaga (3-fold split of day/night), Abda+Masa+Vara+Hora rulers, Ayana (declination-based, Sun-doubled, Mercury bidirectional). Yuddha (planetary war) deferred. Abda/Masa rulers require Vedic calendar lookup, currently zeroed (no contribution) to avoid double-counting Vara.
[Group: Vedic] [Endpoint: POST /v1/vedic/shadbala/kala] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| type | No | |
| unit | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds genuinely useful behavioral context: Yuddha (planetary war) is deferred, Abda/Masa rulers are currently zeroed to avoid double-counting Vara, and the call costs 20 credits. Disclosing degraded/incomplete output this way is exactly the value structured fields cannot convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The substantive content is front-loaded into a single dense sentence enumerating the computed components, followed immediately by the caveats that matter. The bracketed metadata lines are boilerplate but compact, and no sentence is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 adequately covers what is computed and what is intentionally omitted. However, for a read-only computation tool with 15 parameters, it leaves the non-required configuration parameters entirely unaddressed, which is a notable gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only 33% schema description coverage, the description is expected to compensate, but it only restates the four required parameters (date, time, latitude, longitude), which are already marked required in the schema. It adds no meaning for the other eleven parameters such as ayanamsa, zodiacType, houseSystem, or the compact-mode fields/precision options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific Shadbala component (Kala Bala) and enumerates exactly which sub-components it computes (Nathonnatha, Paksha, Tribhaga, Ayana, etc.), so an agent knows precisely what is being calculated. It does not, however, explicitly distinguish itself from siblings like astroway_vedic_shadbala_full or the other individual balas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance. The description never says when this sub-bala should be called versus shadbala_full or the other five balas, nor any prerequisites beyond the required params. Usage is entirely implied by the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_shadbala_naisargikaShadbala: Naisargika (natural)ARead-onlyIdempotentInspect
Naisargika Bala: fixed natural strength per planet. Sun=60v, Moon=51.43, Venus=42.85, Jupiter=34.28, Mercury=25.71, Mars=17.14, Saturn=8.57.
[Group: Vedic] [Endpoint: POST /v1/vedic/shadbala/naisargika] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| type | No | |
| unit | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: the operation is a fixed lookup (values are constants independent of the chart), it is a Tier 2 paid call costing 20 credits, and it lists required inputs. That is more than most read-only tool descriptions provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
What the tool computes is front-loaded in the first sentence, followed by a compact metadata block. The constant table earns its place by defining the output semantically, and there is no redundant prose. Only minor overhead comes from bracketed operational tags.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, so the description need not address reversibility. It supplies the required inputs, cost tier, and the crucial fact that results are chart-independent constants, which is the key thing an agent needs to interpret output. It could still note whether optional chart parameters (ayanamsa, houseSystem) affect this specific computation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description should compensate, but it merely restates the four required parameters already marked required in the schema (date, time, latitude, longitude). It adds no meaning for the eleven other parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsa variants) and gives no syntax hints beyond what the schema documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific Shadbala component (Naisargika Bala) and explains what it yields: fixed natural strength per planet, going so far as to list the constant values. This distinguishes it from the sibling Shadbala components (cheshta, dig, drik, kala, sthana, full), though it never explicitly contrasts itself with shadbala_full. The verb is implicit ('compute/return') but the resource and its meaning are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the component name and the listed constants; there is no explicit statement of when to prefer this over astroway_vedic_shadbala_full or the other Shadbala siblings. The endpoint/required/cost lines give operational context but not selection guidance. An agent can infer the use case but must reason it out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_shadbala_sthanaShadbala: Sthana (positional)BRead-onlyIdempotentInspect
Sthana Bala, the sum of 5 sub-strengths: Ucchabala (exaltation), Saptavargaja (sum across 7 vargas D1/D2/D3/D7/D9/D12/D30 with Mulatrikona+Own/Friend/Neutral/Enemy weights per BPHS A.27.10-19), Ojhayugmarasyamsa (odd/even sign suitability D1+D9), Kendradi (60/30/15 angular/succedent/cadent), Drekkana (1st/2nd/3rd third gender match).
[Group: Vedic] [Endpoint: POST /v1/vedic/shadbala/sthana] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| type | No | |
| unit | No | |
| items | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real substance by naming the BPHS rule set (A.27.10-19), the varga set, and the weighting scheme, plus the cost tier. It does not, however, disclose response shape or that the result is deterministic per chart, which the annotations already imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence for the concept plus a bracketed metadata block, with the core definition front-loaded. The parenthetical component list is information-rich rather than filler, though it could be trimmed for an agent that only needs selection cues.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. What is missing is when to prefer this over the other shadbala endpoints and any hint at the 15 mostly-undocumented parameters, leaving the definition adequate but incomplete for a Tier-2 paid calculation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, and the description says nothing about any parameter — not the ayanamsa selection, the timezone/timezoneOffset interplay, the fields compact mode, or the four required inputs. With low coverage the description is expected to compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact quantity computed ('Sthana Bala, the sum of 5 sub-strengths') and enumerates the five components, which distinguishes it from sibling shadbala sub-tools (dig, kala, cheshta, drik, naisargika) and from shadbala_full. It never states in plain terms that it returns positional strength values, but a competent agent can infer the output.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to use this tool rather than astroway_vedic_shadbala_full or the other shadbala sub-tools, and no prerequisites or context beyond the required-input line. The agent must infer routing from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d1Varga D1: RashiBRead-onlyIdempotentInspect
Sidereal natal sign chart (Rashi). Foundation of Vedic analysis.
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D1] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile thoroughly (readOnlyHint=true, idempotentHint=true, destructiveHint=false, openWorldHint=false), so the description's burden is lighter. It usefully adds the endpoint and the cost (20 credits, Tier 2), which are behavioral facts an agent needs. It says nothing about resolution behavior (which ayanamsa/house system defaults apply), but an output schema exists, so return-format disclosure is not required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and the bracketed metadata lines are compact and scannable. Endpoint, required set, and cost each carry distinct value; almost no waste, though 'Foundation of Vedic analysis' is the only line that is purely editorial.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 metadata is a genuine plus for a paid tool. However, for a 15-parameter chart calculator with only 33% schema description coverage, the definition leaves the agent guessing about defaults (Lahiri ayanamsa, house system 'P') and compact-mode options that materially change the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate — but it merely restates the four required parameters (date, time, latitude, longitude), which are already enforced by the schema's required array. Optional but consequential inputs like ayanamsa, houseSystem, precision, fields, and zodiacType get no mention from the description at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource — 'Sidereal natal sign chart (Rashi)' — and frames it as the 'Foundation of Vedic analysis', which gives it a distinct role among the many varga siblings (D2, D3, D9, etc.). It does not explicitly tell the agent how D1 differs operationally from those siblings, but the 'foundation' framing works as implicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no alternatives are named. The 'Foundation of Vedic analysis' phrasing hints that this is the base chart other analyses build on, but that is inference, not instruction. The required-params and cost lines are operational metadata, 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_vedic_varga_d10Varga D10: DasamsaBRead-onlyIdempotentInspect
Dasamsa chart (career, profession, public reputation).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D10] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotent/non-destructive/openWorld=false, so the safety profile is covered. The description adds genuinely useful non-schema context: the endpoint (POST /v1/vedic/varga/D10), the required input set, and a cost of 20 credits (Tier 2), which no annotation conveys. It says nothing about payload size, latency, or ayanamsa-sensitive behavior, so a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely compact and front-loaded: purpose first, then bracketed metadata blocks for group, endpoint, required params, and cost. Nothing is wasted, though the tag lines are boilerplate rather than prose that earns emphasis.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 required inputs plus cost are stated. However, for a 15-parameter chart computation where school/house-system choices change results, the description leaves the agent to infer everything optional from a partially documented schema, making it adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the description is expected to compensate, yet it merely restates the four required parameters that the schema already marks as required. The numerous optional parameters that materially affect output (houseSystem, zodiacType, ayanamsa, fields, precision) are given no explanation in the description, leaving the low-coverage gap unfilled.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific artifact (Dasamsa / D10 divisional chart) and glosses its astrological domain (career, profession, public reputation), which meaningfully distinguishes it from the crowded varga family (d9 marriage, d7 children, etc.). It is clear what the tool produces, but it never explicitly contrasts itself with those sibling varga endpoints, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical domain hint implies when an agent would reach for D10 (career questions), but there is no explicit when-to-use/when-not-to-use statement and no named alternative among the ~20 sibling varga tools. Usage is inferable 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_vedic_varga_d12Varga D12: DwadasamsaCRead-onlyIdempotentInspect
Dwadasamsa chart (parents, ancestral karma).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D12] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description adds genuinely new operational context — the POST endpoint, the 20-credit Tier 2 cost, and the required inputs — which is real value, though it says nothing about latency, caching, or how the D12 result differs from the base chart. Cost disclosure is the main non-annotation contribution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is compact and front-loaded: the chart identity and purpose come first, metadata after. The bracketed lines are formulaic but each carries distinct information (group, endpoint, required set, cost), so there is no filler — the issue is under-specification rather than verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter endpoint with only 33% schema coverage the description leaves the agent without guidance on the sidereal/zodiac configuration and compact-mode options that materially change results. For a highly specialized Vedic chart tool embedded in a dense sibling family, this is too thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a heavier burden than usual — yet it only restates the four required parameters already marked required in the schema. The eleven optional parameters (ayanamsa, ayanamsaId, timezone, timezoneOffset, zodiacType, houseSystem, fields, precision, cosmogram, city, name) get no elaboration, including the ones whose interaction rules (timezone vs timezoneOffset) are subtle.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific chart (Dwadasamsa / D12) and its astrological significations (parents, ancestral karma), which does differentiate it from the many sibling varga tools (d1, d9, d10, d16, etc.) that share the same shape. It stops short of stating the action verb ('compute/return the D12 divisional chart'), but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance: nothing tells the agent when D12 is the right chart versus D9/D10/D60, nor what prerequisites (birth data quality, ayanamsa choice) apply. The bracketed metadata lists required fields and cost but not decision criteria, so the agent must infer selection from the significations alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d16Varga D16: ShodasamsaBRead-onlyIdempotentInspect
Shodasamsa chart (vehicles, comforts, conveyances).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D16] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior. The description adds useful operational context the annotations do not carry: the POST endpoint and the 20-credit Tier 2 cost. It says nothing about failure modes, validation, or response behavior for this computation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very compact and front-loaded: purpose first, then bracketed metadata blocks that are easy to scan. Every element earns its place, though the tags are terse enough that some context is arguably left out rather than trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a 15-parameter chart-computation tool the description is thin: it gives no framing on ayanamsa/house-system selection or the meaning of the D16 division, leaving the agent to work entirely from schema descriptions that cover only a third of the parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, and the description's only parameter content is the list of required fields (date, time, latitude, longitude), which merely repeats the schema's required array. None of the 11 optional parameters (ayanamsa, houseSystem, zodiacType, precision, fields, etc.) receive any added meaning from the description, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (the Shodasamsa / D16 divisional chart) and adds the traditional significations (vehicles, comforts, conveyances), which tells an agent what the chart is for. It has no verb, but the D16 designation implicitly separates it from the D1/D2/D9/D20 siblings in the same family.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical 'vehicles, comforts, conveyances' implies the kinds of questions this chart answers, and the cost line signals a Tier 2 spend, but there is no explicit statement of when to pick D16 over another varga or when not to use it. Usage is inferable 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_vedic_varga_d2Varga D2: HoraCRead-onlyIdempotentInspect
Hora chart (wealth analysis, half-sign Sun/Moon division).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D2] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
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 new operational context — the POST endpoint and a 20-credit Tier 2 cost — but says nothing about rate limits, response size, or caching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the substantive chart description in the first line and keeps metadata in compact bracketed tags with no filler sentences. Efficient, though the bracketed block is somewhat boilerplate.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a high-complexity 15-parameter astrology computation the description is thin: it never explains how to choose this varga versus its ~20 sibling varga tools, and it leaves the undocumented parameters to the schema. Output schema and annotations do cover return values and safety, mitigating but not resolving the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% for 15 parameters, so the description should compensate and does not. Its '[Required: date, time, latitude, longitude]' merely restates the schema's required array, adding no meaning for the ten under-documented parameters (zodiacType, houseSystem, cosmogram, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific artifact ('Hora chart'), its analytical use ('wealth analysis') and its technical basis ('half-sign Sun/Moon division'), which goes beyond the bare name/title. Among the many sibling varga tools (D1, D3, D9, D60...), the D2/Hora identity is clear, though it does not explicitly contrast itself against those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 why an agent would pick the Hora chart over the other varga divisions available as siblings. The bracketed lines give endpoint, required params and cost, which are logistics rather than usage selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d20Varga D20: VimsamsaBRead-onlyIdempotentInspect
Vimsamsa chart (spiritual progress, sadhana, religious inclination).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D20] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description add real behavioral context not in the structured fields: the credit cost and tier ('20 credits (Tier 2)') and the underlying endpoint, which help an agent plan a call. It stops short of noting timezone/ayanamsa sensitivity of the computation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The signification is front-loaded in one sentence and the bracketed metadata lines are scannable and waste-free. Structure is tight; the endpoint line is arguably redundant with the tool name but cheap.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter astrological computation with an output schema, the description covers required inputs and cost but leaves the agent without any guidance on the many optional astrological settings (ayanamsa, zodiacType, houseSystem) or when this chart is warranted. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the description is expected to compensate, and it does not. It merely restates the four required parameters ('date, time, latitude, longitude') that are already enumerated in the schema's `required` array, adding no meaning for the 15 parameters, the ayanamsa/house-system choices, or the compact-mode flags.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It names the specific resource (the D20/Vimsamsa divisional chart) and even glosses its astrological domain: 'spiritual progress, sadhana, religious inclination'. That distinguishes it in intent from the other varga siblings, but it never explicitly frames itself against d1/d9/d24 etc., so an agent must infer the D20-vs-D9 distinction from the code alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing to or away from alternatives. The 'spiritual progress' gloss hints at an evaluation domain but nothing tells an agent when D20 is the right choice over another divisional chart, which matters given the very large varga sibling set.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d24Varga D24: ChaturvimsamsaBRead-onlyIdempotentInspect
Chaturvimsamsa / Siddhamsa chart (education, learning, academic achievement).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D24] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
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 bar is lower. The description adds genuinely useful non-annotation context — cost of 20 credits (Tier 2) and the endpoint — but says nothing about interpretation of the returned varga chart, latency, or auth/credit failure behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Terse and front-loaded: chart name and interpretive domain come first, followed by compact bracketed metadata. The required-parameter and endpoint lines are largely redundant with the schema, but the whole payload is short enough that waste is minimal.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool takes 15 parameters and has an output schema, so return values need not be explained. Still, for a varga-specific chart with meaningful ayanamsa/house-system choices, the description gives no guidance on defaults or which optional inputs alter the result, leaving a gap for such a wide parameter surface.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description needed to compensate for the 15-parameter surface. Instead it merely restates the four required fields already declared in the schema's `required` array, adding zero meaning for the eleven optional parameters (ayanamsa, houseSystem, zodiacType, precision, fields, timezone, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific resource (Chaturvimsamsa / Siddhamsa, the D24 divisional chart) and its interpretive domain (education, learning, academic achievement), which uniquely separates it from the D1/D9/D10 varga siblings. However, it never explicitly contrasts itself with those siblings or states what a varga chart computation does beyond the label.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no prerequisites, and no pointer to alternatives (e.g., 'use alongside D10 for career'). The parenthetical domain hint implies an education-focused reading, but this is inference 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_vedic_varga_d27Varga D27: SaptavimsamsaBRead-onlyIdempotentInspect
Saptavimsamsa / Bhamsa chart (strengths, weaknesses, stamina).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D27] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
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 useful non-annotation context — credit cost (20 credits, Tier 2) and the concrete endpoint — but says nothing about how the chart is computed, caching, or determinism.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tight, front-loaded block: name and interpretive meaning first, then bracketed metadata lines that each carry distinct information (group, endpoint, required inputs, cost). The endpoint line is of marginal value to an agent, but there is no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 — that lightens the burden considerably. However, for a 15-parameter domain-specific tool where an agent may not know what a D27 divisional chart is, the description gives no selection context and leaves most parameter semantics to a partially documented schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description carries a real compensation burden, and it does not meet it: it merely restates the four required fields already listed in the schema's `required` array. The nine-plus undocumented parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId, and the bare date/time/latitude/longitude) get no clarification from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource precisely (Saptavimsamsa/Bhamsa, D27 varga chart) and adds the interpretive domain it addresses (strengths, weaknesses, stamina), which distinguishes it from the other ~20 varga siblings by meaning, not just by number. It never uses a verb like 'compute' or 'generate', but the resource and scope are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance at all: it does not say when a D27 chart is the right choice versus D9, D30, D60, or the general kundli tool. The only orienting metadata is the required-parameter list and credit cost, which are invocation facts, 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_vedic_varga_d3Varga D3: DrekkanaBRead-onlyIdempotentInspect
Drekkana chart (siblings, courage; trinal third-of-sign division).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D3] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds cost (20 credits, Tier 2) and required inputs, but does not disclose authentication needs, rate limits, or other behavioral details beyond what annotations and the output schema already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the chart's domain meaning and then gives terse, useful metadata. It contains no filler, though the bracketed metadata style is formulaic rather than richly structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter calculation tool with an output schema, the description covers the required inputs, cost, group, and endpoint. However, it omits any mention of important optional parameters and defaults that affect the chart calculation, leaving a significant gap given the low schema description coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% for 15 parameters. The description lists the four required fields (date, time, latitude, longitude), which are already marked required in the schema, and adds no meaning for optional parameters such as ayanamsa, houseSystem, timezone, fields, or precision. With low coverage, the description should compensate but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific Vedic chart ('Drekkana chart') and describes its domain meaning ('siblings, courage; trinal third-of-sign division'). This distinguishes it from general astrology tools, though it does not explicitly compare it to sibling varga tools like D9 or D10.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this D3 chart versus other varga charts or alternative tools. The metadata only states group, endpoint, required parameters, and cost, leaving usage selection entirely to the agent's inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d30Varga D30: TrimsamsaBRead-onlyIdempotentInspect
Trimsamsa chart (misfortunes, evils; uses Parashara unequal-segments formula).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D30] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
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 genuine operational context the annotations lack: the endpoint, the four required inputs, and a per-call cost of 20 credits (Tier 2). It says nothing about response shape, precision of results, or failure modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the purpose in the first clause, then a compact bracketed metadata block. Every line carries information and there is no filler, though the bracket format is terse rather than prose-explanatory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema means return values need no explanation, and the description covers identity, endpoint and cost. But for a 15-parameter tool at 33% schema coverage, the description leaves too many chart-configuration choices unexplained for an agent to call it confidently without reading the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, so the description would need to carry real weight, but it merely restates the four required parameters already flagged in the schema. The many non-obvious options (ayanamsa vs ayanamsaId, zodiacType, houseSystem, cosmogram, name/city) get no explanation here, and the description does not clarify which of these matter for a D30 computation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb-resource pair (Trimsamsa/D30 varga chart) and names the computational variant ('Parashara unequal-segments formula'), plus the interpretive domain ('misfortunes, evils'). It distinguishes itself from the many sibling varga tools by the explicit D30 identifier, though it doesn't say how to choose it over D9 or D60.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'misfortunes, evils' gloss implies the astrological use case, which is more than nothing, but there is no explicit when-to-use, no comparison to sibling vargas, and no guidance on prerequisites such as choosing an ayanamsa or house system for a divisional chart.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d4Varga D4: ChaturthamsaBRead-onlyIdempotentInspect
Chaturthamsa chart (fortune, fixed assets, real estate).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D4] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
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 safety semantics are covered by structured data. The description adds genuinely useful non-annotation context: the POST endpoint and the 20-credit Tier 2 cost, which an agent needs for budget planning. It says nothing about rate limits, latency, or what the response contains beyond the existence of an output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in a single clause, followed by bracketed metadata that is dense and skimmable. The 'Required' line duplicates the schema's required array and is the one element that does not earn its place; everything else (group, endpoint, cost tier) is actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter chart computation with an output schema, the description covers identity, endpoint, and cost but omits any interpretive framing or parameter guidance beyond the required list. An agent can call it correctly but has no help choosing ayanamsa, house system, or zodiac type, which materially affect a varga chart.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description is expected to compensate but does not: it merely restates the four required parameters, which the schema's required array already declares, earning no credit. The many optional parameters (ayanamsa, houseSystem, zodiacType, fields, precision, cosmogram) are neither explained nor linked to the chart's interpretation choices.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific chart type (Chaturthamsa / D4) and maps it to domains (fortune, fixed assets, real estate), which is the standard signification set for the fourth divisional chart. Combined with the D4 label and endpoint, an agent can distinguish it from the D1/D9/D10 varga siblings. It stops short of explicitly contrasting itself with those siblings, so it falls just under a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of the alternative varga tools. The only routing aid is the domain gloss (real estate, assets), which an agent must interpret on its own. A brief 'use for property/asset analysis instead of D1' line would have closed this gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d40Varga D40: KhavedamsaCRead-onlyIdempotentInspect
Khavedamsa chart (auspicious & inauspicious effects, maternal lineage).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D40] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful non-schema context: the cost (20 credits, Tier 2) and the HTTP endpoint. It says nothing about execution latency, rate limits, or output behavior, so it is a modest rather than rich addition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the chart name and significations, followed by compact bracketed metadata lines for group, endpoint, required inputs, and cost. Nothing is padded; the tag-block format is scannable though slightly template-like.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter tool with low schema coverage, the description leaves the optional configuration surface undocumented and offers no guidance on defaults or interactions, making it only partially complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate — yet it merely repeats the four required parameters already present and marked required in the schema. The eleven optional parameters (ayanamsa, timezone, houseSystem, precision, fields, etc.) get no clarification in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource (the D40/Khavedamsa divisional chart), which is what distinguishes it from the many virga siblings (D1, D9, D45, etc.). However, 'Khavedamsa chart' largely restates the title, and the parenthetical significations ('auspicious & inauspicious effects, maternal lineage') are the only added semantic content. It stops short of stating the action or what a caller gains from this specific varga.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives (e.g. why D40 over D45/D60), and no exclusions or prerequisites beyond the required-parameter list. An agent cannot tell from this text when this chart 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_vedic_varga_d45Varga D45: AkshavedamsaBRead-onlyIdempotentInspect
Akshavedamsa chart (general life patterns, paternal lineage).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D45] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds genuinely useful non-annotation context: cost (20 credits, Tier 2), the endpoint, and the required inputs. It does not, however, describe latency, what the chart data contains, or any failure modes beyond cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded, with the chart's purpose first and bracketed metadata (group, endpoint, required, cost) after. Every element carries information, though the bracketed metadata is somewhat formulaic.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However, for a 15-parameter tool with only 33% schema description coverage, the description is too thin—it labels the required inputs and cost but leaves the many configuration parameters undocumented in prose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate but does not. It merely restates the four required parameters (date, time, latitude, longitude), which are already marked required in the schema, and says nothing about the eleven optional parameters such as fields, precision, houseSystem, or ayanamsa.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb-less but specific resource: the Akshavedamsa (D45) divisional chart, and gives its astrological scope (general life patterns, paternal lineage). This distinguishes it from the many other varga siblings (D1, D9, D40, etc.) by the divisional number and name. It stops short of contrasting directly with those siblings, but the tool's identity is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(general life patterns, paternal lineage)' hints at when this chart is relevant, but there is no explicit when-to-use guidance, no mention of alternatives (e.g., which varga to pick instead), and no prerequisites. Usage is implied by the domain, not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d60Varga D60: ShashtiamsaBRead-onlyIdempotentInspect
Shashtiamsa chart (past karma, the most subtle divisional; high precision needed in birth time).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D60] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful non-annotation context: the endpoint, the 20-credit Tier 2 cost, and the sensitivity of the result to birth-time precision. Return format is not described, but an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead sentence conveys the chart's identity and accuracy caveat first, followed by a compact structured metadata block. Nothing is padded, though the bracketed endpoint/required list is largely machine-facing rather than agent-facing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter chart tool with an output schema and full annotation coverage, the description supplies what is needed to call it (required inputs, cost, precision caveat). However it offers no differentiation from the ~16 sibling varga tools, so an agent lacks the cues to select D60 correctly rather than D9 or D10.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate but does not. It merely restates the four required parameters (date, time, latitude, longitude) with no added meaning, leaving the behavior of optional parameters such as zodiacType, houseSystem and ayanamsaIdId undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource (the Shashtiamsa / D60 divisional chart) and its astrological meaning, which distinguishes it from the many other varga siblings by divisional number. It does not use an explicit action verb or name a sibling, but the resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 varga tool is named. The lone caveat ('high precision needed in birth time') is an accuracy warning about the input, not a usage condition for choosing this tool over d9, d10, etc.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d7Varga D7: SaptamsaBRead-onlyIdempotentInspect
Saptamsa chart (children, progeny).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D7] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
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 usefully adds the per-call cost (20 credits, Tier 2) and the endpoint, but says nothing about failure modes, rate limits, or what the computation produces.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed metadata block is compact and front-loads the essential purpose before plumbing details. Every line carries information, though the '[Required]' line duplicates the schema's required array rather than earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool sitting in a family of 16 near-identical varga tools, the description does little to orient the agent: no optional-parameter guidance despite 33% schema coverage and no differentiation from the sibling varga charts. The presence of an output schema excuses it from explaining return values, but the input-side and routing gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, and the description merely repeats the four required names (date, time, latitude, longitude) that the schema already marks required. Eleven optional parameters — including fields, precision, zodiacType, houseSystem, ayanamsaId — receive no guidance from the description to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (Saptamsa / D7 divisional chart) plus its astrological signification (children, progeny), which lets an agent tell it apart from the other varga siblings by domain. It stops short of explicitly contrasting itself with those siblings, but the verb+resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(children, progeny)' implies the domain in which this chart is relevant, so usage is inferable. However, there is no explicit when-to-use, no condition selecting D7 over D1/D9 or the other 15 varga tools, and no stated prerequisites beyond the required parameter list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varga_d9Varga D9: NavamsaBRead-onlyIdempotentInspect
Navamsa chart (spouse, dharma; the most important divisional chart in BPHS Vedic analysis).
[Group: Vedic] [Endpoint: POST /v1/vedic/varga/D9] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| name | No | |
| lagna | No | |
| varga | No | |
| planets | No | |
| ayanamsa | No | |
| julianDay | No |
TDQS
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 adds genuinely useful operational context not in the annotations: the POST endpoint, the four required inputs, and the 20-credit Tier 2 cost, which matters for budget-aware agents. It stops short of describing output shape, though an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content is compact and front-loads the chart name and its significance; the bracketed metadata block is scannable. Nothing is padding, though the format is more of a spec sheet than prose guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description correctly identifies the tool and its inputs. However, for a 15-parameter chart tool with only a third of parameters documented, an agent is left guessing about the sidereal-school, house-system, and compact-mode options that materially change the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate; instead it merely repeats the required list (date, time, latitude, longitude) that the schema's 'required' array already encodes. It adds no meaning for the many optional params (ayanamsa, houseSystem, zodiacType, fields, precision).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific resource (Navamsa / D9 divisional chart) and states its classical significations (spouse, dharma) plus its status in BPHS, so an agent can grasp what this computes. It does not explicitly contrast itself with the 15 sibling varga tools (d1, d10, d12, etc.), which is the only thing keeping it from a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical '(spouse, dharma)' implies the topical situations where a Navamsa is wanted, but there is no explicit when-to-use, when-not-to-use, or alternative routing (e.g. use D10 for career instead). Usage must be inferred from the chart's significations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_varshaphalVarshaphal: Tajika annual chartARead-onlyIdempotentInspect
The Tajika annual chart for one year of life. Cast on the moment the SIDEREAL Sun returns to its natal longitude, which for an adult sits many hours away from the tropical solar return and therefore on a different ascendant: the gap runs 0.4 h at age 1, 3.3 h at 10, 7.0 h at 20, 12.5 h at 36 and 17.2 h at 50.
[Group: Vedic] [Endpoint: POST /v1/vedic/varshaphal] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data plus a year, for the Tajika annual chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude, longitude and year. Coordinates do NOT default to 0 here as they do on other chart endpoints. The chart is cast on the SIDEREAL solar return, which for an adult is many hours away from the tropical one and therefore a different ascendant. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| bala | No | |
| note | No | |
| year | No | |
| cusps | No | |
| muntha | No | |
| sahams | No | |
| planets | No | |
| pravesh | No | |
| ayanamsa | No | |
| ascendant | No | |
| varshesha | No | |
| candidates | No | |
| isDayBirth | No | |
| ayanamsaName | No | |
| yearsElapsed | No | |
| varsheshaByStrength | No |
TDQS
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 computation, so the safety profile is covered. The description adds a genuinely useful behavioral fact not in the annotations: the 50-credit / Tier 3 cost, plus the caveat that the chart is cast on the sidereal solar return and can land on a different ascendant than a tropical solar return. It still says nothing about auth requirements or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose, and the [Group]/[Endpoint]/[Cost] metadata is compact. The age-indexed hour-gap series (0.4 h at 1, 3.3 h at 10 … 17.2 h at 50) is longer than an agent strictly needs and edges toward exposition, but it does quantify a real divergence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, annotations cover the safety profile, and the schema documents every parameter, so the description is not required to explain returns or fields. It covers what the chart is and the sidereal-return nuance; the only substantive omission is guidance on how this differs from the other varshphal-family sibling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested schema already explains timezone, timezoneOffset, ayanamsa, houseSystem letters, year, and the entryLatitude/entryLongitude pairing in detail. The tool description adds no parameter-level meaning beyond implying the sidereal framework; baseline 3 is appropriate when the schema carries the whole load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names both the technique and the artifact: 'The Tajika annual chart for one year of life,' which is a specific resource an agent can match to a request. It does not, however, distinguish itself from the sibling astroway_vedic_lal_kitab_varshphal, which is also an annual (varshphal) chart produced by a different school, so the agent has no textual basis for choosing between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer 'use this when you want the Tajika annual chart for a given year' from the opening sentence, but there is no explicit when-to-use, when-not, or routing note. With a near-identical sibling (lal_kitab_varshphal) in the list, the absence of an explicit alternative is a real gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_jaimini_daridraYogas: Jaimini Daridra yogaBRead-onlyIdempotentInspect
Jaimini Daridra yoga: AK + AmK both in dusthanas (6/8/12), poverty/struggle flag. Remedies recommended.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/jaimini/daridra] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| lagnaSign | No | |
| atmakaraka | No | |
| amatyakaraka | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only, idempotent, closed-world profile, so the bar is lower. The description still adds genuinely non-structured behavior: the credit cost (20 credits, Tier 2) and the endpoint path, plus a hint that the response includes recommended remedies. It stops short of any rate-limit, auth, or failure-mode detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The yoga definition and its output meaning are front-loaded in the first sentence, with cost/endpoint/required-inputs relegated to a compact bracketed block. Nothing is padded, though the required-parameter line largely duplicates the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needed, and the required inputs plus cost are present. What is missing for a 15-parameter, 20-credit Tier-2 tool is any routing guidance against the near-identical Jaimini yoga siblings, leaving the agent able to call it but not confident it should.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% across 15 parameters, so the description should compensate but does not. It merely restates the four required parameters (date, time, latitude, longitude) that the schema already marks required, and never mentions ayanamsa, zodiacType, houseSystem, fields, precision, or timezone behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states precisely what the tool computes: the Jaimini Daridra yoga, defined as AK + AmK both in dusthanas (6/8/12), returning a poverty/struggle flag. That definitional condition makes it distinguishable in substance from the dhana/raja shubha siblings without opening a schema, though none of those siblings are named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives named. With siblings like astroway_vedic_yogas_jaimini_dhana, _raja, _viparita and the catch-all astroway_vedic_jaimini_yogas / _full in the same family, the agent gets no help deciding whether to call this narrow yoga check or a broader one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_jaimini_dhanaYogas: Jaimini Dhana yogaBRead-onlyIdempotentInspect
Jaimini Dhana yoga: AK or AmK in 2nd / 11th from lagna. Wealth indicator.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/jaimini/dhana] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| lagnaSign | No | |
| atmakaraka | No | |
| amatyakaraka | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, so safety is covered. The description adds genuinely useful non-annotation context: the endpoint, the required inputs, and the cost (20 credits, Tier 2), which helps an agent budget calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the yoga definition, then bracketed operational metadata in a scannable block. Every line carries information; no filler prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 required inputs and cost are given. However, for a 15-parameter tool with low schema coverage, the absence of any guidance on the optional astrology settings leaves meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters. The description merely restates the four required params and adds nothing about the undocumented optionals (zodiacType, houseSystem, cosmogram, name, city, ayanamsaId), 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.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific technique (Jaimini Dhana yoga) with the defining astronomical condition (AK or AmK in 2nd/11th from lagna) and its meaning (wealth indicator). Distinguishes it reasonably from the sibling daridra (poverty) yoga, though it does not name that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 beyond the required parameter list. Nothing tells the agent how this differs operationally from astroway_vedic_jaimini_yogas or astroway_vedic_yogas_jaimini_full, which compute overlapping Jaimini content.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_jaimini_fullYogas: Jaimini full summaryBRead-onlyIdempotentInspect
Composite Jaimini yoga summary: Raja / Dhana / Daridra / Viparita with karaka details.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/jaimini/full] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| raja | No | |
| dhana | No | |
| school | No | |
| daridra | No | |
| viparita | No | |
| lagnaSign | No | |
| atmakaraka | No | |
| amatyakaraka | No |
TDQS
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 fully covered. The description adds genuinely useful non-annotation facts: the endpoint, the four required inputs, and the 20-credit Tier 2 cost, which helps an agent weigh whether to call it. It does not, however, describe response depth or pagination/format behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short, front-loaded lines: the purpose line first, then group, endpoint, required inputs and cost. No wasted prose, and the most decision-relevant content (what it computes, what it costs) is at the top.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 explained, and annotations cover the safety profile. What is missing is coverage of a complex 15-parameter surface: no guidance on ayanamsa/zodiac selection, timezone handling, or the 'fields' compact mode, which matters for a Tier 2 paid call. It is minimally adequate but leaves real gaps for a tool of this parameter complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, and the description compensates for none of it. '[Required: date, time, latitude, longitude]' merely restates the schema's own required array, adding no meaning for the other 11 parameters (fields, ayanamsa, timezone, precision, houseSystem, etc.). Because coverage is low, the description should have supplied parameter meaning but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource and its scope: a composite Jaimini yoga summary covering Raja / Dhana / Daridra / Viparita with karaka details. Listing the four component yoga types implicitly distinguishes it from the individual sibling tools (e.g. astroway_vedic_yogas_jaimini_raja, _dhana, _daridra, _viparita), which are the per-yoga counterparts. It stops short of stating the relationship explicitly, so it is clear but not maximally differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The word 'Composite ... summary' implies this is the aggregate call to use when all four yoga families are wanted rather than the individual siblings, but the description never states when to choose it over astroway_vedic_yogas_jaimini_raja or _dhana, nor any exclusions. Usage is left to inference from the tool's scope line.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_jaimini_karakamsaYogas: Karakamsa chart (12-house projection)BRead-onlyIdempotentInspect
Karakamsa = Atmakaraka's sign in D9 Navamsha, treated as lagna for a 12-house projection. Each house carries canonical iṣṭa-devata / moksha / spiritual significations per Sanjay Rath. Yogas surfaced: 5th-house planet = Ishta Devata; 12th-house planet = Moksha Indicator.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/jaimini/karakamsa] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| yogas | No | |
| houses | No | |
| karakamsa | No |
TDQS
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 full safety profile is covered by structured data. The description's marginal behavioral content is the cost line (20 credits, Tier 2) and the endpoint path, which are useful but modest; nothing is said about auth requirements or any usage limits. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The domain definition is front-loaded, followed by two compact sentences on the yogas surfaced, then a short bracketed metadata block (group, endpoint, required fields, cost). Every element is short and skimmable with no filler, though the metadata block is boilerplate rather than explanatory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 conceptual definition of Karakamsa is solid. However, for a 15-parameter tool with a long list of near-identical Jaimini yoga siblings, the description omits any routing guidance and says nothing about the optional chart-configuration parameters, leaving it only minimally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (15 parameters, most optional ones undocumented), so the description carries a compensation burden it does not meet. It repeats the four required fields (date, time, latitude, longitude) already in the schema and adds no meaning for the ten optional parameters such as ayanamsa, houseSystem, zodiacType, fields, or precision.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a precise verb+resource: it defines Karakamsa (Atmakaraka's sign in D9 treated as lagna) and states the 12-house projection and the yogas surfaced (5th = Ishta Devata, 12th = Moksha Indicator). That is far more than a restatement of the title. It does not, however, differentiate itself from close siblings such as astroway_vedic_jaimini_yogas or astroway_vedic_yogas_jaimini_karaka_yoga, which an agent would need to distinguish when picking a Jaimini yoga endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The content implies the use case (spiritual/iṣṭa-devata and moksha significations per Sanjay Rath), so an agent can infer when it is relevant. But there is no explicit when-to-use statement, no when-not to use it, and no named alternative among the many Jaimini yoga siblings, leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_jaimini_karaka_yogaYogas: Jaimini Karaka yoga (all 8 karakas)BRead-onlyIdempotentInspect
Scans every chara karaka (Atmakaraka..Darakaraka) for house-based yogas. Each karaka in kendra/trine/dusthana receives a strength score and manifestation hint (e.g. "Atmakaraka-in-5: creative/spiritual purpose"). Returns 8 yogas with karaka role + house + strength 0-100.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/jaimini/karaka-yoga] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| yogas | No | |
| summary | No | |
| atmakaraka | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered; the description adds genuine operational context by disclosing the scoring model (strength 0-100), the manifestation-hint format, and that exactly 8 yogas are returned. It also surfaces the 20-credit Tier 2 cost, which is real behavioral information not present in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly written sentences lead with the core behavior and return shape before the metadata block. No filler; the grouping/endpoint/cost tags are compact and bracketed, though the bracketed metadata adds bulk that is not prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Because an output schema exists, return values need not be spelled out, and the annotations carry the safety profile, so the description is adequate on those fronts. The remaining gap is the large set of unelaborated chart-configuration parameters, which makes the definition only minimally sufficient for a 15-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only 33% schema description coverage, the description should compensate but instead only restates the four required params (date, time, latitude, longitude), which are already marked required in the schema. Eleven chart-configuration parameters (ayanamsa, houseSystem, zodiacType, timezone, precision, fields, etc.) get no explanatory help from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (scans) and resource (every chara karaka, Atmakaraka..Darakaraka) and the analytical target (house-based yogas), which separates it from generic yoga siblings. However, it never explicitly names alternative jaimini yoga tools (dhana, raja, daridra, full) or the karaka-listing tools, so the agent must infer differentiation from the karaka scoping alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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-tool guidance is given. In a sibling set containing astroway_vedic_jaimini_yogas, astroway_vedic_jaimini_karakas and astroway_vedic_jaimini_chara_karakas, this omission matters, yet the description offers nothing to route the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_jaimini_rajaYogas: Jaimini Raja yogaARead-onlyIdempotentInspect
Jaimini Raja yoga: Atmakaraka in Lagna/Kendra OR conjunct Amatyakaraka. Sources: Jaimini Sutras 2.x + Sanjay Rath modern commentary.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/jaimini/raja] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| lagnaSign | No | |
| atmakaraka | No | |
| amatyakaraka | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive and closed-world behavior, so the safety profile is covered. The description adds genuinely new operational context: a fixed cost of 20 credits (Tier 2) and the citation sources, which help an agent judge whether the call is worth making. It does not describe output or caveats, but with annotations doing heavy lifting this is a solid contribution.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the yoga definition, then compact bracketed metadata lines; there is almost no filler. The endpoint line is arguably redundant given the tool name, but nothing is wasted or bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The output schema means return values need not be explained, and annotations cover safety. However, for a 15-parameter tool with only 33% schema coverage, the description leaves the bulk of the optional parameters unexplained and offers no sibling routing, so it is only minimally sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. It merely restates the four required parameters already declared in the schema's required array, leaving city, name, cosmogram, zodiacType, houseSystem and ayanamsaId undocumented in either place. No added meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives the exact astrological condition the tool evaluates ('Atmakaraka in Lagna/Kendra OR conjunct Amatyakaraka') plus the textual sources, so an agent knows precisely what computation this returns. That rule also implicitly separates it from the near-identical jaimini yoga siblings (dhana, daridra, karaka_yoga). Specific verb+resource with a distinguishing condition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this over the general astroway_vedic_jaimini_yogas or the sibling yoga tools, and no prerequisites or exclusions. The required-parameter and cost lines are operational metadata, not routing guidance. In a dense cluster of lookalike Jaimini yoga endpoints, this gap matters most.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_jaimini_shubha_grahaYogas: Shubha-graha (functional natures)ARead-onlyIdempotentInspect
Functional benefic / malefic identification per Lagna-lord ownership. Returns each of the 7 visible grahas with natural nature + functional nature (yogakaraka / functional-benefic / neutral / functional-malefic / maraka) + houses owned + reasoning per BPHS Adhyaya 34 kendradhipati & maraka rules.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/jaimini/shubha-graha] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| lagna | No | |
| marakas | No | |
| planets | No | |
| yogakarakas | No |
TDQS
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 bar is lower. The description adds real operational context: it names the interpretive authority (BPHS Adhyaya 34 kendradhipati and maraka rules), the exact output content, the required inputs, and a cost of 20 credits at Tier 2, which is genuine value beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose in the first clause, then output content, then bracketed metadata. Every sentence carries information and there is no filler, though the bracketed group/endpoint/cost block is somewhat dense.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 structure need not be explained, yet the description still usefully enumerates the returned fields (natural nature, functional nature, houses owned, reasoning). The gap is contextual: no guidance on when to prefer this over sibling yoga or strength tools, and no parameter-level help given the thin schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only 33% schema description coverage, the description must compensate for the documentation gap and does not. It lists the four required parameters (date, time, latitude, longitude) that the schema already marks as required, but says nothing about ayanamsa, zodiacType, houseSystem, fields, precision, or the timezone/timezoneOffset interaction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (identifies/returns) and resource (functional benefic/malefic natures of the 7 grahas) with an enumeration of the five classification values. It distinguishes itself from nearby Jaimini yoga siblings like daridra, dhana, raja and viparita by being a per-graha classification rather than a yoga-combination lookup, though it never names those siblings explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by content ('identification per Lagna-lord ownership'), which tells a knowledgeable agent this is the chart-based functional-nature readout. There is no explicit when-to-use statement, no prerequisites, and no routing to alternatives such as astroway_vedic_yogas_jaimini_full or astroway_vedic_yogas_parashara_full.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_jaimini_viparitaYogas: Jaimini Viparita Raja yogaBRead-onlyIdempotentInspect
Reverse Raja yoga: AK in 6/8/12, success after struggle. Per Sanjay Rath modern commentary.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/jaimini/viparita] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| lagnaSign | No | |
| atmakaraka | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description does add non-obvious operational context — cost (20 credits, Tier 2), endpoint, and interpretive lineage (Sanjay Rath) — but says nothing about what the returned yoga assessment contains or how partial data is handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: the definition and condition come first, metadata is bracketed off at the end. Nothing is padded, though the bracketed block is terse to the point of being cryptic rather than explanatory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter, 20-credit computed tool with an output schema and full annotations, the description covers the essentials (what it computes, prerequisites, cost) but leaves the agent without guidance on choosing it over the other jaimini yoga endpoints or on interpreting the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 33% across 15 parameters, so the description must compensate, yet it only restates the four required parameters already marked required in the schema. It adds no meaning for ayanamsa, zodiacType, houseSystem, or the compact-mode fields, leaving the coverage gap unfilled.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific yoga and states its defining condition (AK in 6/8/12) plus the interpretive payoff ('success after struggle'), which is far more than a restatement of the title. It sits clearly apart from siblings like jaimini_raja and jaimini_daridra, though it never explicitly says so.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement and no routing against the many sibling jaimini_yogas_* tools (raja, dhana, karaka_yoga, full). The '[Required: ...]' line is operational metadata, not usage guidance, and nothing tells the agent when this yoga is worth computing versus jaimini_full.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_parashara_adhiYogas: AdhiBRead-onlyIdempotentInspect
Adhi Yoga: benefics (Mercury, Venus, Jupiter) in 6th, 7th, 8th houses from Moon. Maha Adhi Yoga when all three benefics are positioned там. Powerful for status and prosperity.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/adhi] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| strength | No | |
| lagnaSign | No | |
| contributingPlanets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description usefully adds the cost (20 credits, Tier 2), endpoint, and required inputs, which annotations do not carry, but says nothing about return content or behavior for missing/invalid data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The yoga definition is front-loaded and the metadata block (group, endpoint, required, cost) is compact and scannable. A stray non-English token ('там') is a minor quality blemish but does not impede readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter computation tool with low schema coverage, the description leaves the optional parameters and usage context entirely unaddressed, which is only adequate, not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate and does not. It merely restates the four required fields already declared in the schema's required array and adds no meaning for ayanamsa, timezone, fields, precision, or the other optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific resource and explains what Adhi Yoga is (benefics in 6th/7th/8th from Moon, Maha variant when all three are placed there), so an agent knows what is being computed. However, the verb is implicit and there is no explicit differentiation from siblings such as astroway_vedic_yogas_parashara_full or the other parashara yoga endpoints.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of alternatives, even though ~180 sibling tools include a general parashara_full yoga endpoint that likely subsumes this one. The agent gets no signal about when to pick this narrow Adhi endpoint instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_parashara_dhanaYogas: Dhana (wealth)ARead-onlyIdempotentInspect
Dhana Yoga: lords of wealth houses (1, 2, 5, 9, 11) connected via conjunction, mutual graha drishti, or strict parivartana.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/dhana] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| lagnaSign | No | |
| contributingPlanets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so safety is covered. The description adds genuinely new context the annotations cannot: the cost tier (20 credits, Tier 2) and the transport (POST /v1/vedic/yogas/parashara/dhana). It stops short of describing rate limits or what the calculation returns, but for a read-only analytical tool this is solid added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition leads with the substantive content and pushes metadata into bracketed tokens on one line each, so an agent can scan it quickly. The bracketed block is slightly cluttered but each entry (required params, cost) carries real information, so little is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 core concept is well defined. But with 15 parameters and only a third documented, plus no guidance on how this differs from the Parashara full or Jaimini dhana siblings, the definition is adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% across 15 parameters, so the description should compensate — instead it merely restates the four required fields already declared in the schema's required array. It says nothing about ayanamsa, houseSystem, zodiacType, precision, or the fields/cosmogram options, leaving the meaning of eleven parameters to the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the specific yoga (Dhana), states exactly which houses are involved (1, 2, 5, 9, 11) and which connection types qualify (conjunction, mutual graha drishti, strict parivartana). That level of technical specificity distinguishes it from the sibling jaimini_dhana and parashara_raja without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives operational context (required date/time/lat/long, POST endpoint, 20-credit Tier 2 cost), which helps an agent decide whether it can afford or call it. However, it never says when to choose this over astroway_vedic_yogas_parashara_full or the Jaimini dhana variant, so selection between near-identical siblings 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_vedic_yogas_parashara_dharma_karmadhipatiYogas: Dharma-KarmadhipatiBRead-onlyIdempotentInspect
Dharma-Karmadhipati Yoga: lord of 9th (Dharma) and lord of 10th (Karma) conjunct, in mutual graha drishti (full Vedic aspects), or single planet rules both. Exceptionally fortunate combination.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/dharma-karmadhipati] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| lagnaSign | No | |
| contributingPlanets | No |
TDQS
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 non-structured context: the exact endpoint, the four mandatory inputs, and a cost of 20 credits at Tier 2, which is real behavioral information for budgeting tool calls. It does not say what a negative result looks like, but the output schema covers returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact and front-loaded: the yoga definition leads, followed by a scannable bracketed metadata block. The '[Required: date, time, latitude, longitude]' line largely duplicates the schema's required array, which is minor waste, but nothing else is padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter computational tool with an output schema, the definition plus endpoint, required inputs and credit cost is minimally adequate — return values need not be explained. What is missing is disambiguation across a very large sibling family containing two near-identical yoga tools, and any hint about which optional chart parameters matter for this specific yoga.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries more burden than usual — yet it contributes nothing beyond restating the required list already in the schema's `required` array. Important knobs (ayanamsa selection, zodiacType, houseSystem, fields compaction) are left entirely to sparse or missing schema text, and no guidance on choosing an ayanamsa is offered.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific astrological condition the tool targets (9th and 10th lords conjunct, in mutual graha drishti, or one planet ruling both), which is a specific resource rather than a restatement of the name. However, it never states the operation itself (detect/analyse this yoga for a given chart), and it does nothing to separate itself from the near-identical sibling astroway_vyp_dharma_karmadhipati or from astroway_vedic_yogas_parashara_full.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 to call this for a single-yoga check versus astroway_vedic_yogas_parashara_full for a comprehensive reading, or versus the VYP-prefixed variant. The only routing signal is the endpoint path, which the agent would have to interpret on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_parashara_fullYogas: Parashara full reportARead-onlyIdempotentInspect
Combined Parashara yoga report: runs all 6 detectors (Raja/Dhana/Dharma-Karmadhipati/Pancha-Mahapurusha/Gajakesari/Adhi) and returns one structured response.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/full] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| adhi | No | |
| raja | No | |
| dhana | No | |
| school | No | |
| lagnaSign | No | |
| gajakesari | No | |
| panchaMahapurusha | No | |
| dharmaKarmadhipati | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a non-destructive, idempotent, read-only operation, so the description doesn't need to re-establish that. It adds genuinely useful operational facts beyond the annotations: the POST endpoint, the required parameter set, and the 20-credit (Tier 2) cost, which is material for an agent deciding whether to make this multi-detector call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence is front-loaded and wastes no words, naming the detectors and the single-response shape. The bracketed metadata lines are mechanical but carry non-obvious facts (endpoint, cost tier, required params), so they earn their place; the block could be trimmed slightly but is not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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; cost and endpoint are disclosed. What is missing for a 15-parameter tool is any hint about how sidereal-school/house-system choices shape the yoga results, and no guidance on the compact-mode parameters, leaving the caller to guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only ~33% schema description coverage, the description should compensate; instead it only restates the four required fields (date, time, latitude, longitude), which are already in the schema's required array. Nothing is said about how ayanamsa, zodiacType, houseSystem, or the compact-mode fields (fields, precision, cosmogram) affect yoga detection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Combined Parashara yoga report ... runs all 6 detectors') and enumerates exactly which yogas are covered (Raja/Dhana/Dharma-Karmadhipati/Pancha-Mahapurusha/Gajakesari/Adhi). This clearly separates it from the six single-yoga siblings like astroway_vedic_yogas_parashara_raja without needing to open either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'runs all 6 detectors ... and returns one structured response' gives clear context that this is the aggregate/batch call for Parashara yogas rather than a single-detector call. It stops short of explicitly naming the alternative ('use the individual *_raja / *_dhana tools when you need only one yoga') or stating when the extra cost is not worth it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_parashara_gajakesariYogas: GajakesariBRead-onlyIdempotentInspect
Gajakesari Yoga: Jupiter in a kendra (1, 4, 7, 10) from Moon. One of the most-cited classical combinations.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/gajakesari] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| contributingPlanets | No |
TDQS
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 operational context the annotations do not carry: the POST endpoint, the four required inputs, and the 20-credit Tier 2 cost. It says nothing about output shape, though an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the definition in one sentence, then a compact tagged metadata block. Efficient and scannable, though the bracketed metadata block is formulaic boilerplate rather than prose that earns every line.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since an output schema exists, return values need not be described. However, for a 15-parameter chart-calculation tool, the description never clarifies how date/time/timezone interact or what the ayanamsa/zodiac/house-system choices mean for this yogas endpoint, leaving real gaps beyond the schema's partial coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%, with description-less params including cosmogram, zodiacType, ayanamsaId, city and name. The description's '[Required: date, time, latitude, longitude]' line merely restates what the schema already marks as required and adds no semantics to compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb-equivalent resource (Gajakesari Yoga) and defines it precisely as Jupiter in a kendra (1,4,7,10) from Moon. This distinguishes it clearly from the many sibling yoga tools such as pancha_mahapurusha or raja without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this single-yoga tool versus astroway_vedic_yogas_parashara_full or the other per-yoga siblings, and no prerequisites or exclusion criteria. The definition of the yoga is not the same as usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_parashara_pancha_mahapurushaYogas: Pancha Mahapurusha (5 great)ARead-onlyIdempotentInspect
5 Mahapurusha yogas: Ruchaka (Mars), Bhadra (Mercury), Hamsa (Jupiter), Malavya (Venus), Sasha (Saturn). Each formed when respective planet is in its own/exalted sign AND in a kendra (1/4/7/10).
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/pancha-mahapurusha] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| yogas | No | |
| school | No | |
| lagnaSign | No | |
| presentCount | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so safety is covered. The description adds genuinely useful behavioral context beyond that: it is a black-box computation (no write), it costs 20 credits at Tier 2, it is a POST, and it lists the four mandatory inputs. It omits the return shape, but an output schema exists, so that gap is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is front-loaded and dense with real information, and the bracketed metadata (group, endpoint, required, cost) is compact and scannable. It is slightly mechanical but wastes no words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter endpoint, the description supplies the domain definition and required inputs, and the existing output schema means return values need not be described. However, it leaves the non-trivial optional parameters (ayanamsa school, house system, timezone handling) entirely to the schema, which only partially documents them, so an agent still has gaps before calling correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. It restates the four required parameters that the schema's required array already enforces, and says nothing about the semantically loaded optional params (ayanamsa, zodiacType, houseSystem, timezone vs timezoneOffset, fields, precision).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the exact technique (Pancha Mahapurusha yogas), enumerates all five (Ruchaka, Bhadra, Hamsa, Malavya, Sasha) with their ruling planets, and states the precise formation rule (own/exalted sign + kendra). This lets an agent tell it apart from the other parashara yoga siblings (gajakesari, raja, dhana) without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool computes and lists required inputs and cost, but gives no when-to-use guidance: no mention of when to prefer this over astroway_vedic_yogas_parashara_full or the other yoga endpoints, and no exclusions or prerequisites. The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vedic_yogas_parashara_rajaYogas: Raja (royal)BRead-onlyIdempotentInspect
Raja Yoga detection per BPHS A.36-37: sambandha between kendra-lord (1/4/7/10) and trikona-lord (1/5/9) via 1) conjunction, 2) mutual graha drishti (full Vedic aspects: 7th universal + Mars 4/8, Jupiter 5/9, Saturn 3/10), or 3) strict parivartana (specific pair-swap of houses).
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/raja] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| lagnaSign | No | |
| contributingPlanets | No |
TDQS
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 bar is lower. The description usefully adds operational facts the annotations do not carry: the HTTP endpoint, the four required inputs, and the 20-credit Tier 2 cost, which matters for tool selection. It says nothing about auth or rate limits, but those gaps are minor.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense but well-formed sentence defining the detection rule, followed by bracketed metadata blocks for group, endpoint, required inputs and cost. Information is front-loaded and every line carries content, though the classical-aspect parenthetical is heavy going for a reader scanning for call parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 detection semantics are unusually complete. However, for a 15-parameter tool with low schema coverage and no usage guidance or prerequisites, the definition leaves the agent under-equipped on how and when to invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate — but it only restates the four required parameters already flagged in the schema's `required` array. The ten optional parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId, etc.) receive no meaning from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states precisely what is detected (Raja Yoga per BPHS A.36-37) and enumerates the three valid sambandha mechanisms, so an agent knows the exact output domain. It does not, however, differentiate itself from close siblings such as astroway_vedic_yogas_parashara_dharma_karmadhipati or astroway_vedic_yogas_jaimini_raja, which an agent choosing among the ~170 yoga/vedic tools would benefit from.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use statement, no prerequisite (e.g. a birth chart must already be computed), and no routing to alternatives like the Jaimini or dharma-karmadhipati variants. Usage is only implicit from the subject matter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vyp_dharma_karmadhipatiYogas: Dharma-KarmadhipatiBRead-onlyIdempotentInspect
Dharma-Karmadhipati Yoga: lord of 9th (Dharma) and lord of 10th (Karma) conjunct, in mutual graha drishti (full Vedic aspects), or single planet rules both. Exceptionally fortunate combination.
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/dharma-karmadhipati] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
(Cursor-friendly alias for astroway_vedic_yogas_parashara_dharma_karmadhipati.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| school | No | |
| details | No | |
| present | No | |
| lagnaSign | No | |
| contributingPlanets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuinely useful operational context beyond that: the endpoint path and, importantly, the cost of 20 credits (Tier 2), which an agent needs before calling. It adds no return-format detail, but an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The yoga definition is front-loaded, followed by tightly packed bracketed metadata (group, endpoint, required, cost, alias). Nearly every line earns its place; the required-params line is the only mildly redundant element.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. The description supplies cost and endpoint, which is adequate for invocation, but with 15 parameters at 33% coverage the documentation leaves real gaps (notably house system) that the definition does not fill.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. It merely restates the four required fields already in the schema's `required` array, and adds nothing about the many undocumented parameters such as `houseSystem` (a bare enum of single-letter codes) or `cosmogram`.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific yoga and defines its astronomical condition (9th/10th lords conjunct, in mutual drishti, or one planet ruling both), which distinguishes it from the sibling Parashara yoga tools. It is implicit rather than stated that the tool detects this yoga in a supplied birth chart, but the meaning is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical note that this is a 'cursor-friendly alias for astroway_vedic_yogas_parashara_dharma_karmadhipati' is a real routing aid, telling the agent this call is equivalent to the longer-named sibling. However, there is no explicit when-to-use/when-not guidance or suggested alternatives within the broader yoga toolset.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_vyp_pancha_mahapurushaYogas: Pancha Mahapurusha (5 great)BRead-onlyIdempotentInspect
5 Mahapurusha yogas: Ruchaka (Mars), Bhadra (Mercury), Hamsa (Jupiter), Malavya (Venus), Sasha (Saturn). Each formed when respective planet is in its own/exalted sign AND in a kendra (1/4/7/10).
[Group: Vedic] [Endpoint: POST /v1/vedic/yogas/parashara/pancha-mahapurusha] [Required: date, time, latitude, longitude] [Cost: 20 credits (Tier 2)]
(Cursor-friendly alias for astroway_vedic_yogas_parashara_pancha_mahapurusha.)
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| yogas | No | |
| school | No | |
| lagnaSign | No | |
| presentCount | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description still adds genuinely useful operational context beyond the annotations: the 20-credit Tier 2 cost (important for agent budgeting) and the exact endpoint. It does not describe return shape, but an output schema exists to carry that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the yoga names and formation rule, followed by tightly formatted metadata lines (group, endpoint, required, cost) with no filler. Every sentence carries information; the only mild redundancy is re-listing the required parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description need not explain return values, and annotations cover the safety profile. It supplies domain context (which yogas, how formed), cost and endpoint, which is sufficient for an agent to call it correctly; only parameter-level detail for the non-required options is thin.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description is obliged to compensate and does not. It merely restates the four required parameters (date, time, latitude, longitude) that the schema's `required` array already declares, leaving undocumented parameters such as houseSystem, zodiacType, ayanamsaId, cosmogram, city and name with no explanatory value added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact resource — the five Pancha Mahapurusha yogas (Ruchaka/Bhadra/Hamsa/Malavya/Sasha) — and states the precise formation rule (own/exalted sign plus kendra placement), which clearly separates it from broad yoga siblings like astroway_vedic_yogas_parashara_full. It never states the verb explicitly (compute/detect/return), but the scope is unambiguous to an agent reading the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 comparison to the many other yoga tools (parashara_full, gajakesari, raja, dhana, etc.). The alias note implies the tool exists under two names, but nothing tells the agent why to pick this over the aggregate yoga endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_webhooks_dasha_changeRegister Dasha-Change WebhookBInspect
Fires on Vedic Vimshottari dasha period transitions.
[Group: Webhooks] [Endpoint: POST /v1/webhooks/dasha-change] [Required: url] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| event | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false), and the description adds genuinely useful context: the event that triggers firing and a cost of 10 credits (Tier 1). It does not explain what happens on duplicate registration, retries, or failure handling, which matters for a non-idempotent write.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely compact and front-loaded: the trigger event leads, followed by bracketed metadata tags for group, endpoint, required param, and cost. Every element carries information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cover the safety profile. However, for a webhook-registration tool sitting among a dozen similar siblings, the absence of any disambiguation or registration-semantics detail leaves a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: fields and precision are self-documented in the schema, while url has no schema description and is only echoed as '[Required: url]'. The description adds no syntax or format detail beyond what the schema already provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line states the trigger event ('Vedic Vimshottari dasha period transitions') and the endpoint (POST /v1/webhooks/dasha-change) plus title make the action (registering a webhook) clear. It does not explicitly differentiate from the many sibling webhook tools (e.g. mahadasha_end), but the resource and event are specific enough to identify the tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing among the ~13 sibling webhook tools. An agent cannot tell from the description when dasha_change should be preferred over mahadasha_end or retrograde_start.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_webhooks_eclipse_alertRegister Eclipse-Alert WebhookBInspect
Subscribe to upcoming eclipse alerts (default 7 days before).
[Group: Webhooks] [Endpoint: POST /v1/webhooks/eclipse-alert] [Required: url] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| event | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare it is a non-read-only, open-world, non-idempotent mutation, so the safety profile is covered. The description usefully adds the cost (10 credits, Tier 1) and the default timing, which are not in structured fields, but says nothing about auth requirements, delivery semantics, or what happens on re-subscription.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core action in one sentence, then uses bracketed metadata for group, endpoint, requirement, and cost. Efficient and scannable with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description covers endpoint, required param, cost, and default behavior. The main omission is usage routing against the streaming eclipse siblings, which is a guidance gap rather than a completeness one.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: `fields` and `precision` are well documented in the schema, while `url` has no schema description. The description only echoes '[Required: url]' and adds no syntax or format detail beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Subscribe') and resource ('upcoming eclipse alerts') with the default lead time (7 days before). Combined with the [Group: Webhooks] tag, an agent can place it against streaming siblings, though it never explicitly contrasts itself with astroway_stream_eclipse_incoming.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 and no named alternatives. The 'default 7 days before' hints at behavior but the description never tells the agent when a webhook subscription is preferable to the eclipse streaming tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_webhooks_idGet Webhook SubscriptionCInspect
Fetch a single webhook subscription owned by the authenticated user.
[Group: Webhooks] [Endpoint: GET /v1/webhooks/{id}] [Required: id] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook id, as returned by `GET /v1/webhooks`. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| url | No | |
| event | No | |
| active | No | |
| created_at | No | |
| failure_count | No | |
| last_delivery_at | No | |
| last_status_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description presents a read operation ('Fetch', GET endpoint), yet annotations declare readOnlyHint=false and idempotentHint=false, which implies possible state change and non-repeatable behavior not explained anywhere. The added cost note ('see your plan — endpoint not in the public credit manifest') is genuinely useful behavioral context beyond the annotations, but the read/write mismatch undermines trust.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The opening sentence is front-loaded and every bracketed metadata line (group, endpoint, required, cost) is compact and earns its place. Slightly mechanical, but no wasted prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 ownership scope is stated. However, the definition leaves the read-only-versus-mutating question unresolved despite the contradictory annotation, and gives no error/auth context for a 3-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself already documents id, fields, and precision in detail, making 3 the baseline. The description only repeats '[Required: id]' and adds no format or syntax meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Fetch a single webhook subscription') plus an ownership scope ('owned by the authenticated user'), which distinguishes it from the sibling list tool astroway_webhooks_webhooks and from astroway_webhooks_subscribe. It stops short of naming those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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; the definition never says to prefer this over the listing endpoint or the subscribe/test siblings. The '[Required: id]' note only restates schema requirements rather than indicating when the call is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_webhooks_id_testTest Webhook DeliveryAInspect
Fire a synthetic delivery to the registered URL with { "test": true } payload. Useful when validating endpoint signature handling. Records the result in failure_count / last_status_code.
[Group: Webhooks] [Endpoint: POST /v1/webhooks/{id}/test] [Required: id] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Webhook id, as returned by `GET /v1/webhooks`. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| delivered | No | |
| duration_ms | No | |
| status_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the safety profile (readOnlyHint=false, openWorldHint=true, idempotentHint=false, destructiveHint=false), so the bar is lower. The description still adds non-obvious behaviour: the delivery is synthetic, the payload is fixed, and the attempt is recorded in failure_count / last_status_code — i.e. the call mutates webhook health state, not just the remote endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The prose is two tight sentences with the action first and the side effect second, no repetition of the title. The bracketed group/endpoint/cost metadata is terse framing rather than padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema, full schema coverage, and annotations present, the description only needs to add the intent and side effects, which it does. The one material omission is whether a failed test increments failure_count enough to affect the webhook's own health/disablement — relevant given it explicitly mentions failure_count.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so `id`, `fields` and `precision` are already fully documented and the baseline is 3. The description adds nothing about parameter syntax or formats; its only extra semantic is that no user-supplied payload parameter exists, which is marginal.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it fires a synthetic delivery to the webhook registered at the given id, and even names the payload used ({ "test": true }). That is enough to tell it apart from the other webhook siblings, which are event subscriptions and CRUD rather than diagnostic test firing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Useful when validating endpoint signature handling" gives an explicit context for reaching for this tool, which is more than most siblings offer. It stops short of naming when not to use it (e.g. to verify real production deliveries or to check endpoint health without mutating counters), so it is clear context without exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_webhooks_mahadasha_endRegister Mahadasha-End WebhookBInspect
Fires N days before a Vimshottari mahadasha ends.
[Group: Webhooks] [Endpoint: POST /v1/webhooks/mahadasha-end] [Required: url] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| event | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, idempotent=false, destructive=false and openWorld=true, so the safety profile is covered. The description usefully adds the cost (10 credits, Tier 1) and the endpoint, but omits behavior an agent would want: that repeated calls create duplicate registrations (idempotentHint=false), that url must presumably be publicly reachable/HTTPS, and what registration returns. With annotations carrying the main load, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short and front-loads the event trigger, followed by compact bracketed metadata (group, endpoint, required, cost). No sentence is wasted, though the bracket block is somewhat skeletal rather than explanatory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 endpoint/cost/required are present. Gaps remain for a webhook-registration tool: the undefined 'N days' is never explained or tied to a configurable parameter, and the relationship to astroway_webhooks_subscribe (does it need to be called first?) is unstated. Adequate but with clear holes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is a middling 67%: fields and precision are documented in the schema, while url carries only type/format with no description. The description's '[Required: url]' merely restates what the schema already marks as required and adds no constraint details (scheme, reachability, retry expectations). Baseline 3 is right since the schema does most of the parameter work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the trigger event ('Fires N days before a Vimshottari mahadasha ends') but never names the actual action of the tool, which is registering/subscribing a webhook. Grouping it under [Group: Webhooks] and the endpoint tag help the agent infer intent, but the wording describes an event rather than a create/subscribe operation. It also does not differentiate from the closely related sibling astroway_webhooks_dasha_change.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The trigger condition ('N days before a mahadasha ends') implicitly signals when this webhook is relevant, which is a form of usage context. However, there is no explicit when-to-use, no when-not-to-use, and no routing to alternatives such as astroway_webhooks_dasha_change or astroway_webhooks_subscribe. Whether a generic subscribe call is a prerequisite 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_webhooks_planetary_hour_tickRegister Planetary-Hour-Tick WebhookBInspect
Fires at every planetary hour boundary (24/day).
[Group: Webhooks] [Endpoint: POST /v1/webhooks/planetary-hour-tick] [Required: url] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| event | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false and openWorldHint=true, so the mutation and idempotency profile is covered. The description adds genuine context the annotations lack – a recurring 24/day firing cadence and a cost of 10 credits (Tier 1) – but says nothing about auth requirements, duplicate-registration behavior, or delivery semantics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely compact and front-loaded: the firing semantics come first, followed by bracketed Group/Endpoint/Required/Cost metadata. Every line carries distinct information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple webhook-registration tool, the description covers the event, cadence, endpoint, cost, and required parameter, and an output schema exists so return values need no explanation. It omits setup/auth and lifecycle details (e.g., how to unregister), which keeps it short of complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, and 'fields'/'precision' are already well documented in the schema, so the schema does the heavy lifting. The description only restates '[Required: url]' and adds no meaning for the undocumented url parameter or for how fields/precision interact with the payload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the trigger event precisely – 'Fires at every planetary hour boundary (24/day)' – and the bracketed endpoint plus title make the register-a-webhook action clear, distinguishing it from the streaming sibling astroway_stream_planetary_hour_changes. It never names that sibling, but the event resource and cadence are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 is given. Nothing routes the agent between this webhook and astroway_stream_planetary_hour_changes (the streaming equivalent) or astroway_webhooks_subscribe, so the agent must infer the choice entirely on its own.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_webhooks_retrograde_endRegister Retrograde-End WebhookBInspect
Fires when any of Mercury–Pluto stations direct.
[Group: Webhooks] [Endpoint: POST /v1/webhooks/retrograde-end] [Required: url] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| event | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (write, non-idempotent, open-world, non-destructive), and the description adds real value by disclosing cost (10 credits, Tier 1) and the concrete endpoint. It does not say whether repeated registrations for the same URL create duplicates (relevant given idempotentHint=false) or what auth/permissions are required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely compact and front-loaded: the trigger condition comes first, followed by tight bracketed metadata. Nothing is wasted, though the bracketed metadata style reads more like reference data than explanatory prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the essential call facts (endpoint, required param, cost, trigger) are covered. Still missing is routing guidance against the many sibling webhook registration tools and any note on auth or duplicate-URL handling for a non-idempotent write.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%, with 'fields' and 'precision' fully documented in the schema and the description only flagging '[Required: url]'. The description adds no syntax, format, or validation meaning beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The trigger condition is stated precisely ('fires when any of Mercury–Pluto stations direct') and the bracketed endpoint plus title 'Register Retrograde-End Webhook' make the action unambiguous. It is clearly distinguishable from astroway_webhooks_retrograde_start by the 'stations direct' event, though the description itself never names that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The definition of the firing event implies when this webhook is relevant, which is genuine selection context. However, it gives no explicit guidance on when to prefer this over the sibling astroway_webhooks_retrograde_start or the other webhook registration tools, and no prerequisites or exclusions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_webhooks_retrograde_startRegister Retrograde-Start WebhookBInspect
Fires when any of Mercury–Pluto stations retrograde.
[Group: Webhooks] [Endpoint: POST /v1/webhooks/retrograde-start] [Required: url] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| event | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose the write profile (readOnlyHint=false, idempotentHint=false, openWorldHint=true), so the description need not repeat safety. It does add useful behavioral context in the form of cost (10 credits, Tier 1) and the endpoint path, but it does not explain delivery semantics, whether re-registering duplicates a subscription, or what the call returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The trigger condition is front-loaded and the bracketed metadata (group, endpoint, required, cost) is compact and scannable. Every element carries information, though the metadata block is somewhat list-like rather than prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 mutation profile. Still, for a tool that registers a persistent subscription, the description leaves open whether repeat calls create duplicate webhooks and how this differs from the retrograde_end sibling, leaving a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, above the baseline threshold, and the two non-required params (fields, precision) are well documented in the schema itself. The description only restates that url is required, adding no syntax or format detail beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the specific trigger event ("Mercury–Pluto stations retrograde") and the endpoint, and the sibling set makes it clearly distinguishable from retrograde_end. However, the verb describes the webhook's firing behavior rather than the tool's action of registering it, so the actual operation ("register") is only conveyed by the title, not the description text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance: nothing tells the agent when to register this webhook versus retrograde_end, subscribe, or the streaming alternatives like stream_retrograde_alerts. Only the required parameter is noted, leaving selection 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_webhooks_return_dueRegister Return-Due WebhookBInspect
Fires N days before a solar/lunar/planetary return is exact.
[Group: Webhooks] [Endpoint: POST /v1/webhooks/return-due] [Required: url] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| event | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the agent knows this is a non-destructive, non-idempotent creation. The description usefully adds cost (10 credits, Tier 1) and the endpoint, but it never explains how the 'N days' lead time is configured — no such parameter exists in the schema — which is a meaningful behavioral gap for a registration tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded sentence plus compact bracketed metadata for endpoint, required param, and cost. Efficient, though the bare bracketed tags carry detail that could be more integrated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 needed. The main incompleteness is that the description names an 'N days' lead time with no corresponding parameter or configuration note, and gives no differentiation from the surrounding webhook tools — leaving the agent to infer setup mechanics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%: 'fields' and 'precision' are documented in the schema, and the description only adds '[Required: url]' for the undescribed parameter. With the schema doing most of the lifting, the description adds little parameter-level meaning beyond restating requiredness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific event trigger ('fires N days before a solar/lunar/planetary return is exact'), which combined with the name 'return_due' and the webhooks group tells an agent this sets up a return-anticipation subscription. However, it never explicitly says it 'registers' or 'creates a webhook', relying on the title and endpoint metadata to convey the action; it also doesn't differentiate from the many sibling webhook tools (ingress, retrograde, transit_trigger) beyond the event name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing to alternative webhook siblings. The metadata supplies the endpoint, required parameter, and cost, but not the conditions under which this webhook is the right choice versus the other subscribe-style tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_webhooks_sign_ingressRegister Sign-Ingress WebhookBInspect
Fires when any tracked planet ingresses a new sign.
[Group: Webhooks] [Endpoint: POST /v1/webhooks/sign-ingress] [Required: url] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| event | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safety profile (not read-only, open-world, non-idempotent, non-destructive). The description adds material context beyond them: the endpoint (POST /v1/webhooks/sign-ingress) and a cost of 10 credits (Tier 1), which is a genuinely useful operational trait. It does not explain lifecycle details such as what happens on re-registration, but the cost and endpoint additions are 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The event trigger is front-loaded and the bracketed metadata lines are compact, scannable, and each carries useful facts (group, endpoint, required param, cost). No filler prose, though the lines are somewhat mechanical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, but the definition never clarifies what 'tracked planet' means or how the subscription relates to the surrounding webhook-management tools. For a costed, non-idempotent registration call in a crowded sibling set, this is minimally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: `fields` and `precision` are well documented with examples in the schema, but `url` is undescribed. The description's only parameter contribution is '[Required: url]', which merely restates the schema's required array and adds no meaning such as callback format or expected payload delivery behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Together with the title, the description states a specific event trigger (planet sign ingress) and the implicit action (register a webhook). It distinguishes itself from other webhook siblings by event type rather than by a generic 'webhook' label. It does not explicitly restate the verb 'register' in the description body, but the event scope is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 comparison to alternatives, despite many overlapping siblings (astroway_stream_ingress, astroway_webhooks_subscribe, astroway_webhooks_transit_trigger). The agent is left to infer that this is the webhook version of an ingress event versus a streaming variant.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_webhooks_subscribeCreate Webhook SubscriptionBInspect
Subscribe to outbound webhook deliveries. Events: report-ready, transit-alert, eclipse-alert. Returns a signing_secret used to verify the X-AstroWay-Signature HMAC-SHA256 header on each delivery.
[Group: Webhooks] [Endpoint: POST /v1/webhooks/subscribe] [Required: event, url] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| event | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| url | No | |
| event | No | |
| active | No | |
| created_at | No | |
| signing_secret | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare the write/idempotency/openWorld profile, so the bar is lower, and the description still adds real value: it names the signing_secret return and the X-AstroWay-Signature HMAC-SHA256 verification mechanism, plus the 10-credit cost. It does not cover delivery retry behavior or what happens on a duplicate subscription (relevant given idempotentHint=false).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded and tight: the core action, the security detail, and the metadata block all earn their place. The only weak point is the truncated event list, which spends a sentence on information that is both incomplete and inconsistent with the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, yet the description helpfully notes the signing_secret, so return values are adequately covered. The gap is the event enumeration mismatch (3 listed vs 12 in the enum) and the absence of any subscription-management context (e.g., how this relates to astroway_webhooks_id or the per-event siblings) for a tool with 43 siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% and the schema already documents `fields` and `precision` in detail, so the description contributes little beyond the required-parameter line. The event list it does provide ('report-ready, transit-alert, eclipse-alert') is a partial and potentially misleading subset of the 12-value enum in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Subscribe to outbound webhook deliveries') with the effect (returns a signing_secret) clearly named. However, it does not distinguish itself from the many sibling per-event webhook tools (astroway_webhooks_dasha_change, astroway_webhooks_eclipse_alert, etc.), leaving the agent to infer whether this is the generic subscription entry point or a duplicate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus the sibling per-event webhook tools or the stream_* alternatives. The only contextual cue is '[Required: event, url]', which restates the schema rather than advising usage. An agent gets no when/when-not framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_webhooks_transit_triggerRegister Transit-Trigger WebhookBInspect
Subscribe to natal-transit aspect threshold-crossings.
[Group: Webhooks] [Endpoint: POST /v1/webhooks/transit-trigger] [Required: url] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| url | No | |
| event | No | |
| active | No | |
| signing_secret | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare write (readOnlyHint=false), openWorld, non-idempotent, non-destructive, so the safety profile is covered. The description usefully adds the 10-credit cost and the precise endpoint, but says nothing about duplicate-subscription behavior (relevant given idempotentHint=false), auth, or delivery mechanics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Lead sentence is front-loaded and the bracketed metadata is compact and scannable. The Group/Endpoint lines are arguably redundant with the tool name, but nothing is bloated and the whole thing is short.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 carry the safety profile. However, for a stateful webhook registration the description omits operational essentials such as how notifications are delivered, where to manage/unsubscribe, and duplicate handling, leaving it adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%; 'fields' and 'precision' are already well described in the schema, while 'url' has format/limit but no prose. The description reinforces that url is required and signals the cost, but adds no meaning (validation rules, target semantics) beyond what structured fields already convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Subscribe to natal-transit aspect threshold-crossings.' This distinguishes it from the many sibling webhook events (sign_ingress, retrograde_start, void_of_course_start, etc.) by the event category. It stops short of naming any sibling explicitly, so sibling disambiguation still depends on the agent parsing the event concept.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by 'Subscribe to...' – an agent can infer you call this when you want notifications for transit aspect threshold-crossings. No when-not conditions, prerequisites, or alternatives (e.g., the pollable stream_transit_alerts or generic webhooks_subscribe) are named. The cost and required-param brackets are 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_webhooks_void_of_course_startRegister VOC-Start WebhookBInspect
Fires at the start of every VOC Moon period.
[Group: Webhooks] [Endpoint: POST /v1/webhooks/void-of-course-start] [Required: url] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| event | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose the safety profile (readOnlyHint=false, idempotentHint=false, openWorldHint=true, destructiveHint=false), so the bar is lower. The description usefully adds the cost (10 credits, Tier 1) and endpoint, which annotations do not carry. It does not, however, explain lifecycle consequences of idempotentHint=false — e.g. what happens on duplicate registration or how a webhook is later removed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The event statement is front-loaded, followed by compact bracketed metadata (group, endpoint, required, cost) with no filler sentences. Every line carries information, though the format is terse rather than explanatory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. Still, for a 3-parameter webhook registration tool the description omits practical necessities: duplicate-registration behavior, auth requirements, and how the webhook interacts with the streaming sibling. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%; `fields` and `precision` are already well-documented in the schema, and `url` carries only a format constraint. The description adds only '[Required: url]', which duplicates the schema's required array. It does not compensate for the undocumented `url` semantics (callback expectations, verification).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the trigger event precisely ('start of every VOC Moon period'), and combined with the title 'Register VOC-Start Webhook' an agent can distinguish this from sibling webhook tools like astroway_webhooks_retrograde_start or astroway_webhooks_sign_ingress. However, the body text describes the webhook's firing behavior rather than the tool's registering action, so the core verb ('registers a webhook') is only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 reference to alternatives such as astroway_stream_void_of_course (streaming) or astroway_webhooks_subscribe. The agent is left to infer that this registers a persistent webhook rather than an ephemeral stream.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_webhooks_webhooksList Webhook SubscriptionsCInspect
List all active webhook subscriptions for the authenticated user.
[Group: Webhooks] [Endpoint: GET /v1/webhooks] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| subscriptions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description describes an inherently read-only operation ('List all active webhook subscriptions', GET /v1/webhooks), but the annotations declare readOnlyHint=false and idempotentHint=false. This is a direct contradiction that would mislead an agent about the operation's safety profile. The cost-tier and endpoint metadata are useful, but the read/write mismatch dominates.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One clear sentence front-loads the purpose, followed by compact structured metadata (group, endpoint, cost). Nothing is wasted, though the metadata tags are boilerplate rather than description prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 purpose is stated. But there is no usage context, no pagination/filtering note (only 'active' is implied), and the annotation contradiction leaves the agent's mental model incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both 'fields' (compact mode) and 'precision' fully documented in the schema, so the baseline is 3. The description adds no parameter detail of its own and never mentions the compact-mode projection controls, so it neither compensates nor detracts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List all active webhook subscriptions') plus the scope ('for the authenticated user'), so the agent knows exactly what it retrieves. However, it does not distinguish itself from the many sibling webhook tools (subscribe, id, id_test, event-specific triggers), so an agent can't rule out alternatives 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.
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 named alternatives. The agent is left to infer that this is the read side of the webhook family from the verb 'List' alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_wellness_biorhythmBiorhythm (JSON)BRead-onlyIdempotentInspect
Physical (23d), emotional (28d) and intellectual (33d) cycle values per day, plus the critical days where a cycle crosses zero. Data twin of POST /render/biorhythm.
[Group: Wellness] [Endpoint: POST /v1/wellness/biorhythm] [Required: birthDate] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| rangeEnd | No | ||
| birthDate | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| rangeStart | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| days | No | |
| range | No | |
| cycles | No | |
| birthDate | No | |
| disclaimer | No | |
| criticalDays | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuine non-schema context: a cost of 10 credits (Tier 1) and the backing endpoint, which lets the agent weigh budget before calling. It does not describe latency, pagination, or how critical days are flagged, but billing disclosure is a real addition 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence front-loads the useful substance (cycle lengths and outputs) and the bracketed metadata is compact. Nothing is padded, though the metadata block is a flat dump rather than integrated prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. What is missing is date-range semantics (default range, whether rangeStart/rangeEnd are required for a meaningful 'per day' series) and a clearer rule for choosing this over render_biorhythm. Adequate but with clear gaps for a 5-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40%: fields and precision are documented in the schema, but rangeStart, rangeEnd and birthDate have no descriptions anywhere. The description adds little for them — 'per day' hints at a date range and '[Required: birthDate]' merely repeats the schema's required array. With half the parameters undocumented, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact output (physical 23d, emotional 28d, intellectual 33d cycle values per day plus zero-crossing critical days), which is far more specific than the title 'Biorhythm (JSON)'. It also differentiates itself from the sibling render_biorhythm by calling itself the 'Data twin of POST /render/biorhythm'. It lacks an explicit action verb (no 'compute'/'returns'), so it reads as an output spec rather than a task statement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'Data twin of POST /render/biorhythm' suggests picking this over the render variant when raw JSON is wanted, and the metadata block names the Wellness group and required birthDate. There is no explicit when/when-not statement and no named alternative within the tool set, so the agent must infer the selection rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_wellness_crystalsHealing Crystals by SignCRead-onlyIdempotentInspect
Primary + supportive crystals + intentions per zodiac sign.
[Group: Wellness] [Endpoint: POST /v1/wellness/crystals] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| element | No | |
| sunSign | No | |
| crystals | No | |
| disclaimer | No |
TDQS
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 safety is covered. The description adds genuine non-annotation context in the form of cost (10 credits, Tier 1), group, and the POST endpoint. It says nothing about what is computed or returned, but the cost disclosure is real added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very compact and front-loaded: the output sentence comes first, followed by structured bracket metadata that each carry distinct operational facts. There is no filler, though the terse bracket style leaves the central question (which sign, from which data) unanswered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 15-parameter tool that derives a zodiac sign from natal-style inputs, the description omits the derivation logic, omits any sibling differentiation against astroway_esoteric_crystals_by_zodiac_sign, and documents none of the optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description should compensate but does not. It merely repeats the four required fields (date, time, latitude, longitude) that the schema already marks required, and adds no semantics for the remaining eleven parameters (fields, ayanamsa, timezone, houseSystem, etc.).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific output ('primary + supportive crystals + intentions per zodiac sign'), which is clearer than a restated name. However, it never explains how the zodiac sign is determined from the required date/time/latitude/longitude inputs, and it does not distinguish itself from the near-identical sibling astroway_esoteric_crystals_by_zodiac_sign. The core operation is thus only partially defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 named alternatives are given despite several overlapping crystal tools in the sibling list. The bracketed metadata is operational (endpoint, required fields, cost) rather than selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_wellness_cycleWellness Cycle MilestonesBRead-onlyIdempotentInspect
Age-based wellness milestones (Saturn return, Uranus opposition, hormonal shifts), nearby + full list.
[Group: Wellness] [Endpoint: POST /v1/wellness/cycle] [Required: birthDate] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| birthDate | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| targetDate | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| ageYears | No | |
| nearbyMilestones | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds one genuine behavioral fact — that the result contains both nearby and full milestone lists — plus cost/endpoint metadata, but says nothing about how 'nearby' is computed or what the targetDate does. Useful but thin 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is compact and front-loaded, and the bracketed metadata (group, endpoint, required param, cost) is scannable and earns its space by surfacing the 10-credit cost and required input. Slightly terse rather than padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 not needed, and the required param and cost are stated. What's missing is disambiguation from sibling tools that compute similar age/cycle milestones; otherwise an agent has what it needs to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: fields and precision are documented in-schema, while birthDate and targetDate have no descriptions. 'Age-based' weakly implies birthDate and 'nearby' hints at a reference date for targetDate, but neither is stated, so the description only partially compensates for the missing param documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (age-based wellness milestones) and clarifies it with concrete examples (Saturn return, Uranus opposition, hormonal shifts), which is more informative than the title alone. It does not, however, distinguish itself from overlapping siblings like astroway_family_saturn_return_cycles or astroway_wellness_biorhythm, so an agent must still infer which to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use guidance and no alternatives named, despite the crowded wellness and Saturn-return-adjacent sibling space. The only usage signal is the implicit 'nearby + full list' scope, which describes output rather than when to choose this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_wellness_dietDietary SuggestionsBRead-onlyIdempotentInspect
Element-based dietary focus: emphasize/avoid foods + cooking style.
[Group: Wellness] [Endpoint: POST /v1/wellness/diet] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| diet | No | |
| element | No | |
| sunSign | No | |
| disclaimer | No |
TDQS
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 useful behavioral facts not in the annotations: the 10-credit Tier 1 cost and the required input set. It still says nothing about output shape, but that is largely covered by the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and free of filler, and the bracket block is a compact, scannable metadata list. Slightly terse overall, but every line carries operational information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the cost/required/endpoint block covers the invocation basics. However, for a 15-parameter astrological tool, the description does not help an agent understand which optional settings matter, leaving a real gap given the low schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% across 15 parameters, so the description should compensate but does not. It merely repeats the four required fields that the schema already marks as required, and adds no meaning for the influential optional parameters (zodiacType, houseSystem, ayanamsa variants) that shape the derivation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and output concept: element-based dietary focus covering foods to emphasize/avoid plus cooking style. This clearly separates it from adjacent wellness siblings like herbs, exercise, or yoga, though it offers no explicit contrast with the similar astroway_pet_diet_by_sign.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The bracket block gives operational metadata (group, endpoint, cost, required inputs) but no when-to-use guidance, no prerequisites, and no mention of alternatives such as the herbs or medical-astrology wellness tools. An agent must infer the context entirely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_wellness_exerciseExercise RecommendationsBRead-onlyIdempotentInspect
Element-based intensity + recommended/avoid activities.
[Group: Wellness] [Endpoint: POST /v1/wellness/exercise] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| element | No | |
| sunSign | No | |
| exercise | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered structurally. The description usefully adds behavioral context the annotations lack: it is a POST at /v1/wellness/exercise costing 10 credits (Tier 1). It does not disclose response shape or any failure behavior, so a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One content line plus a tight bracketed metadata block; front-loaded and free of filler. The metadata lines earn their place by conveying cost and endpoint, though the required-params line duplicates the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 read-only safety profile, so the description is adequate for a basic call. However, for a 15-parameter tool with low schema coverage, it omits any guidance on the many astrological parameters an agent may need to set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description carries a heavier burden — yet it merely restates the four required fields already marked required in the schema (date, time, latitude, longitude). The optional ayanamsa, timezone, houseSystem, fields and precision parameters get no semantic help from the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the output content specifically — 'element-based intensity + recommended/avoid activities' — which tells an agent what this tool returns and distinguishes it from pure chart tools. It does not differentiate from close wellness siblings like astroway_wellness_yoga or astroway_wellness_diet, 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.
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 routing to alternatives among the many wellness siblings. The metadata block supplies endpoint, required params and cost, but none of that tells the agent when this tool is the right choice versus yoga, diet, or cycle.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_wellness_herbsHerbs by Planetary RulerCRead-onlyIdempotentInspect
Herbs ruled by sign's traditional planetary lord (Culpeper). Includes all 7 classical planets.
[Group: Wellness] [Endpoint: POST /v1/wellness/herbs] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| sunSign | No | |
| disclaimer | No | |
| herbsForRuler | No | |
| allPlanetHerbs | No | |
| traditionalRuler | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so the safety profile is covered. The description adds genuinely non-structured context: cost (10 credits, Tier 1), the endpoint, and the scope limit of 7 classical planets. It does not discuss caching or per-call limits, but against the annotation baseline this is solid added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: the purpose sentence leads, followed by scannable bracketed metadata. Nothing is padded, though the bracket block is terse enough to be cryptic rather than efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with 33% schema coverage, the definition leaves key mechanics unexplained — notably how a moment/location chart maps to a sign ruler and whether the sidereal enums affect the result. An output schema exists so return values need not be described, but the interpretive link between inputs and the herb list is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description needs to compensate and does not. Its 'Required: date, time, latitude, longitude' line merely restates what the schema already enforces, and it says nothing about city, name, cosmogram, zodiacType, houseSystem, or how ayanamsa/zodiacType choices change which planetary ruler is used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the resource (herbs) and the organizing principle (traditional planetary ruler per Culpeper, all 7 classical planets), which does differentiate it from the other wellness siblings like crystals or diet. However, it never states what the response contains or which sign's ruler is being used, even though the tool requires a full chart (date/time/lat/long). The purpose is inferable but not pinned down.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no routing to or from the nine sibling wellness tools (biorhythm, crystals, diet, exercise, etc.). The only selection help is the bracketed cost and required-parameter line, which is metadata rather than usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_wellness_medical_astrologyMedical Astrology (Body Rulership)BRead-onlyIdempotentInspect
Body parts ruled by sun-sign per traditional Melothesia (head→toe). Returns primary + secondary + vulnerabilities.
[Group: Wellness] [Endpoint: POST /v1/wellness/medical-astrology] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| element | No | |
| sunSign | No | |
| disclaimer | No | |
| bodyRulership | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description usefully adds the endpoint, the credit cost (10 credits, Tier 1), and the required inputs, which is real behavioral context beyond the annotations, but it omits any auth or rate-limit notes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in one sentence, followed by a compact metadata block. The required-parameters line duplicates the schema, but the whole definition is short and easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 notes what the output contains. However, for a 15-parameter tool with low schema coverage and no usage guidance, the definition leaves the agent under-informed about how to invoke it well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate. It only restates the four required parameters already present in the schema's required array and explains none of the optional controls (timezone, ayanamsa, houseSystem, fields, precision).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific subject and result: body parts ruled by sun-sign via traditional Melothesia, returning primary/secondary/vulnerabilities. This is clearly distinct from wellness siblings like herbs, diet, or exercise, though it never names an alternative to sharpen the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of the wellness siblings it could be confused with. An agent can infer it is a medical-astrology reading, but nothing routes it against alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_wellness_mental_healthMental-Health ProfileBRead-onlyIdempotentInspect
Element-profile across luminaries + Mercury/Venus/Mars; identifies dominant element + strengths/vulnerabilities/coping.
[Group: Wellness] [Endpoint: POST /v1/wellness/mental-health] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| disclaimer | No | |
| mentalProfile | No | |
| elementProfile | No | |
| dominantElement | No |
TDQS
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 the annotations don't: the 10-credit Tier 1 cost and the POST endpoint. It does not disclose determinism of the element result or any error conditions, so it adds moderate value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core sentence is dense and front-loaded, and the bracketed metadata is easy to scan. There is no filler or redundancy. Slightly terse on the qualitative side, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 cost/endpoint/required inputs are stated. However, for a 15-parameter tool with 67% of parameters undocumented, the description leaves an agent without guidance on the sidereal/house-system optional params or when this tool is preferred over element-balance siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (15 params), so the description should compensate for the undocumented ones (cosmogram, zodiacType, houseSystem, name, city). Instead it only repeats the four required parameters already marked required in the schema, adding no syntax, defaults, or meaning for the optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a precise computation (element profile) over specific points (luminaries + Mercury/Venus/Mars) and enumerates the outputs (dominant element, strengths, vulnerabilities, coping). This is far more than a restated title. It stops short of naming which sibling it replaces (e.g. wellness_medical_astrology or psya_element_balance), so it doesn't earn the top score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With eight wellness siblings plus many element-balance tools (psya_element_balance, bazi_element_balance, natal element tools), an agent gets no signal on when this profile is the right pick versus those alternatives. Group/endpoint/cost metadata is 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_wellness_sleep_cyclesMoon-Phase Sleep TipsARead-onlyIdempotentInspect
Sleep recommendations per moon phase. Pair with /sun-times to find current phase.
[Group: Wellness] [Endpoint: POST /v1/wellness/sleep-cycles] [Required: date] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| date | No | |
| note | No | |
| disclaimer | No | |
| moonPhaseTips | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only, idempotent, non-destructive profile, so the description is not obligated to cover safety. It does add real behavioral context the annotations do not carry: the credit cost (10 credits, Tier 1), the endpoint, and the phase-dependency of the output. It stops short of describing pagination or response shape, but the output schema covers return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose and the pairing hint are front-loaded in two tight sentences, and the bracketed metadata lines (group, endpoint, required, cost) are structured and scannable rather than prose padding. Minor overlap with the title 'Moon-Phase Sleep Tips' is the only redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 covering the return payload, the description supplies the remaining essentials - required input, cost, and endpoint. The only soft spot is that the date-to-phase relationship is left implicit, making the sun-times pairing hint slightly ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: `fields` and `precision` carry solid descriptions in the schema, while `date` is only constrained by a regex pattern. The description adds only 'Required: date', which merely restates the structured required array, so it contributes almost nothing beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it returns sleep recommendations keyed to a moon phase, which cleanly separates it from wellness_diet, wellness_exercise, or wellness_cycle. It does not, however, name or contrast any sibling tool, so the agent must infer differentiation from the resource phrase alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one concrete usage instruction - pair with /sun-times to determine the current phase - which is genuinely helpful orchestration guidance. But it never states when to prefer this over the other wellness tools, nor any exclusions or prerequisites beyond the required date.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_wellness_yogaYoga Practice by SignCRead-onlyIdempotentInspect
Sign-specific yoga focus + asanas + pranayama.
[Group: Wellness] [Endpoint: POST /v1/wellness/yoga] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| yoga | No | |
| element | No | |
| sunSign | No | |
| disclaimer | No |
TDQS
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 does add genuinely useful non-annotation context, the credit cost (10 credits, Tier 1) and the endpoint/group, but says nothing about response shape, whether results vary with the sidereal options, or any auth/billing prerequisites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is a single front-loaded purpose line followed by compact bracketed metadata, with no filler sentences. It is efficiently structured, though the metadata tags substitute for substance rather than complement it.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter chart-driven tool, the description leaves most parameter semantics and any derivation logic (how the sign is computed) unexplained. Output schema and annotations carry part of the burden, but the definition is not complete enough for an agent to call this confidently without inspecting the full schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters. The description's '[Required: date, time, latitude, longitude]' merely duplicates the schema's required array, and it says nothing about the many computation-affecting parameters (ayanamsa, zodiacType, houseSystem, fields, precision). It therefore adds essentially no semantic value beyond the structured fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the concrete outputs (yoga focus, asanas, pranayama) and scopes them to a sign, which distinguishes it from the other wellness siblings (diet, exercise, crystals, sleep). However, it never says how the sign is derived from the date/time/latitude/longitude inputs, so the 'sign-specific' premise is left vague for an agent that must decide whether this tool fits a user's request.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is a '[Required: ...]' tag listing inputs, which is not the same as when-to-use/when-not-to-use or naming an alternative. There is no indication of what kind of user request should route here versus astroway_wellness_exercise or astroway_wellness_medical_astrology.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_western_chartNatal ChartARead-onlyIdempotentInspect
Calculate a full natal chart: planets, house cusps, aspects, sect, and angular data for a given birth moment. When the birth time is unknown, send timeUnknown: true instead of time and the response carries planets and aspects with houses, angles and sect set to null, plus a timeUnknown block giving the range the Moon covers that day. With ?lang= the response adds localized: planet, sign and aspect names in that language, keyed by the English names.
[Group: Core] [Endpoint: POST /v1/chart] [Required: date, latitude, longitude] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timeUnknown | No | ||
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| meta | No | |
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| antiscia | No | |
| chartSect | No | |
| julianDay | No | |
| localized | No | |
| houseAspects | No | |
| siderealTime | No | |
| antisciaAspects | No | |
| parallelAspects | No |
TDQS
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 bar is lower. The description still adds real behavioral detail: the nulling of houses/angles/sect under timeUnknown, the supplementary timeUnknown block describing the Moon's daily range, and the localization overlay behavior. It does not mention the 20-credit cost or any rate limits, which would have been useful for an agent weighing calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, all working: purpose first, then the timeUnknown branch, then localization. No filler. It is dense and the ?lang= sentence is slightly cryptic, but every sentence carries load and the most important information leads.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter, 20-credit tool, the description covers the headline capability and the most consequential branch, which is the right instinct. But with an output schema present it wisely skips return-value narration, leaving the main remaining gap the unexplained configuration surface (house-system codes, zodiacType, ayanamsa selection) that an agent will otherwise have to guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31% across 16 parameters, so the description needs to compensate. It supplies meaningful semantics for timeUnknown (undefined in the schema) and for the time-vs-timeUnknown branch, plus the ?lang= localization parameter that does not even appear in the schema. However, ten-plus parameters (zodiacType, houseSystem's opaque enum codes, cosmogram, ayanamsaId, city, name) get no explanation from either source.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Calculate a full natal chart') and enumerates the payload (planets, house cusps, aspects, sect, angular data), which implicitly separates it from narrower siblings like astroway_western_planets or astroway_western_ephemeris. It never names an alternative tool, so the differentiation is left to inference rather than made explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The one usage rule given is internal to the tool ('when the birth time is unknown, send timeUnknown: true'), which is really parameter guidance rather than tool-selection guidance. There is no statement of when to prefer this over astroway_western_planets, astroway_render_wheel_western, or the horoscope siblings, so selection is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_western_ephemerisEphemeris RangeARead-onlyIdempotentInspect
Return planet positions for a date range with configurable step (min 0.01 days). Max range: 1 year for sub-day steps, 5 years otherwise. Optionally filter by planetIds.
[Group: Core] [Endpoint: POST /v1/ephemeris] [Required: startDate, endDate] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| endDate | Yes | ||
| stepDays | No | ||
| planetIds | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| startDate | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| ephemeris | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds real operational context beyond that: the step/range ceiling interaction, the required parameters, and the 100-credit Tier 4 cost, which the agent needs for budgeting. It stops short of describing pagination or response truncation on long ranges.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core behavior, then a compact block of required/endpoint/cost metadata. Every line carries information; the only slight redundancy is restating the required parameters that are already evident from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description covers the constraints that matter for a ranged computation tool — step floor, range ceilings, optional planet filter, and cost. Only minor gaps remain around date format and behavior on very long ranges.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33%: fields and precision carry their own descriptions, but startDate, endDate, stepDays and planetIds are undocumented in the schema. The description partially compensates by giving the stepDays unit floor and marking planetIds as an optional filter, but adds nothing about date format or step defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource — return planet positions over a date range with a configurable step — and adds scoping constraints (min step, max range). It is clearly distinguishable from single-moment siblings like astroway_western_planets, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states hard operating limits (step min 0.01 days; 1-year cap for sub-day steps, 5 years otherwise) and notes planetIds is optional, which helps the agent use it correctly. However, it gives no when-to-use-vs-siblings guidance, e.g. when to prefer a single-chart planets call over a ranged ephemeris.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_western_planetsPlanet PositionsARead-onlyIdempotentInspect
Calculate raw planet longitudes for a given date/time without full chart context (no houses, no aspects).
[Group: Core] [Endpoint: POST /v1/planets] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| planets | No |
TDQS
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 contribution is the cost metadata ('10 credits (Tier 1)') and the endpoint, which are genuinely useful and not present in structured fields. It does not disclose response shape, but an output schema exists to carry that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and free of filler, and the bracketed metadata block is compact and scannable. The required-parameter line is arguably redundant with the schema, which costs it a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter calculation tool with tropical/sidereal and multiple ayanamsa options, the description does not indicate that the frame of reference is selectable or which defaults apply. It is adequate on cost and endpoint and an output schema covers returns, but the omission of frame-related options leaves a meaningful gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, and the description compensates by re-listing the four required params (date, time, latitude, longitude) that the schema's required array already declares. It adds nothing about the consequential optional parameters (zodiacType, ayanamsa/ayanamsaId, timezone, precision, fields) that materially change the returned longitudes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Calculate raw planet longitudes') and immediately bounds the scope with '(no houses, no aspects)'. That negative scope cleanly separates it from the heavier sibling astroway_western_chart, so an agent can pick it without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The parenthetical 'without full chart context (no houses, no aspects)' effectively tells the agent when this tool is the right level of detail, i.e. when only longitudes are needed. It stops short of naming an explicit alternative tool (e.g. astroway_western_chart) or stating when-not conditions, so it is clear context without explicit routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_western_sun_timesSun TimesARead-onlyIdempotentInspect
Calculate sunrise, sunset, twilight times, and day length for a given date and geographic location.
[Group: Core] [Endpoint: POST /v1/sun-times] [Required: date, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| latitude | Yes | ||
| timezone | No | 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. | |
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Hours 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
| Name | Required | Description |
|---|---|---|
| dawn | No | |
| dusk | No | |
| sunset | No | |
| sunrise | No | |
| dayLength | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered without the description. The description adds the one behavioral fact annotations cannot express — a 10-credit Tier 1 cost — but says nothing about determinism, input validation failures, or output units.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence does the core work and is front-loaded, followed by compact bracketed metadata. The metadata is cheap and useful (cost is not in the schema), though the 'Required' line duplicates the schema's required array, which costs it a point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 need not explain return values, and annotations cover the safety profile; for a low-complexity computation tool the definition is close to sufficient. A minor gap remains around which twilight definitions (civil, nautical, astronomical) are returned and the time units emitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 57%: fields, timezone, precision, and timezoneOffset carry rich schema-level text, while date, latitude, and longitude are bare. The description only restates the required trio, which the schema's required array already encodes, so it adds no meaning about coordinate sign convention, date range limits, or how timezone interacts with timezoneOffset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb (Calculate) plus a concrete resource list (sunrise, sunset, twilight times, day length) and the scope (given date and geographic location). No sibling tool in the list computes solar day events, so the resource itself distinguishes it from astroway_calendar_moon_phase, astroway_horoscope_daily, and the rest.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The bracketed metadata states the endpoint, the three required parameters, and the credit cost, which orients the agent, but there is no explicit when-to-use versus when-not, and no named alternative for related needs (e.g., planetary hours or moon phase). Usage is implied by the purpose statement 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_whitelabel_configGet White-label ConfigARead-onlyIdempotentInspect
Read the authenticated user's branding overrides (logo, colour palette, font, footer text, custom domain). On first access, defaults are seeded.
[Group: White-label] [Endpoint: GET /v1/whitelabel/config] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| updated_at | No | |
| font_family | No | |
| footer_text | No | |
| custom_domain | No | |
| primary_color | No | |
| domain_verified | No | |
| secondary_color | No | |
| logo_storage_key | No | |
| domain_last_checked_at | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the bar is lower, and the description still adds two things the annotations cannot: the lazy-initialization side effect ('defaults are seeded' on first access) and the explicit cost (10 credits, Tier 1). It does not mention auth scope or rate limits, keeping it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded prose sentences carry the payload, with group/endpoint/cost as compact bracketed metadata. Nothing is padded, though the cost line duplicates information an agent may also derive from the cost-estimate sibling.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 unnecessary; the description still names the config contents. Seeding behavior and cost are covered. The only gap is routing guidance relative to the three whitelabel siblings, which no dimension besides usage covers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters (fields, precision) are fully documented in the schema, so the baseline is 3. The description adds no meaning about compact mode, dotted paths, or precision beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Read) and resource (the authenticated user's branding overrides) and enumerates the concrete fields returned (logo, palette, font, footer, custom domain). It is clearly distinct from the domain/logo/preview siblings by subject matter, though it never names those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only contextual sentence is 'On first access, defaults are seeded', which is behavioral, not directional. There is no statement of when to call this versus astroway_whitelabel_preview, astroway_whitelabel_logo, or astroway_whitelabel_domain_verify, 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_whitelabel_domain_verifyVerify Custom Domain DNSBRead-onlyIdempotentInspect
Check whether the configured custom_domain points to api.astroway.info via CNAME. Persists the result. If only A records resolve, returns them with a hint to switch to CNAME.
[Group: White-label] [Endpoint: POST /v1/whitelabel/domain/verify] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| domain | No | |
| resolved | No | |
| verified | No | |
| expectedTarget | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explicitly states 'Persists the result', i.e. a write/side effect, while the annotations declare readOnlyHint=true (does not modify its environment). That is a direct contradiction. The A-record fallback detail is useful, but the stated persistence behavior conflicts with the declared read-only contract.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences front-load the behavior and the fallback case, followed by a compact metadata block (group, endpoint, cost) with no wasted prose. Slightly dense but well ordered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. However the description omits prerequisites (domain must first be configured via whitelabel_config) and does not clarify what persisting the result affects, which matters for a verification tool that claims to write state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both generic response-shaping params (fields, precision) are already fully documented in the schema. The description adds no parameter-level meaning of its own, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Check whether the configured custom_domain points to api.astroway.info via CNAME') and even names the exact expected target, so an agent can tell immediately what the call does. It is cleanly separable from the other whitelabel siblings (config/logo/preview), none of which overlap with DNS verification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies the right moment ('the configured custom_domain', i.e. after setup) and explains the A-record fallback outcome, but never explicitly says when to use this versus astroway_whitelabel_config or after which setup step, and gives no prerequisites or when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_whitelabel_logoUpload White-label LogoBRead-onlyIdempotentInspect
Upload a logo as a base64 data URL (data:image/<png|jpeg|svg+xml|webp>;base64,...). Maximum 512 KB. Replaces any prior logo and deletes the old file from storage.
[Group: White-label] [Endpoint: POST /v1/whitelabel/logo] [Required: data_url] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| data_url | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| logo_url | No | |
| mime_type | No | |
| byte_length | No | |
| logo_storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reports a mutating, destructive behavior: it 'Replaces any prior logo and deletes the old file from storage'. The annotations declare readOnlyHint=true and destructiveHint=false, which directly contradicts that. Per the rubric this is an annotation contradiction and scores 1, even though the description itself is the more informative half.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the action front-loaded, followed by a scannable metadata block. Slight redundancy: the `data:image/<png|jpeg|svg+xml|webp>` enumeration restates the schema's pattern, and the bracketed metadata is boilerplate rather than description content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 key mutation facts (overwrite + delete of the prior file, size cap, 10-credit Tier 1 cost) are disclosed. Still missing for a 3-parameter write tool: permission/auth requirements and any explanation of the two undocumented compaction parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, so the schema carries part of the load. The description does add real meaning for the required data_url beyond the regex (the 512 KB limit, the readable format list), but it says nothing about `fields` and `precision`, which look like copy-pasted compaction parameters with no stated role in a logo upload.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Upload a logo') plus the accepted format, the 512 KB ceiling, and the overwrite semantics. Among the white-label siblings (astroway_whitelabel_config, astroway_whitelabel_domain_verify, astroway_whitelabel_preview) an agent can tell immediately that this one sets the brand mark rather than configuring or previewing it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the [Group: White-label] and [Endpoint: POST /v1/whitelabel/logo] metadata make the context clear, but there is no explicit when-to-use, no statement of prerequisites (must the white-label be configured or the domain verified first?), and no routing to or away from the sibling whitelabel tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_whitelabel_previewPreview White-label ReportARead-onlyIdempotentInspect
Render a sample natal report PDF using the authenticated user's white-label configuration (colours, font, footer, logo). Pass chart to use your own birth data; omit to use the bundled Kyiv 1990 sample.
[Group: White-label] [Endpoint: POST /v1/whitelabel/preview] [Cost: 5,000 credits (Tier 7)] ⚠️ Premium — ~50% of free monthly budget. Confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| preview | No | |
| expires_at | No | |
| page_count | No | |
| byte_length | No | |
| duration_ms | No | |
| storage_key | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so the safety profile is covered. The description adds genuinely new behavioural facts they cannot express: the 5,000-credit Tier 7 price, its magnitude (~50% of the free monthly budget), a user-confirmation requirement, the POST endpoint, and the dependency on the authenticated user's stored white-label config.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly written sentences: the render action and theming source come first, the chart/fallback fork second, cost metadata last. The cost warning is bolded and front-loaded in its own block so an agent cannot miss the budget impact. No filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 safety, cost and fallback behaviour are all covered. The remaining gap is shape: `chart` is typed as an unconstrained anyOf, and the description says only 'your own birth data' without indicating the expected object structure, so an agent still cannot construct that argument confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%: `fields` and `precision` are documented in-schema, while `chart` has an empty anyOf and no type at all. The description rescues the critical case by explaining what `chart` does and what happens when it is omitted, which is the single most important semantic to convey. It adds nothing for `language`, though the enum is self-describing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource+scope: 'Render a sample natal report PDF using the authenticated user's white-label configuration (colours, font, footer, logo).' The word 'sample' plus 'white-label configuration' cleanly separates it from astroway_reports_natal (real report generation) and from the many astroway_render_* chart tools, which draw charts rather than themed PDF reports.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit behavioural fork — 'Pass `chart` to use your own birth data; omit to use the bundled Kyiv 1990 sample' — and the cost banner instructs 'Confirm with user before invoking.' This is clear invocation context, but no sibling alternative is ever named (e.g. astroway_reports_natal or astroway_whitelabel_config), so it falls short of the when/when-not/alternatives ideal.
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)BRead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| age | No | ||
| date | Yes | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| gender | Yes | ||
| school | No | ||
| fixLeap | No | ||
| language | No | ||
| timezone | No | 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. | |
| dayDivide | No | ||
| longitude | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| yearDivide | No | ||
| tianmaSchool | No | ||
| trueSolarTime | No | ||
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| lunar | No | |
| ziwei | No | |
| palaces | No | |
| computed | No | |
| soulPalace | No | |
| fiveElementClass | No |
TDQS
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.
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.
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.
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.
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.
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 (四化)ARead-onlyIdempotentInspect
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)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| school | No | ||
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| school | No | |
| disputed | No | |
| yearStem | No | |
| solarYear | No | |
| schoolVariants | No | |
| transformations | No |
TDQS
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.
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.
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.
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.
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.
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)ARead-onlyIdempotentInspect
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 ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| animal | No | |
| palaces | No | |
| solarYear | No | |
| disclaimer | No | |
| yearPillar | No |
TDQS
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.
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.
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.
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.
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.
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 StarsARead-onlyIdempotentInspect
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 ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| disclaimer | No | |
| fourteenMainStars | No |
TDQS
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.
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.
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.
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.
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.
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)CRead-onlyIdempotentInspect
Profession, status, official position.
[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-career] [Required: date] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| animal | No | |
| palace | No | |
| solarYear | No | |
| disclaimer | No |
TDQS
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.
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.
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.
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.
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.
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)BRead-onlyIdempotentInspect
Children, fertility, juniors.
[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-children] [Required: date] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| animal | No | |
| palace | No | |
| solarYear | No | |
| disclaimer | No |
TDQS
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.
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.
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.
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.
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.
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)BRead-onlyIdempotentInspect
Life path, character, soul mission.
[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-destiny] [Required: date] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| animal | No | |
| palace | No | |
| solarYear | No | |
| disclaimer | No |
TDQS
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.
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.
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.
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.
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.
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)CRead-onlyIdempotentInspect
Body, illness, weak points.
[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-health] [Required: date] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| animal | No | |
| palace | No | |
| solarYear | No | |
| disclaimer | No |
TDQS
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.
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.
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.
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.
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.
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)CRead-onlyIdempotentInspect
Real estate, family home, ancestry.
[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-property] [Required: date] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| animal | No | |
| palace | No | |
| solarYear | No | |
| disclaimer | No |
TDQS
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.
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.
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.
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.
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.
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)CRead-onlyIdempotentInspect
Brothers, sisters, peer relationships.
[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-siblings] [Required: date] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| animal | No | |
| palace | No | |
| solarYear | No | |
| disclaimer | No |
TDQS
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.
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.
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.
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.
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.
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)CRead-onlyIdempotentInspect
Marriage partner, romantic union.
[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-spouse] [Required: date] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| animal | No | |
| palace | No | |
| solarYear | No | |
| disclaimer | No |
TDQS
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.
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.
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.
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.
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.
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)CRead-onlyIdempotentInspect
Travel, relocation, foreign opportunities.
[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-travel] [Required: date] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| animal | No | |
| palace | No | |
| solarYear | No | |
| disclaimer | No |
TDQS
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.
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.
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.
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.
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.
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)CRead-onlyIdempotentInspect
Income, material prosperity.
[Group: Zi Wei Dou Shu (Purple Star)] [Endpoint: POST /v1/ziwei/palace-wealth] [Required: date] [Cost: 5 credits (Tier ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| animal | No | |
| palace | No | |
| solarYear | No | |
| disclaimer | No |
TDQS
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.
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.
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.
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.
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.
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 PalacesCRead-onlyIdempotentInspect
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 ½)]
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| time | No | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| timezone | No | 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. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| timezoneOffset | No | Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| animal | No | |
| palaces | No | |
| solarYear | No | |
| disclaimer | No |
TDQS
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.
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.
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.
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.
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.
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.
astroway_zodiac_signs_per_sign_deep_zodiac_aquariusAquarius: Fixed AirBRead-onlyIdempotentInspect
Communal innovation, futurist detachment. Saturn + Uranus. I KNOW.
[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/aquarius] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sign | No | |
| cohort | No | |
| decans | No | |
| source | No | |
| degreeRange | No | |
| description | No |
TDQS
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 bar is lower. The description adds genuinely new operational context the annotations do not carry: the 10-credit Tier 1 cost and the concrete GET endpoint. It stops short of describing the response shape, but an output schema exists to cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and the tag block is cleanly separated, but the first line is decorative rather than informative and occupies the front-loaded position where the purpose should be. No sentence is wasted in length, yet the lead content does not earn its prominence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a low-complexity content fetch with optional compacting params and a full output schema, and cost, endpoint and group are supplied. What is missing is a plain functional statement and any differentiation from the sibling sign tools, which is the main gap for an agent navigating this large family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters ('fields' compact-mode paths and 'precision' rounding) are fully documented in the schema itself. The description contributes nothing about either parameter, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The prose 'Communal innovation, futurist detachment. Saturn + Uranus. I KNOW.' is astrological flavor, not a statement of function. The resource is only recoverable from the metadata tags ('[Group: Zodiac Signs (Per-Sign Deep)]', 'GET /v1/zodiac/aquarius'), which imply per-sign content retrieval. An agent can guess the purpose but the description never says plainly what the tool returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 routing to alternatives, despite eleven near-identical sibling tools (aries, cancer, capricorn, etc.) that an agent must choose between. The sign is encoded only in the tool name and endpoint, so the selection logic 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_zodiac_signs_per_sign_deep_zodiac_ariesAries: Cardinal FireCRead-onlyIdempotentInspect
Pioneering will, raw initiation. Ruler Mars. I AM signature.
[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/aries] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sign | No | |
| cohort | No | |
| decans | No | |
| source | No | |
| degreeRange | No | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the description is not the sole carrier here. It does add genuinely useful non-schema context: the endpoint path and the cost of 10 credits (Tier 1), which an agent needs for budget decisions. It says nothing about response shape or content depth, but the output schema covers that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and the metadata block is scannable. However, the opening thematic sentence ('Pioneering will, raw initiation. Ruler Mars. I AM signature.') conveys flavor rather than information an agent can act on, so it does not fully earn its place ahead of the functional metadata.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter read tool with an output schema and full annotation coverage, most operational detail is carried by structured fields. The description supplies cost and endpoint, so an agent can call it correctly; the only real gap is the absence of any routing guidance versus sibling sign tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters ('fields' and 'precision') are already fully documented in the schema. The description adds no additional meaning about compact mode or rounding behavior. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description itself is thematic content about Aries ('Pioneering will, raw initiation. Ruler Mars.') rather than a statement of what the tool does. Functional orientation only comes from the bracket metadata ('Endpoint: GET /v1/zodiac/aries') and the tool name, so the purpose is inferable but never explicitly stated with a verb+resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance. The description never distinguishes this tool from its 11 per-sign siblings (Taurus, Leo, etc.) or from other zodiac/natal tools like astroway_reference_natal_texts or astroway_western_chart. The 'Per-Sign Deep' group tag hints at scope but provides no selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_zodiac_signs_per_sign_deep_zodiac_cancerCancer: Cardinal WaterCRead-onlyIdempotentInspect
Protective nurture, tidal memory. Ruler Moon. I FEEL.
[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/cancer] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sign | No | |
| cohort | No | |
| decans | No | |
| source | No | |
| degreeRange | No | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior. The description adds a useful cost signal ('10 credits (Tier 1)') and the exact endpoint, which are not in the structured fields. However, it does not describe return contents or any other behavioral traits beyond what 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short but front-loads three poetic lines that do not help an agent select or invoke the tool. The useful metadata (group, endpoint, cost) appears only in brackets after the fluff, so the structure is not optimized for utility.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema and rich annotations, the description fails to communicate the tool's basic purpose or usage context. An agent must rely entirely on the name and title to understand that this returns deep astrological content for Cancer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (fields, precision) are fully documented in the schema. The description adds no parameter-level meaning. Baseline 3 is appropriate when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is poetic ('Protective nurture, tidal memory. Ruler Moon. I FEEL.') and never states what the tool does. The name and endpoint hint at retrieving Cancer deep zodiac info, but the description itself adds no functional clarity. It does not distinguish this from the eleven sibling per-sign tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when or why to use this tool versus alternatives. There are no conditions, prerequisites, or references to sibling tools. The agent is left to infer everything from the name and endpoint.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_zodiac_signs_per_sign_deep_zodiac_capricornCapricorn: Cardinal EarthCRead-onlyIdempotentInspect
Disciplined mastery, long-view structure. Ruler Saturn. I USE.
[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/capricorn] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sign | No | |
| cohort | No | |
| decans | No | |
| source | No | |
| degreeRange | No | |
| description | No |
TDQS
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 does add genuinely useful operational context that the annotations lack: a cost of 10 credits (Tier 1) and the concrete HTTP endpoint. It says nothing about the nature, size, or static-ness of the returned content, so it adds some but not rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracketed tag block (Group / Endpoint / Cost) is well structured and front-loaded, and the whole definition is short. However, the opening flavor line conveys no calling information, so it occupies prime real estate without earning it. Compact, but not maximally efficient in what it chooses to say.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and annotations cover the safety profile, so the description is not obligated to explain returns. It does supply cost and endpoint, which are useful. What remains missing is any statement of what 'deep' content a sign endpoint yields, which matters for choosing among the many sibling astrology tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both optional parameters (fields, precision) are fully documented in the schema with examples and limits. The description adds nothing about parameters, which is acceptable but not additive — the schema carries the entire burden, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The prose ('Disciplined mastery, long-view structure. Ruler Saturn. I USE.') is thematic flavor keyed to the sign rather than a statement of what the tool returns. The operative information is carried by the bracketed metadata — Group: Zodiac Signs (Per-Sign Deep) and Endpoint: GET /v1/zodiac/capricorn — which imply a fetch of deep Capricorn-specific content. A reader can infer the resource but not the payload, so this lands at vague-but-parseable rather than specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternatives. Nothing distinguishes this from astroway_horoscope_daily, astroway_reference_natal_texts, or the other per-sign deep tools beyond the sign itself. The presence of 11 sibling sign tools makes the omission of any selection framing more noticeable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_zodiac_signs_per_sign_deep_zodiac_geminiGemini: Mutable AirCRead-onlyIdempotentInspect
Curious connection, plural perspectives. Ruler Mercury. I THINK.
[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/gemini] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sign | No | |
| cohort | No | |
| decans | No | |
| source | No | |
| degreeRange | No | |
| description | No |
TDQS
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 elsewhere. The description adds the endpoint and, more usefully, the 10-credit Tier 1 cost, which is real context not present in annotations. It does not describe response shape, but an 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The metadata lines are compact and well-bracketed, but the leading poetic sentence carries no selection value and precedes the only functional hints. Appropriately short for the tool, but not front-loaded on purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Low complexity (0 required params, output schema present, safety covered by annotations) means the agent can technically invoke it correctly from name + schema alone. However, neither the sign-specific deliverable nor the distinction from the other eleven per-sign deep tools is articulated, leaving the description minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both optional parameters (fields, precision, both for compact mode) are fully documented in the schema. The description adds no parameter meaning beyond that; the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description body is atmospheric brand copy ('Curious connection, plural perspectives. Ruler Mercury. I THINK.') that never states a function. The Group/Endpoint lines ('Zodiac Signs (Per-Sign Deep)', GET /v1/zodiac/gemini) do let an agent infer this returns deep per-sign content for Gemini, so the purpose is vaguely inferable but not stated outright.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 is named. The cost line ('10 credits (Tier 1)') is useful budgeting context but is not usage guidance. The agent is left to assume it should call this only for Gemini-related requests.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_zodiac_signs_per_sign_deep_zodiac_leoLeo: Fixed FireCRead-onlyIdempotentInspect
Radiant generosity, theatrical authority. Ruler Sun. I WILL.
[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/leo] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sign | No | |
| cohort | No | |
| decans | No | |
| source | No | |
| degreeRange | No | |
| description | No |
TDQS
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 fully covered. The description does add genuinely useful non-annotation context: the 10-credit Tier 1 cost and the underlying endpoint, which help an agent budget and route the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, but it front-loads zodiac flavor text and buries the only actionable facts (group, endpoint, cost) in brackets at the end. No wasted words, but the ordering is backwards from what an agent needs first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description still omits what the tool actually produces or what distinguishes Leo from the other eleven per-sign endpoints. For a 10-credit paid call in a large sibling family, that is a substantive gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with only two optional parameters (fields, precision), so the schema fully documents them. The description adds nothing about parameter behavior, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The text is flavor copy about the Leo archetype ('Radiant generosity, theatrical authority. Ruler Sun. I WILL.') rather than a statement of what the tool returns. The name and the bracketed group tag imply per-sign deep zodiac content, but the description itself never says the tool retrieves interpretation data for Leo, making it effectively a restatement of the sign's identity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to call this versus the eleven sibling per-sign deep zodiac tools or the horoscope/chart tools. The only operational signal is the endpoint and cost tag, which does not tell the agent when this resource 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_zodiac_signs_per_sign_deep_zodiac_libraLibra: Cardinal AirCRead-onlyIdempotentInspect
Partnership, aesthetic balance, mediation. Ruler Venus. I BALANCE.
[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/libra] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sign | No | |
| cohort | No | |
| decans | No | |
| source | No | |
| degreeRange | No | |
| description | No |
TDQS
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 genuinely useful operational context — the endpoint and 'Cost: 10 credits (Tier 1)' — but says nothing about return format or content depth beyond what the output schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded, with metadata neatly bracketed. The opening line is astrological flavor rather than functional content, but overall it wastes few words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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. The cost/endpoint metadata is a useful addition, but the description never states the tool's actual function, which is the one real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: both 'fields' (compact dotted-path projection) and 'precision' (decimal rounding) are fully documented in the schema. The description adds no parameter meaning, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description reads as an astrological profile of Libra (partnership, aesthetic balance, mediation, ruler Venus) rather than a functional statement of what the tool does. The bracketed group tag 'Zodiac Signs (Per-Sign Deep)' and endpoint 'GET /v1/zodiac/libra' imply it returns deep Libra content, and the title 'Libra: Cardinal Air' confirms the subject, but no explicit verb+resource is stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus the 11 sibling sign endpoints or other zodiac resources. There is no when-to-use, when-not-to-use, or alternative-selection text; the agent must infer selection purely from the sign name in the tool identifier.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_zodiac_signs_per_sign_deep_zodiac_piscesPisces: Mutable WaterCRead-onlyIdempotentInspect
Oceanic compassion, dissolving boundaries. Jupiter + Neptune. I BELIEVE.
[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/pisces] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sign | No | |
| cohort | No | |
| decans | No | |
| source | No | |
| degreeRange | No | |
| description | No |
TDQS
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 fully covered. The description's one genuine addition is the 10-credit / Tier 1 cost disclosure, which matters for a paid agent workflow; nothing is said about auth or response shape, though the output schema covers the latter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short, and the bracketed Group/Endpoint/Cost lines are efficiently front-loaded metadata. However, the opening three fragments ('I BELIEVE.') are atmospheric filler that occupy the most prominent position without conveying function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless-required GET fetch with an output schema, the essentials an agent needs to invoke correctly — endpoint, scope group, and cost — are present. What is missing is any functional characterization of the payload (a per-sign interpretive profile), which the output schema and group tag only partially imply.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Both parameters (fields, precision) are documented at 100% schema coverage with examples and units, so the schema carries this dimension. The description adds no parameter meaning beyond that; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The prose ('Oceanic compassion, dissolving boundaries. Jupiter + Neptune. I BELIEVE.') is thematic content, not a functional statement of what the tool returns. The structured tags '[Group: Zodiac Signs (Per-Sign Deep)]' and '[Endpoint: GET /v1/zodiac/pisces]' do make the intent inferable — a read of the deep Pisces sign profile — but the agent has to assemble that from metadata rather than a clear verb+resource sentence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No statement of when to call this versus the eleven sibling per-sign equivalents (Aries, Taurus, etc.) or versus general zodiac/reference tools. The only usage-adjacent cue is the embedded '[Cost: 10 credits (Tier 1)]' tag, which hints at budget but gives no routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_zodiac_signs_per_sign_deep_zodiac_sagittariusSagittarius: Mutable FireCRead-onlyIdempotentInspect
Philosophical quest, frank expansion. Ruler Jupiter. I SEE.
[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/sagittarius] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sign | No | |
| cohort | No | |
| decans | No | |
| source | No | |
| degreeRange | No | |
| description | No |
TDQS
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 that burden is lifted. The description does add genuinely useful operational context — the exact endpoint and a cost of 10 credits (Tier 1) — but says nothing about auth, rate limits, or output shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is very short and well-structured, with the flavor line first and the Group/Endpoint/Cost tags cleanly separated. Nothing is padded or verbose, though the flavor line carries little decision value for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 the description still omits any statement of what this per-sign deep profile actually contains and gives no context for choosing it over its eleven per-sign siblings. For a tool whose only distinguishing feature is the sign, this leaves the agent guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (fields, precision) are fully documented in the schema with examples and ranges. The description contributes nothing about them, so the baseline 3 for schema-covered parameters is the correct ceiling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The body is astrological flavor text ('Philosophical quest, frank expansion. Ruler Jupiter. I SEE.') rather than a statement of what the call does or returns. Only the bracketed metadata tags (Group: Zodiac Signs (Per-Sign Deep); Endpoint GET /v1/zodiac/sagittarius) hint at the resource, and there is no verb describing the operation, so an agent cannot tell from the description itself what the tool produces.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is given. There are twelve near-identical per-sign siblings (aries, taurus, ... capricorn) and the description never explains that this one is selected for Sagittarius content or how it differs from them or from a general zodiac/reference tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_zodiac_signs_per_sign_deep_zodiac_scorpioScorpio: Fixed WaterCRead-onlyIdempotentInspect
Penetrating depth, transformation. Mars + Pluto. I DESIRE.
[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/scorpio] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sign | No | |
| cohort | No | |
| decans | No | |
| source | No | |
| degreeRange | No | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful metadata beyond that: the concrete endpoint and a cost disclosure ("10 credits (Tier 1)"). It does not, however, describe content depth or any rate/credit-account behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The block is short and the metadata lines are front-loaded and scannable, but the opening mantra conveys no functional information and does not help an agent select or invoke the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present the return format need not be explained, and annotations carry the safety profile, so the description only needs to convey scope and cost. It conveys cost and endpoint, but leaves what 'deep per-sign' content actually contains undefined for a content-generation endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both `fields` and `precision`, and 0 parameters are required, so the schema fully documents usage. The description adds nothing about these params, which is acceptable at this coverage level, but it also earns no credit beyond baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The prose "Penetrating depth, transformation. Mars + Pluto. I DESIRE." restates the sign's lore rather than stating a verb + resource. Only the bracketed metadata ("Group: Zodiac Signs (Per-Sign Deep)", "GET /v1/zodiac/scorpio") lets an agent infer this returns deep Scorpio content; the description sentence itself is decorative and tautological against the title "Scorpio: Fixed Water."
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 is given. The 11 sibling deep-zodiac tools are never referenced, so an agent gets no help deciding between this and, say, the Aquarius or Libra variants beyond the sign baked into the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_zodiac_signs_per_sign_deep_zodiac_taurusTaurus: Fixed EarthCRead-onlyIdempotentInspect
Embodied stability, sensory wealth. Ruler Venus. I HAVE.
[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/taurus] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sign | No | |
| cohort | No | |
| decans | No | |
| source | No | |
| degreeRange | No | |
| description | No |
TDQS
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 adds cost (10 credits, Tier 1) and the endpoint path, which are useful operational facts. It does not add auth, rate-limit, or side-effect context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is short, but the opening poetic sentence occupies space without informing selection or invocation. The metadata lines about group, endpoint, and cost are useful, but the primary sentence does not earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return format need not be explained. However, the description omits what the endpoint actually produces—what 'deep per-sign' data means—leaving an agent unable to tell what content or data to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (fields and precision) are fully documented in the schema with examples. The description adds no parameter meaning, but the baseline of 3 applies when the schema carries that load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives Taurus attributes and its ruler but no verb or resource. 'Embodied stability, sensory wealth' is poetic content, not a statement of what the tool does. The endpoint hint helps, but the description itself does not tell an agent that this fetches deep per-sign zodiac data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 mention of alternatives. Sibling tools for other zodiac signs are not referenced, so an agent has no basis for choosing Taurus over Aries or any other sign.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_zodiac_signs_per_sign_deep_zodiac_virgoVirgo: Mutable EarthCRead-onlyIdempotentInspect
Discerning service, refined craft. Ruler Mercury. I ANALYZE.
[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/virgo] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| sign | No | |
| cohort | No | |
| decans | No | |
| source | No | |
| degreeRange | No | |
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, and non-destructive behavior, so the safety profile is covered and the description needn't restate it. It does add genuinely useful context beyond the annotations — the cost (10 credits, Tier 1) and the concrete endpoint path — which helps an agent weigh whether to call it. Beyond cost and endpoint it adds no operational detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The length is short, but the front-loaded sentence is decorative flavor that does not help an agent decide or invoke — it fails the "every sentence earns its place" test. The useful material (group, endpoint, cost) is present but relegated to trailer brackets behind the filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations and the output schema cover safety and return values, and the schema fully documents the two parameters, so the structural gaps are closed. What remains missing is the description's own job: stating what the tool returns conceptually and why an agent would pick Virgo deep data over the sibling endpoints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters (fields, precision) are already fully documented with syntax and defaults in the schema. The description contributes nothing about the parameters, so the baseline 3 applies when the schema carries the whole load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The core sentence ("Discerning service, refined craft. Ruler Mercury. I ANALYZE.") is Virgo-themed content, not a statement of what the tool does — it reads like the payload, not the capability. Only the bracketed group label ("Zodiac Signs (Per-Sign Deep)") and the endpoint hint that this returns per-sign deep zodiac data, so the agent is largely left inferring purpose from the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no condition that selects this over the other per-sign tools, and no mention of alternatives (e.g. western_chart, horoscope_daily, or the other 11 sign endpoints). The group label implies a context but nothing is stated about when a caller should reach for it.
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 tool update
- Changed
astroway_aspects_fixed_stars2 fields changed- added
Output schema / properties / conjunctionsAdded value: +{ + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "aspect": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "magnitude": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "orb": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "planet": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "planetLongitude": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "star": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "starLongitude": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / orbAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +}
4 tool updates
- Changed
astroway_horoscope_daily3 fields changed- added
Input schema / properties / lengthAdded value: +{ + "description": "With `style: \"plain\"`: `short` (about 70-110 words a day) or `medium` (default, about 150-230).", + "enum": [ + "short", + "medium" + ], + "type": "string" +} - added
Input schema / properties / styleAdded value: +{ + "description": "`astro` (default) names the planets, houses and aspects behind each point. `plain` uses everyday words with no astrological terms, and is written once in English and translated, so every language says the same thing. Daily, weekly and monthly.", + "enum": [ + "astro", + "plain" + ], + "type": "string" +} - added
Input schema / properties / topicsAdded value: +{ + "description": "Only these sections, in this order, in `sections` and in `horoscope`. Default all six.", + "items": { + "enum": [ + "overview", + "love", + "career", + "health", + "finance", + "advice" + ], + "type": "string" + }, + "maxItems": 6, + "minItems": 1, + "type": "array" +}
- Changed
astroway_horoscope_monthly3 fields changed- added
Input schema / properties / lengthAdded value: +{ + "description": "With `style: \"plain\"`: `short` (about 70-110 words a day) or `medium` (default, about 150-230).", + "enum": [ + "short", + "medium" + ], + "type": "string" +} - added
Input schema / properties / styleAdded value: +{ + "description": "`astro` (default) names the planets, houses and aspects behind each point. `plain` uses everyday words with no astrological terms, and is written once in English and translated, so every language says the same thing. Daily, weekly and monthly.", + "enum": [ + "astro", + "plain" + ], + "type": "string" +} - added
Input schema / properties / topicsAdded value: +{ + "description": "Only these sections, in this order, in `sections` and in `horoscope`. Default all six.", + "items": { + "enum": [ + "overview", + "love", + "career", + "health", + "finance", + "advice" + ], + "type": "string" + }, + "maxItems": 6, + "minItems": 1, + "type": "array" +}
- Changed
astroway_horoscope_weekly3 fields changed- added
Input schema / properties / lengthAdded value: +{ + "description": "With `style: \"plain\"`: `short` (about 70-110 words a day) or `medium` (default, about 150-230).", + "enum": [ + "short", + "medium" + ], + "type": "string" +} - added
Input schema / properties / styleAdded value: +{ + "description": "`astro` (default) names the planets, houses and aspects behind each point. `plain` uses everyday words with no astrological terms, and is written once in English and translated, so every language says the same thing. Daily, weekly and monthly.", + "enum": [ + "astro", + "plain" + ], + "type": "string" +} - added
Input schema / properties / topicsAdded value: +{ + "description": "Only these sections, in this order, in `sections` and in `horoscope`. Default all six.", + "items": { + "enum": [ + "overview", + "love", + "career", + "health", + "finance", + "advice" + ], + "type": "string" + }, + "maxItems": 6, + "minItems": 1, + "type": "array" +}
- Changed
astroway_horoscope_yearly3 fields changed- added
Input schema / properties / lengthAdded value: +{ + "description": "With `style: \"plain\"`: `short` (about 70-110 words a day) or `medium` (default, about 150-230).", + "enum": [ + "short", + "medium" + ], + "type": "string" +} - added
Input schema / properties / styleAdded value: +{ + "description": "`astro` (default) names the planets, houses and aspects behind each point. `plain` uses everyday words with no astrological terms, and is written once in English and translated, so every language says the same thing. Daily, weekly and monthly.", + "enum": [ + "astro", + "plain" + ], + "type": "string" +} - added
Input schema / properties / topicsAdded value: +{ + "description": "Only these sections, in this order, in `sections` and in `horoscope`. Default all six.", + "items": { + "enum": [ + "overview", + "love", + "career", + "health", + "finance", + "advice" + ], + "type": "string" + }, + "maxItems": 6, + "minItems": 1, + "type": "array" +}
2 tool updates
- Changed
astroway_reports_generate1 field changed- added
Input schema / properties / depthAdded value: +{ + "description": "`extended` (10000 credits) adds the chart wheel and a chapter for each of Sun to Pluto, Chiron and the Ascendant in its sign, from edited texts with no AI at request time. Available in the 20 languages of `/v1/natal-texts`.", + "enum": [ + "standard", + "extended" + ], + "type": "string" +}
- Changed
astroway_reports_natal1 field changed- added
Input schema / properties / depthAdded value: +{ + "description": "`extended` (10000 credits) adds the chart wheel and a chapter for each of Sun to Pluto, Chiron and the Ascendant in its sign, from edited texts with no AI at request time. Available in the 20 languages of `/v1/natal-texts`.", + "enum": [ + "standard", + "extended" + ], + "type": "string" +}
4 tool updates
- Added
astroway_vastu_shastra_vastu_directions - Added
astroway_vastu_shastra_vastu_entrance - Added
astroway_vastu_shastra_vastu_mandala - Added
astroway_vastu_shastra_vastu_rooms
1 tool update
- Changed
astroway_vedic_kp_horary8 fields changed- added
Input schema / properties / ascendantAtAdded value: +{ + "default": "middle", + "description": "Where in the number's segment the ascendant is placed: its centre (default) or its first degree. Sources differ; sign, star and sub are the same either way.", + "enum": [ + "middle", + "start" + ], + "type": "string" +} - added
Output schema / properties / ascendantAtAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / ayanamsaAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / cuspsAdded value: +{ + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "house": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "longitude": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positionInSign": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positionInStar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "sign": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "signLord": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "signLordName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "signName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "star": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "starLord": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "starLordName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "starName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "sub": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "subName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "subSub": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "subSubName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / housesJdAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / housesOffsetHoursAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / planetsAdded value: +{ + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "graha": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "grahaName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "house": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "longitude": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positionInSign": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positionInStar": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "retrograde": { + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ] + }, + "sign": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "signLord": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "signLordName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "signName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "star": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "starLord": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "starLordName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "starName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "sub": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "subName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "subSub": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "subSubName": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / segmentAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] +}
1 tool update
- Changed
astroway_prognostics_transit_calendar1 field changed- changed
Input schema / properties / body / allOfPrevious value: -[ - { - "description": "Wrapper { natal: ChartInput } used by endpoints that take a base natal plus extra parameters in flat fields.", - "properties": { - "natal": { - "additionalProperties": { - "anyOf": [ - {}, - { - "type": "null" - } - ] - }, - "description": "Birth 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.", - "properties": { - "ayanamsa": { - "description": "Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either.", - "enum": [ - "fagan-bradley", - "lahiri", - "de-luce", - "raman", - "krishnamurti", - "kp", - "yukteshwar", - "jn-bhasin", - "true-citra", - "djwhal-khul" - ], - "type": "string" - }, - "ayanamsaId": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "city": { - "default": "", - "type": "string" - }, - "cosmogram": { - "type": "boolean" - }, - "date": { - "pattern": "^\\d{4}-\\d{2}-\\d{2}$", - "type": "string" - }, - "houseSystem": { - "default": "P", - "enum": [ - "P", - "K", - "R", - "C", - "E", - "W", - "B", - "M", - "O", - "A", - "T", - "V", - "D", - "F", - "G", - "H", - "I", - "i", - "L", - "N", - "Q", - "S", - "U", - "X", - "Y" - ], - "type": "string" - }, - "latitude": { - "maximum": 90, - "minimum": -90, - "type": "number" - }, - "longitude": { - "maximum": 180, - "minimum": -180, - "type": "number" - }, - "name": { - "default": "", - "type": "string" - }, - "time": { - "pattern": "^\\d{2}:\\d{2}(:\\d{2})?$", - "type": "string" - }, - "timezone": { - "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" - }, - "timezoneOffset": { - "anyOf": [ - { - "maximum": 14, - "minimum": -14, - "type": "number" - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Hours 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." - }, - "zodiacType": { - "enum": [ - "tropical", - "sidereal" - ], - "type": "string" - } - }, - "required": [ - "date", - "time", - "latitude", - "longitude" - ], - "type": "object" - } - }, - "required": [ - "natal" - ], - "type": "object" - }, - { - "properties": { - "aspectAngles": { - "items": { - "anyOf": [ - { - "maximum": 360, - "minimum": 0, - "type": "number" - }, - { - "type": "null" - } - ] - }, - "maxItems": 64, - "type": "array" - }, - "endDate": { - "pattern": "^\\d{4}-\\d{2}-\\d{2}$", - "type": "string" - }, - "maxOrb": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "startDate": { - "pattern": "^\\d{4}-\\d{2}-\\d{2}$", - "type": "string" - }, - "transitPlanetIds": { - "items": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "maxItems": 32, - "type": "array" - } - }, - "required": [ - "startDate", - "endDate" - ], - "type": "object" - } -]New value: +[ + { + "description": "Wrapper { natal: ChartInput } used by endpoints that take a base natal plus extra parameters in flat fields.", + "properties": { + "natal": { + "additionalProperties": { + "anyOf": [ + {}, + { + "type": "null" + } + ] + }, + "description": "Birth 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.", + "properties": { + "ayanamsa": { + "description": "Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either.", + "enum": [ + "fagan-bradley", + "lahiri", + "de-luce", + "raman", + "krishnamurti", + "kp", + "yukteshwar", + "jn-bhasin", + "true-citra", + "djwhal-khul" + ], + "type": "string" + }, + "ayanamsaId": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "city": { + "default": "", + "type": "string" + }, + "cosmogram": { + "type": "boolean" + }, + "date": { + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" + }, + "houseSystem": { + "default": "P", + "enum": [ + "P", + "K", + "R", + "C", + "E", + "W", + "B", + "M", + "O", + "A", + "T", + "V", + "D", + "F", + "G", + "H", + "I", + "i", + "L", + "N", + "Q", + "S", + "U", + "X", + "Y" + ], + "type": "string" + }, + "latitude": { + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "longitude": { + "maximum": 180, + "minimum": -180, + "type": "number" + }, + "name": { + "default": "", + "type": "string" + }, + "time": { + "pattern": "^\\d{2}:\\d{2}(:\\d{2})?$", + "type": "string" + }, + "timezone": { + "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" + }, + "timezoneOffset": { + "anyOf": [ + { + "maximum": 14, + "minimum": -14, + "type": "number" + }, + { + "type": "null" + } + ], + "default": 0, + "description": "Hours 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." + }, + "zodiacType": { + "enum": [ + "tropical", + "sidereal" + ], + "type": "string" + } + }, + "required": [ + "date", + "time", + "latitude", + "longitude" + ], + "type": "object" + } + }, + "required": [ + "natal" + ], + "type": "object" + }, + { + "properties": { + "aspectAngles": { + "description": "Subset of 0, 60, 90, 120, 180 (the default is all five). Other angles match nothing and answer 400.", + "items": { + "anyOf": [ + { + "maximum": 360, + "minimum": 0, + "type": "number" + }, + { + "type": "null" + } + ] + }, + "maxItems": 64, + "type": "array" + }, + "endDate": { + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" + }, + "maxOrb": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "description": "Accepted and echoed back, but it does not filter anything: every event is an exact hit, found by the sign change of the offset and refined by bisection, so its orb is 0. Must be in (0, 10] if sent." + }, + "startDate": { + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" + }, + "transitPlanetIds": { + "description": "Transiting bodies, ids 0 and 2-9 (Sun, Mercury to Pluto; the Moon is excluded). Default: all nine.", + "items": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "maxItems": 32, + "type": "array" + } + }, + "required": [ + "startDate", + "endDate" + ], + "type": "object" + } +]
1 tool update
- Changed
astroway_ziwei_chart2 fields changed- added
Input schema / properties / longitudeAdded value: +{ + "maximum": 180, + "minimum": -180, + "type": "number" +} - added
Input schema / properties / trueSolarTimeAdded value: +{ + "type": "boolean" +}
1 tool update
- Changed
astroway_calendar_lunar_calendar2 fields changed- added
Input schema / properties / timezoneAdded value: +{ + "description": "IANA zone, e.g. Europe/Kyiv. Wins over timezoneOffset and follows a DST change inside the month, day by day.", + "maxLength": 64, + "type": "string" +} - added
Input schema / properties / timezoneOffsetAdded value: +{ + "description": "Hours east of UTC. The calendar days become local days: date, isVoC (at local noon), phase and ingress per local day, and the month range itself. Omitted with no timezone: days run in UT.", + "maximum": 14, + "minimum": -14, + "type": "number" +}
1 tool update
- Changed
astroway_bazi_yearly2 fields changed- added
Input schema / properties / genderAdded value: +{ + "enum": [ + "male", + "female" + ], + "type": "string" +} - added
Input schema / properties / includeMonthsAdded value: +{ + "type": "boolean" +}
13 tool updates
- Changed
astroway_bazi_chart3 fields changed- added
Input schema / properties / dayBoundaryAdded value: +{ + "enum": [ + "23:00", + "midnight" + ], + "type": "string" +} - added
Input schema / properties / genderAdded value: +{ + "enum": [ + "male", + "female" + ], + "type": "string" +} - added
Input schema / properties / includeLuckAdded value: +{ + "type": "boolean" +}
- Changed
astroway_bazi_day_master3 fields changed- added
Input schema / properties / dayBoundaryAdded value: +{ + "enum": [ + "23:00", + "midnight" + ], + "type": "string" +} - added
Input schema / properties / longitudeAdded value: +{ + "maximum": 180, + "minimum": -180, + "type": "number" +} - added
Input schema / properties / trueSolarTimeAdded value: +{ + "type": "boolean" +}
- Changed
astroway_bazi_element_balance3 fields changed- added
Input schema / properties / dayBoundaryAdded value: +{ + "enum": [ + "23:00", + "midnight" + ], + "type": "string" +} - added
Input schema / properties / genderAdded value: +{ + "enum": [ + "male", + "female" + ], + "type": "string" +} - added
Input schema / properties / includeLuckAdded value: +{ + "type": "boolean" +}
- Changed
astroway_bazi_hidden_stems3 fields changed- added
Input schema / properties / dayBoundaryAdded value: +{ + "enum": [ + "23:00", + "midnight" + ], + "type": "string" +} - added
Input schema / properties / genderAdded value: +{ + "enum": [ + "male", + "female" + ], + "type": "string" +} - added
Input schema / properties / includeLuckAdded value: +{ + "type": "boolean" +}
- Changed
astroway_bazi_interactions3 fields changed- added
Input schema / properties / dayBoundaryAdded value: +{ + "enum": [ + "23:00", + "midnight" + ], + "type": "string" +} - added
Input schema / properties / genderAdded value: +{ + "enum": [ + "male", + "female" + ], + "type": "string" +} - added
Input schema / properties / includeLuckAdded value: +{ + "type": "boolean" +}
- Changed
astroway_bazi_life_stages3 fields changed- added
Input schema / properties / dayBoundaryAdded value: +{ + "enum": [ + "23:00", + "midnight" + ], + "type": "string" +} - added
Input schema / properties / genderAdded value: +{ + "enum": [ + "male", + "female" + ], + "type": "string" +} - added
Input schema / properties / includeLuckAdded value: +{ + "type": "boolean" +}
- Changed
astroway_bazi_luck_pillars3 fields changed- added
Input schema / properties / dayBoundaryAdded value: +{ + "enum": [ + "23:00", + "midnight" + ], + "type": "string" +} - added
Input schema / properties / longitudeAdded value: +{ + "maximum": 180, + "minimum": -180, + "type": "number" +} - added
Input schema / properties / trueSolarTimeAdded value: +{ + "type": "boolean" +}
- Changed
astroway_bazi_monthly5 fields changed- added
Input schema / properties / dayBoundaryAdded value: +{ + "enum": [ + "23:00", + "midnight" + ], + "type": "string" +} - added
Input schema / properties / longitudeAdded value: +{ + "maximum": 180, + "minimum": -180, + "type": "number" +} - added
Input schema / properties / natalTzOffset / descriptionAdded value: +"Ignored when timezone is sent." - added
Input schema / properties / timezoneAdded 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" +} - added
Input schema / properties / trueSolarTimeAdded value: +{ + "type": "boolean" +}
- Changed
astroway_bazi_na_yin3 fields changed- added
Input schema / properties / dayBoundaryAdded value: +{ + "enum": [ + "23:00", + "midnight" + ], + "type": "string" +} - added
Input schema / properties / genderAdded value: +{ + "enum": [ + "male", + "female" + ], + "type": "string" +} - added
Input schema / properties / includeLuckAdded value: +{ + "type": "boolean" +}
- Changed
astroway_bazi_strength3 fields changed- added
Input schema / properties / dayBoundaryAdded value: +{ + "enum": [ + "23:00", + "midnight" + ], + "type": "string" +} - added
Input schema / properties / genderAdded value: +{ + "enum": [ + "male", + "female" + ], + "type": "string" +} - added
Input schema / properties / includeLuckAdded value: +{ + "type": "boolean" +}
- Changed
astroway_bazi_symbolic_stars3 fields changed- added
Input schema / properties / dayBoundaryAdded value: +{ + "enum": [ + "23:00", + "midnight" + ], + "type": "string" +} - added
Input schema / properties / genderAdded value: +{ + "enum": [ + "male", + "female" + ], + "type": "string" +} - added
Input schema / properties / includeLuckAdded value: +{ + "type": "boolean" +}
- Changed
astroway_bazi_ten_gods3 fields changed- added
Input schema / properties / dayBoundaryAdded value: +{ + "enum": [ + "23:00", + "midnight" + ], + "type": "string" +} - added
Input schema / properties / longitudeAdded value: +{ + "maximum": 180, + "minimum": -180, + "type": "number" +} - added
Input schema / properties / trueSolarTimeAdded value: +{ + "type": "boolean" +}
- Changed
astroway_bazi_yearly5 fields changed- added
Input schema / properties / dayBoundaryAdded value: +{ + "enum": [ + "23:00", + "midnight" + ], + "type": "string" +} - added
Input schema / properties / longitudeAdded value: +{ + "maximum": 180, + "minimum": -180, + "type": "number" +} - added
Input schema / properties / natalTzOffset / descriptionAdded value: +"Ignored when timezone is sent." - added
Input schema / properties / timezoneAdded 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" +} - added
Input schema / properties / trueSolarTimeAdded value: +{ + "type": "boolean" +}
2 tool updates
- Changed
astroway_destiny_matrix_ladini4 fields changed- added
Output schema / properties / ageScaleAdded value: +{ + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "age": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / karmicTailAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "d": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "arcanum": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "archetype": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "negativeSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positiveSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resourceOffered": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taskOfSoul": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "d1": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "arcanum": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "archetype": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "negativeSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positiveSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resourceOffered": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taskOfSoul": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "d2": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "arcanum": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "archetype": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "negativeSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positiveSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resourceOffered": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taskOfSoul": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / loveLineAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "crossing": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "arcanum": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "archetype": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "negativeSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positiveSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resourceOffered": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taskOfSoul": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "d1": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "arcanum": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "archetype": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "negativeSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positiveSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resourceOffered": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taskOfSoul": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "heart": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "arcanum": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "archetype": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "negativeSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positiveSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resourceOffered": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taskOfSoul": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / moneyLineAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "c1": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "arcanum": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "archetype": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "negativeSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positiveSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resourceOffered": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taskOfSoul": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "code": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "crossing": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "arcanum": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "archetype": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "negativeSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positiveSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resourceOffered": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taskOfSoul": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "dollar": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "arcanum": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "archetype": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "negativeSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positiveSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resourceOffered": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taskOfSoul": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] +}
- Changed
astroway_vedic_panchang_full3 fields changed- added
Output schema / properties / chandrabalamAdded value: +{ + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "ashtamaFor": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "favourableFor": { + "anyOf": [ + { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "from": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "moonSign": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "until": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / muhurtasAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "amritKalam": { + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "brahmaMuhurta": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "durMuhurtam": { + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "godhuliMuhurta": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "nishitaMuhurta": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "pratahSandhya": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "sayahnaSandhya": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "varjyam": { + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "vijayaMuhurta": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "end": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "start": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / tarabalamAdded value: +{ + "anyOf": [ + { + "items": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "favourableFor": { + "anyOf": [ + { + "items": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] + }, + "from": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "nakshatra": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "until": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ] +}
1 tool update
- Changed
astroway_reference_natal_texts1 field changed- changed
Input schema / properties / keys / descriptionPrevious value: -"Comma list of up to 64 distinct keys: `<body>.<sign>` (planet in sign, also `chiron`, `ascendant`, `north_node`, `south_node`, `lilith`), `<body>.h<1-12>` (planet in house, also `chiron`, `lilith`), `<body>_<body>.<aspect>` (conjunction, sextile, square, trine, opposition between two of Sun..Pluto), `pattern.<name>` (t_square, grand_trine, grand_cross, stellium, yod, kite; kind `pattern`, a general text for the figure, the planets are yours to list). Nodes, Lilith in sign and patterns are written in uk, en, ar, hi, ja, ko, vi and id so far; other languages list them in `missing`."New value: +"Comma list of up to 64 distinct keys: `<body>.<sign>` (planet in sign, also `chiron`, `ascendant`, `north_node`, `south_node`, `lilith`), `<body>.h<1-12>` (planet in house, also `chiron`, `lilith`), `<body>_<body>.<aspect>` (conjunction, sextile, square, trine, opposition between two of Sun..Pluto), `pattern.<name>` (t_square, grand_trine, grand_cross, stellium, yod, kite; kind `pattern`, a general text for the figure, the planets are yours to list). Nodes, Lilith in sign and patterns are written in every language listed for `lang`."
1 tool update
- Changed
astroway_reference_natal_texts1 field changed- changed
Input schema / properties / keys / descriptionPrevious value: -"Comma list of up to 64 distinct keys: `<body>.<sign>` (planet in sign, also `chiron`, `ascendant`, `north_node`, `south_node`, `lilith`), `<body>.h<1-12>` (planet in house, also `chiron`, `lilith`), `<body>_<body>.<aspect>` (conjunction, sextile, square, trine, opposition between two of Sun..Pluto), `pattern.<name>` (t_square, grand_trine, grand_cross, stellium, yod, kite; kind `pattern`, a general text for the figure, the planets are yours to list). Nodes, Lilith in sign and patterns are written in uk and en so far; other languages list them in `missing`."New value: +"Comma list of up to 64 distinct keys: `<body>.<sign>` (planet in sign, also `chiron`, `ascendant`, `north_node`, `south_node`, `lilith`), `<body>.h<1-12>` (planet in house, also `chiron`, `lilith`), `<body>_<body>.<aspect>` (conjunction, sextile, square, trine, opposition between two of Sun..Pluto), `pattern.<name>` (t_square, grand_trine, grand_cross, stellium, yod, kite; kind `pattern`, a general text for the figure, the planets are yours to list). Nodes, Lilith in sign and patterns are written in uk, en, ar, hi, ja, ko, vi and id so far; other languages list them in `missing`."
1 tool update
- Changed
astroway_destiny_matrix_ladini4 fields changed- added
Output schema / properties / ancestralAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "bottomLeft": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "arcanum": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "archetype": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "negativeSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positiveSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resourceOffered": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taskOfSoul": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "bottomRight": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "arcanum": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "archetype": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "negativeSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positiveSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resourceOffered": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taskOfSoul": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "topLeft": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "arcanum": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "archetype": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "negativeSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positiveSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resourceOffered": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taskOfSoul": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "topRight": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "arcanum": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "archetype": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "negativeSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positiveSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resourceOffered": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taskOfSoul": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / personalPurposeAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "arcanum": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "archetype": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "negativeSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positiveSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resourceOffered": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taskOfSoul": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / pointDAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "arcanum": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "archetype": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "negativeSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positiveSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resourceOffered": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taskOfSoul": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] +} - added
Output schema / properties / pointEAdded value: +{ + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "arcanum": { + "anyOf": [ + { + "additionalProperties": {}, + "properties": { + "archetype": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "name": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "negativeSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "positiveSide": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "resourceOffered": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "taskOfSoul": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] + }, + "number": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + } + }, + "type": "object" + }, + { + "type": "null" + } + ] +}
2 tool updates
- Changed
astroway_reference_natal_texts1 field changed- changed
Input schema / properties / keys / descriptionPrevious value: -"Comma list of up to 64 distinct keys: `<body>.<sign>` (planet in sign, also `chiron`, `ascendant`), `<body>.h<1-12>` (planet in house), `<body>_<body>.<aspect>` (conjunction, sextile, square, trine, opposition between two of Sun..Pluto)."New value: +"Comma list of up to 64 distinct keys: `<body>.<sign>` (planet in sign, also `chiron`, `ascendant`, `north_node`, `south_node`, `lilith`), `<body>.h<1-12>` (planet in house, also `chiron`, `lilith`), `<body>_<body>.<aspect>` (conjunction, sextile, square, trine, opposition between two of Sun..Pluto), `pattern.<name>` (t_square, grand_trine, grand_cross, stellium, yod, kite; kind `pattern`, a general text for the figure, the planets are yours to list). Nodes, Lilith in sign and patterns are written in uk and en so far; other languages list them in `missing`."
- Changed
astroway_vedic_panchang_full2 fields changed- added
Input schema / properties / atAdded value: +{ + "description": "moment (default): tithi, nakshatra, yoga and karana at date + time. sunrise: at local sunrise of that date, as a printed panchang gives them; time may be omitted.", + "enum": [ + "moment", + "sunrise" + ], + "type": "string" +} - changed
Input schema / requiredPrevious value: -[ - "date", - "time", - "latitude", - "longitude" -]New value: +[ + "date", + "latitude", + "longitude" +]
Related MCP Connectors
Sub-arcsecond astrology on NASA JPL DE440: natal, transits, Human Design, Vedic, BaZi.
Western, Vedic, and Chinese astrology calculations, charts, forecasts, and geocoding.
Real astrology for AI agents: cosmic weather, synastry, timing, astrocartography, and divination.
Cosmic Score from 26 divination systems: the consensus when traditions disagree about you.
Related MCP Servers
AlicenseCqualityAmaintenanceComprehensive astrology MCP exposing every endpoint of the AstroWay Calculation API — natal charts, synastry, transits, Vedic dashas, Tarot, Numerology, Human Design. Sub-arcsecond Swiss Ephemeris precision, 10 000 free credits per month.50021 npm4MIT- AlicenseAqualityAmaintenanceEnables AI agents to compute natal charts, horoscopes, synastry, transits, Vedic kundli, panchang, tarot, numerology and other insight domains through 258+ typed tools, hosted as Remote MCP over Streamable HTTP or run locally over stdio with one key.3920 npmMIT
- AlicenseAqualityAmaintenanceVedic and Western astrology for AI agents: 103 read-only tools for natal charts, dasha, kundali matching with Rajju and Vedha vetoes, panchanga, numerology and tarot, backed by Swiss Ephemeris and verified against NASA JPL Horizons.103MIT
- AlicenseAqualityCmaintenanceEnables compute of live Vedic astrology birth charts, dashas, kundali matches, and AI readings via 22 real API tools.224 npm1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.