Skip to main content
Glama

AstroWay Core astrology

Server Details

Natal charts, planets, houses, aspects, dignities, rendering and the calendar.

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

TDQS

B3.1/5.0

Scored across 105 tools

Disambiguation4/5

Group prefixes (western_, aspects_, geo_, calendar_, render_, zodiac_signs_) plus distinct operation names make most tools clearly separable, and descriptions reinforce the boundary (e.g. planets vs ephemeris vs full chart). A few genuine overlaps remain: astroway_mcp_tools_list vs astroway_agent_tools both emit tool manifests, and astroway_mcp_ai_chat / astroway_mcp_streaming / astroway_mcp_tool_call_stream are easily confused, as are the several astroway_geo_acg_* variants.

Naming Consistency4/5

All names are snake_case with a uniform astroway_<group>_<operation> pattern, which is highly predictable. Minor deviations: redundant doubling in astroway_aspects_aspect_bar/aspect_timeline, group labels that don't match content (houses and aspects filed under calendar_, eclipse_analysis and phase_return under geo_), and the unwieldy astroway_zodiac_signs_per_sign_deep_zodiac_* prefix.

Tool Count2/5

105 tools is far past any reasonable single-server surface, even for a broad astrology API, and forces the agent to scan a very large catalog on every turn. The 12 separate astroway_zodiac_signs_per_sign_deep_zodiac_<sign> tools are the clearest excess—they should be one tool parameterized by sign—and several groups (render_*, geo_acg_*) could be consolidated.

Completeness4/5

Coverage is remarkably deep: natal charts, ephemeris, houses, aspects, dignities, astrocartography, horoscopes, visualization, localization, and reference texts, plus credit/status helpers. Gaps are modest: no dedicated synastry/composite calculation (only a composite renderer and compatibility horoscope), no standalone transit-to-natal calculation, and Vedic support is render-only with no dasha or Vedic chart math.

Available Tools

105 tools
astroway_account_statusAccount StatusA
Read-onlyIdempotent
Inspect

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

NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

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

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

Conciseness5/5

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

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

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

Completeness5/5

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

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

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

Parameters4/5

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

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

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

Purpose5/5

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

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

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

Usage Guidelines5/5

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

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

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

astroway_agent_toolsAgent tool definitionsA
Read-onlyIdempotent
Inspect

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

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

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

Output Schema

NameRequiredDescription
countNo
notesNo
toolsNo
formatNo
selectNo
executorsNo
truncatedNo
totalMatchedNo
totalAvailableNo

TDQS

A3.5/5.0
Behavior4/5

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

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

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

Conciseness4/5

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

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

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

Completeness4/5

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

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

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter in depth (limit ceiling rationale, select values, precision semantics). The description only restates format and its default, adding no parameter meaning the schema lacks. Baseline 3 is correct.

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

astroway_aspects_antisciaAntisciaB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
aspectsNo
antisciaNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no when-to-use guidance and no 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)B
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
partsNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is fully covered. The description adds 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.

Conciseness4/5

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.

Completeness4/5

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

With an output schema present, 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of 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)B
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
barsNo
rowsNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare the full safety profile (readOnly, idempotent, non-destructive, closed-world), 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return values need not be described, and annotations cover the safety profile. However, 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 TimelineB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
countNo
timelinesNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness4/5

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.

Completeness3/5

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

For a 9-parameter tool with 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 StarsA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
orbNo
starsNo
conjunctionsNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only, 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.

Conciseness5/5

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.

Completeness4/5

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

An output schema exists, so return-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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 catalogueA
Read-onlyIdempotent
Inspect

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 ½)]

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

Output Schema

NameRequiredDescription
countNo
starsNo
totalNo
sourceNo
maxMagnitudeNo
defaultSetSizeNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety 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.

Conciseness4/5

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.

Completeness5/5

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

An output schema exists, so return values need not be 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 SectorsA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
sectorsNo

TDQS

A3.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations cover the safety profile. 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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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_midpointsMidpointsB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
midpointsNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered 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.

Conciseness4/5

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

Front-loaded with the core purpose in the first sentence, followed by 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.

Completeness3/5

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

An output schema exists, so return values need no 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no 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)B
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
treesNo
symmetriesNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return values need not be described. 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no when-to-use guidance and no named alternative, 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 AspectsB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
parallelsNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose4/5

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.

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative guidance is given; the 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 SymbolsB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
countNo
symbolsNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_calendar_algol_minimumAlgol MinimumB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
countNo
minimaNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return values need not be explained, and the 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or 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 MinimumA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
jdNo
dateNo
timeNo
hoursUntilNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so 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.

Conciseness5/5

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.

Completeness4/5

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

With an output schema present, 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.

Parameters2/5

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

Schema description coverage is only 50%, and the description 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.

Purpose4/5

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.

Usage Guidelines3/5

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 MatrixA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
countNo
aspectsNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, closed-world 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.

Conciseness5/5

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.

Completeness3/5

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

An output schema exists, so return values need no 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 IndexA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
dataNo
countNo
endYearNo
startYearNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world). 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists so return values need not be explained, and annotations 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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_eclipsesEclipsesB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
eclipsesNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, 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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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 CuspsB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
housesNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return values need not be described, and the 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 IngressesA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
ingressesNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), 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.

Conciseness4/5

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.

Completeness4/5

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

With an output schema present, 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 CalendarA
Read-onlyIdempotent
Inspect

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)]

NameRequiredDescriptionDefault
yearYes
monthYes
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
timezoneNoIANA zone, e.g. Europe/Kyiv. Wins over timezoneOffset and follows a DST change inside the month, day by day.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
timezoneOffsetNoHours 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

NameRequiredDescription
yearNo
monthNo
phasesNo
dailyInfoNo
ingressesNo
moonAspectsNo
voidPeriodsNo

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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

An output schema exists, so return values need no 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 AspectsA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
eventsNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is 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.

Conciseness4/5

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.

Completeness4/5

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

An output schema exists, so return values need no 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 PhaseB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
phaseNo
waxingNo
ageDaysNo
sunSignNo
moonSignNo
phaseNameNo
majorPhaseNo
sunLongitudeNo
elongationDegNo
moonLongitudeNo
illuminationPercentNo

TDQS

B3.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return-value 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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-CourseB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
periodsNo

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No when-to-use guidance, no 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 CyclesB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
conjunctionsNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, 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.

Conciseness4/5

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.

Completeness4/5

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

An output schema exists, so return 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no when-to-use guidance and no named alternative. The 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 HoursA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
dateNo
hoursNo
latitudeNo
sunTimesNo
timezoneNo
dayOfWeekNo
longitudeNo
dayRulerPlanetIdNo
dayRulerPlanetNameNo

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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

With an output schema present, the description needn't 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 PhasesB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
phasesNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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 PeriodsA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
periodsNo

TDQS

A3.5/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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

An output schema exists, so return values need not be 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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_content_localization_translate_astroTranslate (astro-aware)A
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
charsNo
domainNo
creditsNo
providerNo
translatedNo
source_langNo
target_langNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness4/5

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.

Completeness4/5

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

An output schema exists, so return values need no 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.

Parameters3/5

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.

Purpose4/5

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

The description states a specific verb+resource ('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.

Usage Guidelines3/5

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 batchB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
charsNo
countNo
itemsNo
domainNo
creditsNo
source_langNo
target_langNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return values need no explanation, and the cost/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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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 downloadC
Read-onlyIdempotent
Inspect

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]

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

Output Schema

NameRequiredDescription
countNo
domainNo
entriesNo
source_langNo
target_langNo

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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

An output schema exists so return values need 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No when-to-use guidance and no 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 languagesB
Read-onlyIdempotent
Inspect

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]

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

Output Schema

NameRequiredDescription
countNo
languagesNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness3/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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_cost_estimateCost EstimateA
Read-onlyIdempotent
Inspect

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

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

TDQS

A4.3/5.0
Behavior4/5

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

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

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

Conciseness5/5

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

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

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

Completeness5/5

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

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

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

Parameters3/5

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

Schema description coverage is 100% and the single 'endpoints' parameter is fully documented with examples and the leading-slash rule in the schema. The description only restates 'one or more endpoints' without adding format or constraint detail beyond the schema, so baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('Estimate the credit cost of one or more endpoints') and immediately pins the scope with 'WITHOUT invoking them', which no sibling tool does. An agent can distinguish this from the many invocation/report siblings at a glance.

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

Usage Guidelines4/5

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

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

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

astroway_dignities_almutenAlmuten FigurisA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
chartNo
almutenNo

TDQS

A3.5/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema 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.

Purpose5/5

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.

Usage Guidelines2/5

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 ChainsB
Read-onlyIdempotent
Inspect

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)]

NameRequiredDescriptionDefault
bodyYesNatal chart plus the dispositor mode (rulership or detriment) and the ruler set (classical or modern).
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

Output Schema

NameRequiredDescription
dataNo
modeNo
rulerModeNo

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema 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.

Purpose5/5

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.

Usage Guidelines2/5

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 LayoutB
Read-onlyIdempotent
Inspect

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)]

NameRequiredDescriptionDefault
bodyYesNatal chart plus the dispositor mode (rulership or detriment) and the ruler set (classical or modern).
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

Output Schema

NameRequiredDescription
dataNo
modeNo
boundsNo
layoutNo
rulerModeNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness4/5

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.

Completeness4/5

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

An output schema exists, so return values need no 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents every parameter in depth (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.

Purpose4/5

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.

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative 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 DignitiesA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
dignitiesNo
totalScoreNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered. The description adds 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so 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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

There is no explicit when-to-use guidance, 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 & AlcocodenB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
hylegNo
alcocodenNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return values need not be explained, and the 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no when-to-use 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 ReceptionsA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
countNo
mutualNo
receptionsNo

TDQS

A3.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance. 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_geo_acgAstrocartography (A*C*G)B
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
linesNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no statement of when to 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 categoryB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
poolNo
sortNo
typeNo
countNo
orbKmNo
placesNo
datasetNo
categoryNo
attributionNo
minSeparationKmNo
suppressedAsTooCloseNo
maxPossibleSupportiveNo

TDQS

B3.4/5.0
Behavior4/5

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.

Conciseness3/5

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.

Completeness4/5

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

An output schema exists, so return values need not be spelled out, 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no explicit when-to-use guidance 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 CategoryB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
countNo
linesNo
pointNo
categoryNo
languageNo
polarityNo
radiusDegNo
requestedLanguageNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no explicit when-to-use 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 CategoriesA
Read-onlyIdempotent
Inspect

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]

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

Output Schema

NameRequiredDescription
countNo
languageNo
categoriesNo
requestedLanguageNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world). 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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 rankingB
Read-onlyIdempotent
Inspect

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 ½)]

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

Output Schema

NameRequiredDescription
countNo
datasetNo
countriesNo
attributionNo
totalCitiesNo

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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

An output schema exists, so return-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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance. 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 ReportA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
lineNo
languageNo
categoriesNo
interpretationNo
requestedLanguageNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the 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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose4/5

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

The description states a specific verb+resource: 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.

Usage Guidelines3/5

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 PointA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
pointNo
radiusDegNo
nearbyLinesNo

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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

An output schema exists, so return 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema 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.

Purpose4/5

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.

Usage Guidelines3/5

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 AnalysisB
Read-onlyIdempotent
Inspect

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)]

NameRequiredDescriptionDefault
bodyYesWrapper { natal: ChartInput } used by endpoints that take a base natal plus extra parameters in flat fields.
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

Output Schema

NameRequiredDescription
metaNo
mcShiftNo
mundaneAspectsNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return values need no explanation, and the 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose4/5

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.

Usage Guidelines2/5

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 AnalysisB
Read-onlyIdempotent
Inspect

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)]

NameRequiredDescriptionDefault
bodyYesWrapper { natal: ChartInput } used by endpoints that take a base natal plus extra parameters in flat fields.
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

Output Schema

NameRequiredDescription
eclipsesNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 EquivalentsB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
geodeticMCNo
geodeticAscendantNo
zodiacalLongitudeNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint=false and destructiveHint=false, so the safety 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations cover safety. 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.

Parameters2/5

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

Schema description coverage is only 29%, so the description 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.

Purpose4/5

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.

Usage Guidelines2/5

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 ChartC
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
countNo
linesNo
birthplaceNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description'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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No when-to-use guidance, no prerequisites, and no 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 ZoneB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
countNo
polygonNo

TDQS

B3.4/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return values need not be explained, and 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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_geo_paransParansC
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
countNo
paransNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness4/5

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.

Completeness2/5

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

An output schema exists, so return values need not be explained, but for a 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no when-to-use guidance, no exclusions, and no 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)A
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
gmstNo
noteNo
typeNo
countNo
starsNo
paransNo
horizonNo
julianDayNo
obliquityNo
latitudeLimitNo
starsWithNoParansNo
requestedStarsNotFoundNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, 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.

Conciseness4/5

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.

Completeness4/5

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

With an output schema present, 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 ReturnB
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
phaseNo
planetNo
returnsNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists so return values need no explanation. 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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already 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.

Purpose4/5

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.

Usage Guidelines3/5

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 ChartA
Read-onlyIdempotent
Inspect

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)]

NameRequiredDescriptionDefault
bodyYesWrapper { natal: ChartInput } used by endpoints that take a base natal plus extra parameters in flat fields.
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

Output Schema

NameRequiredDescription
deltaNo
natalNo
relocatedNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is 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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose4/5

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.

Usage Guidelines3/5

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*GA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
yearNo
linesNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely useful context 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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose4/5

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.

Usage Guidelines3/5

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_zenithZenithC
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
countNo
pointsNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no 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_horoscope_compatibilityCompatibility HoroscopeA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
scoreNo
summaryNo
languageNo
strengthsNo
challengesNo

TDQS

A3.8/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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

With an output schema present, 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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

Usage is implied by the name and 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 HoroscopeA
Read-onlyIdempotent
Inspect

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)]

NameRequiredDescriptionDefault
dateNo
signYes
styleNo`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.
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
lengthNoWith `style: "plain"`: `short` (about 70-110 words a day) or `medium` (default, about 150-230).
topicsNoOnly these sections, in this order, in `sections` and in `horoscope`. Default all six.
languageNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
disclaimer_inlineNo

Output Schema

NameRequiredDescription
modelNo
languageNo
horoscopeNo
disclaimerNo

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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

An output schema exists, so 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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 HoroscopeA
Read-onlyIdempotent
Inspect

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)]

NameRequiredDescriptionDefault
dateNo
signYes
styleNo`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.
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
lengthNoWith `style: "plain"`: `short` (about 70-110 words a day) or `medium` (default, about 150-230).
topicsNoOnly these sections, in this order, in `sections` and in `horoscope`. Default all six.
languageNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
disclaimer_inlineNo

Output Schema

NameRequiredDescription
modelNo
languageNo
horoscopeNo
disclaimerNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), 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.

Conciseness4/5

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.

Completeness3/5

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

With an output schema present, return values need no explanation, and 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 HoroscopeB
Read-onlyIdempotent
Inspect

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)]

NameRequiredDescriptionDefault
dateNo
signYes
styleNo`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.
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
lengthNoWith `style: "plain"`: `short` (about 70-110 words a day) or `medium` (default, about 150-230).
topicsNoOnly these sections, in this order, in `sections` and in `horoscope`. Default all six.
languageNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
disclaimer_inlineNo

Output Schema

NameRequiredDescription
bodyNo
titleNo
weekEndNo
languageNo
weekStartNo
keyTransitsNo

TDQS

B3.4/5.0
Behavior4/5

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

Annotations already declare the full safety profile (readOnly/idempotent/non-destructive/closed-world), 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No when-to-use, when-not, or 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 HoroscopeB
Read-onlyIdempotent
Inspect

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)]

NameRequiredDescriptionDefault
dateNo
signYes
styleNo`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.
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
lengthNoWith `style: "plain"`: `short` (about 70-110 words a day) or `medium` (default, about 150-230).
topicsNoOnly these sections, in this order, in `sections` and in `horoscope`. Default all six.
languageNo
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.
disclaimer_inlineNo

Output Schema

NameRequiredDescription
bodyNo
yearNo
titleNo
languageNo
solarReturnNo
profectionLordNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already cover the safety profile (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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return values need not be described, and annotations 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no statement of when to use this tool versus 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_mcp_agent_debateMCP Agent DebateC
Read-onlyIdempotent
Inspect

2 personas debate a topic, multi-round transcript.

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

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

Output Schema

NameRequiredDescription
transcriptNo

TDQS

C2.9/5.0
Behavior3/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

An output schema exists, so return values need not be described. But for an 8-parameter tool with a nested chart object, aless-than-40% coverage, and a cost of 100 credits, the description leaves critical gaps — most importantly the semantics of agentA/agentB and the effect of rounds/language.

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

Parameters2/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

astroway_mcp_agent_pool_statusMCP Agent Pool StatusC
Read-onlyIdempotent
Inspect

8 personas with specialties.

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

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

Output Schema

NameRequiredDescription
noteNo
countNo
personasNo

TDQS

C2.2/5.0
Behavior3/5

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

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

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

Conciseness2/5

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

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

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

Completeness2/5

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

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

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

Parameters3/5

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

Schema description coverage is 100%, so the two optional parameters (fields, precision) are fully documented in the schema itself. The description adds no parameter meaning beyond the schema, so the baseline of 3 applies.

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

Purpose2/5

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

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

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

Usage Guidelines1/5

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

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

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

astroway_mcp_ai_chatChart-grounded AI chatA
Read-only
Inspect

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

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

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

Output Schema

NameRequiredDescription
modelNo
replyNo
tokensNo
personaNo
languageNo
disclaimerNo
duration_msNo

TDQS

A3.8/5.0
Behavior4/5

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

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

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

Conciseness5/5

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

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

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

Completeness4/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines3/5

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

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

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

astroway_mcp_ai_comparison_coachComparison CoachB
Read-only
Inspect

Coach two charts on relationship dynamics.

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

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

Output Schema

NameRequiredDescription
coachingNo

TDQS

B3.2/5.0
Behavior3/5

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

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

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

Conciseness4/5

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

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

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and the cost/endpoint block is present. But for a six-parameter AI tool embedded among dozens of similar compatibility siblings, the description lacks any hint of what the coaching output contains or what makes a good 'question', leaving the agent to guess at scope.

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

astroway_mcp_ai_explain_aspectExplain AspectB
Read-only
Inspect

Detailed explanation of an aspect between two planets.

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

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

Output Schema

NameRequiredDescription
explanationNo

TDQS

B3.2/5.0
Behavior3/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

An output schema exists, so return values need not be described. But for a 7-parameter tool with a nested chart object and LLM-backed generation, the description omits the valid domain for planet1/planet2, any usage guidance versus explain_transit, and any hint about generation latency or variable output.

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

Parameters4/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

astroway_mcp_ai_explain_transitExplain TransitB
Read-only
Inspect

Explain a current transit hitting your natal chart.

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

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

Output Schema

NameRequiredDescription
explanationNo

TDQS

B3/5.0
Behavior3/5

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

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

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

Conciseness4/5

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

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

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

Completeness3/5

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

An output schema exists, so return values need not be described. But for a 5-required-parameter tool with a near-twin sibling, the description omits the disambiguation, parameter usage, and cost implications an agent needs before committing. It is minimally adequate rather than complete.

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

Parameters2/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

astroway_mcp_multi_agent_coordinateMCP Multi-Agent CoordinateC
Read-onlyIdempotent
Inspect

Run N personas in parallel + LLM synthesis.

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

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

Output Schema

NameRequiredDescription
synthesisNo
individualNo

TDQS

C2.9/5.0
Behavior3/5

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

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

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

Conciseness4/5

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

Front-loaded with the operative sentence, followed by compact bracketed metadata; there is no filler prose. The brevity is close to under-specification rather than pure conciseness, keeping it out of the top band.

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

Completeness2/5

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

An output schema exists so return values need not be described, and cost is disclosed. However, for a tool whose whole contract is choosing personas and a question, the description never explains what the agents array should contain, leaving the most decision-relevant input undocumented across both description and schema.

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

Parameters2/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

astroway_mcp_multi_chart_contextMCP Multi-Chart ContextC
Read-only
Inspect

Compact context for MCP agents working across multiple charts.

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

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

Output Schema

NameRequiredDescription
notesNo
intentNo
summariesNo
chartCountNo
contextHashNo
summaryStringNo

TDQS

C2.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely useful non-annotation behavior: a 10-credit (Tier 1) cost and the POST endpoint. It says nothing about what the operation returns or how it behaves across the 1-6 chart array, so it earns only partial credit.

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

Conciseness3/5

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

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

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

Completeness2/5

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

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

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

Parameters2/5

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

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

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

Purpose2/5

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

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

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

Usage Guidelines2/5

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

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

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

astroway_mcp_streamingMCP Streaming ChatB
Read-only
Inspect

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

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

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

TDQS

B3.4/5.0
Behavior4/5

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

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

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

Conciseness4/5

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

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

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

Completeness3/5

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

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

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

Parameters3/5

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

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

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

Purpose4/5

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

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

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

Usage Guidelines2/5

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

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

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

astroway_mcp_tool_call_streamMCP Tool-Call StreamC
Read-onlyIdempotent
Inspect

SSE-stream of a tool call envelope.

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

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

TDQS

C2.7/5.0
Behavior3/5

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

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

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

Conciseness4/5

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

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

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

Completeness2/5

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

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

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

Parameters2/5

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

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

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

Purpose3/5

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

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

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

Usage Guidelines2/5

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

The only usage cue is the bracketed "[Required: tool]" — there is no when-to-use, no when-not-to-use, and no routing to an alternative despite multiple plausible siblings (astroway_mcp_streaming, astroway_mcp_tools_list, astroway_agent_tools). The agent must guess whether streaming is preferred over a plain call.

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

astroway_mcp_tools_listMCP Tools ListC
Read-only
Inspect

Auto-generated tool manifest for MCP clients (modelcontextprotocol/2025-03 spec).

[Group: AI & MCP] [Endpoint: GET /v1/mcp/tools-list] [Cost: see your plan — endpoint not in the public credit manifest]

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

Output Schema

NameRequiredDescription
specNo
notesNo
toolsNo
serverNo
toolCountNo

TDQS

C2.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context the annotations do not: the concrete GET endpoint and a cost caveat that this scope is not in the public credit manifest. It does not explain response size or pagination for a manifest that presumably enumerates all tools.

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

Conciseness3/5

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

The single purpose sentence is front-loaded and the metadata tags are compact, but the bracketed group/endpoint/cost lines are boilerplate scaffolding rather than description content. Nothing is wasted, yet very little informational payload is delivered.

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

Completeness2/5

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

An output schema exists so return-value documentation is not required, but for a meta-tool that enumerates the entire tool surface, the description never explains the scenario in which an agent would reach for it instead of directly invoking a domain tool. Given the enormous sibling set, this leaves a real gap.

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

Parameters3/5

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

Schema description coverage is 100%, so both `fields` and `precision` are already documented in the schema with examples and constraints. The description contributes no additional parameter meaning; the baseline 3 is appropriate.

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

Purpose2/5

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

"Auto-generated tool manifest for MCP clients" largely restates the name 'MCP Tools List' without a distinct verb or an explanation of what the response actually contains. It gives an endpoint and spec version but no functional description that would distinguish its purpose from any other listing endpoint.

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

Usage Guidelines2/5

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

There is no statement of when an agent should call this tool, what problem it solves, or how it relates to the ~190 sibling tools. The only contextual cues are the bracketed [Group]/[Endpoint]/[Cost] metadata tags, which are not usage guidance.

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

astroway_reference_natal_textsNatal texts (static)A
Read-onlyIdempotent
Inspect

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.

NameRequiredDescriptionDefault
keysYesComma 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`.
langYesLanguage of the texts. No fallback: a text missing in this language is listed in `missing`.
fieldsNoCompact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response.
precisionNoCompact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn.

Output Schema

NameRequiredDescription
langNo
textsNo
missingNo

TDQS

A4.6/5.0
Behavior5/5

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.

Conciseness4/5

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.

Completeness5/5

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

With an output schema present, the description 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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_render_aspect_gridAspect Grid (SVG)B
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
svgNo
formatNo
byteLengthNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return values need no explanation, and the annotations 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no when-to-use guidance and no 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)B
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
svgNo
formatNo
byteLengthNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered without the description. The description 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return-value explanation is not required, and 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance and no 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)B
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
svgNo
formatNo
byteLengthNo

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return values need no explanation, and annotations 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)B
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
svgNo
formatNo
byteLengthNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness4/5

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.

Completeness3/5

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

With an output schema present 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)B
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
svgNo
formatNo
byteLengthNo

TDQS

B3.2/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no when-to-use, 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)C
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
svgNo
formatNo
byteLengthNo

TDQS

C2.9/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)B
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
svgNo
phaseNo
waxingNo
elongationDegNo
illuminationFractionNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists so return values needn't be 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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)C
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
svgNo
formatNo
byteLengthNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no statement of when to use this tool versus alternatives, 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)B
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
svgNo
formatNo
byteLengthNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return-value explanation is not required. 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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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)A
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
svgNo
formatNo
byteLengthNo

TDQS

A3.6/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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)B
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
svgNo
formatNo
byteLengthNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents 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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no when-to-use guidance at all: nothing says 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)B
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
svgNo
formatNo
byteLengthNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely useful 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.

Conciseness4/5

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.

Completeness4/5

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

An output schema exists, so return-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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

No when-to-use guidance and no routing 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)B
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
svgNo
formatNo
byteLengthNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is 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.

Conciseness4/5

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.

Completeness3/5

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

An output schema exists, so return values need not be explained, and the 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.

Parameters3/5

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.

Purpose4/5

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

The description states a specific verb+resource (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.

Usage Guidelines2/5

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

There is no statement of when to 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)B
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
svgNo
formatNo
byteLengthNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness4/5

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.

Completeness4/5

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

An output schema exists, so return values need not be 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance and no 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_western_chartNatal ChartA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
metaNo
inputNo
housesNo
aspectsNo
planetsNo
antisciaNo
chartSectNo
julianDayNo
localizedNo
houseAspectsNo
siderealTimeNo
antisciaAspectsNo
parallelAspectsNo

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 RangeA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
ephemerisNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, closed-world 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.

Conciseness4/5

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.

Completeness4/5

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

With an output schema present, 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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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 PositionsA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
planetsNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's 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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 TimesA
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
dawnNo
duskNo
sunsetNo
sunriseNo
dayLengthNo

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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

With an output schema present, the description 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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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_zodiac_signs_per_sign_deep_zodiac_aquariusAquarius: Fixed AirB
Read-onlyIdempotent
Inspect

Communal innovation, futurist detachment. Saturn + Uranus. I KNOW.

[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/aquarius] [Cost: 10 credits (Tier 1)]

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

Output Schema

NameRequiredDescription
signNo
cohortNo
decansNo
sourceNo
degreeRangeNo
descriptionNo

TDQS

B3/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the 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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

There is no when-to-use guidance and no 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 FireC
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
signNo
cohortNo
decansNo
sourceNo
degreeRangeNo
descriptionNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare the full safety profile (readOnlyHint, idempotentHint, 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.

Conciseness3/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

There is no when-to-use guidance. 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 WaterC
Read-onlyIdempotent
Inspect

Protective nurture, tidal memory. Ruler Moon. I FEEL.

[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/cancer] [Cost: 10 credits (Tier 1)]

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

Output Schema

NameRequiredDescription
signNo
cohortNo
decansNo
sourceNo
degreeRangeNo
descriptionNo

TDQS

C2.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness2/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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 EarthC
Read-onlyIdempotent
Inspect

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)]

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

Output Schema

NameRequiredDescription
signNo
cohortNo
decansNo
sourceNo
degreeRangeNo
descriptionNo

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description 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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No when-to-use guidance and no routing against 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 AirC
Read-onlyIdempotent
Inspect

Curious connection, plural perspectives. Ruler Mercury. I THINK.

[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/gemini] [Cost: 10 credits (Tier 1)]

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

Output Schema

NameRequiredDescription
signNo
cohortNo
decansNo
sourceNo
degreeRangeNo
descriptionNo

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, 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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative 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 FireC
Read-onlyIdempotent
Inspect

Radiant generosity, theatrical authority. Ruler Sun. I WILL.

[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/leo] [Cost: 10 credits (Tier 1)]

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

Output Schema

NameRequiredDescription
signNo
cohortNo
decansNo
sourceNo
degreeRangeNo
descriptionNo

TDQS

C2.4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is 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.

Conciseness3/5

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.

Completeness2/5

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

An output schema exists, so return values need not be explained, but 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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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 AirC
Read-onlyIdempotent
Inspect

Partnership, aesthetic balance, mediation. Ruler Venus. I BALANCE.

[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/libra] [Cost: 10 credits (Tier 1)]

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

Output Schema

NameRequiredDescription
signNo
cohortNo
decansNo
sourceNo
degreeRangeNo
descriptionNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds 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.

Conciseness4/5

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.

Completeness3/5

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

With an output schema present, 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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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 WaterC
Read-onlyIdempotent
Inspect

Oceanic compassion, dissolving boundaries. Jupiter + Neptune. I BELIEVE.

[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/pisces] [Cost: 10 credits (Tier 1)]

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

Output Schema

NameRequiredDescription
signNo
cohortNo
decansNo
sourceNo
degreeRangeNo
descriptionNo

TDQS

C2.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is 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.

Conciseness3/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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 FireC
Read-onlyIdempotent
Inspect

Philosophical quest, frank expansion. Ruler Jupiter. I SEE.

[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/sagittarius] [Cost: 10 credits (Tier 1)]

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

Output Schema

NameRequiredDescription
signNo
cohortNo
decansNo
sourceNo
degreeRangeNo
descriptionNo

TDQS

C2.6/5.0
Behavior3/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so 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.

Conciseness4/5

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.

Completeness2/5

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

An output schema exists, so return values need not be explained, but 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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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 WaterC
Read-onlyIdempotent
Inspect

Penetrating depth, transformation. Mars + Pluto. I DESIRE.

[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/scorpio] [Cost: 10 credits (Tier 1)]

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

Output Schema

NameRequiredDescription
signNo
cohortNo
decansNo
sourceNo
degreeRangeNo
descriptionNo

TDQS

C2.6/5.0
Behavior3/5

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.

Conciseness3/5

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.

Completeness3/5

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

With an output schema present 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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternative 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 EarthC
Read-onlyIdempotent
Inspect

Embodied stability, sensory wealth. Ruler Venus. I HAVE.

[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/taurus] [Cost: 10 credits (Tier 1)]

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

Output Schema

NameRequiredDescription
signNo
cohortNo
decansNo
sourceNo
degreeRangeNo
descriptionNo

TDQS

C2.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false, 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.

Conciseness2/5

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.

Completeness2/5

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

An output schema exists, so return 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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines1/5

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

There is no when-to-use guidance, no exclusions, and no 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 EarthC
Read-onlyIdempotent
Inspect

Discerning service, refined craft. Ruler Mercury. I ANALYZE.

[Group: Zodiac Signs (Per-Sign Deep)] [Endpoint: GET /v1/zodiac/virgo] [Cost: 10 credits (Tier 1)]

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

Output Schema

NameRequiredDescription
signNo
cohortNo
decansNo
sourceNo
degreeRangeNo
descriptionNo

TDQS

C2.4/5.0
Behavior3/5

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.

Conciseness2/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

There is no when-to-use guidance, no 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. 1 tool update
    • Changedastroway_aspects_fixed_stars2 fields changed
      • addedOutput schema / properties / conjunctions
        Added 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"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / orb
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
  2. 4 tool updates
    • Changedastroway_horoscope_daily3 fields changed
      • addedInput schema / properties / length
        Added value: +{
        +  "description": "With `style: \"plain\"`: `short` (about 70-110 words a day) or `medium` (default, about 150-230).",
        +  "enum": [
        +    "short",
        +    "medium"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / style
        Added 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"
        +}
      • addedInput schema / properties / topics
        Added 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"
        +}
    • Changedastroway_horoscope_monthly3 fields changed
      • addedInput schema / properties / length
        Added value: +{
        +  "description": "With `style: \"plain\"`: `short` (about 70-110 words a day) or `medium` (default, about 150-230).",
        +  "enum": [
        +    "short",
        +    "medium"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / style
        Added 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"
        +}
      • addedInput schema / properties / topics
        Added 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"
        +}
    • Changedastroway_horoscope_weekly3 fields changed
      • addedInput schema / properties / length
        Added value: +{
        +  "description": "With `style: \"plain\"`: `short` (about 70-110 words a day) or `medium` (default, about 150-230).",
        +  "enum": [
        +    "short",
        +    "medium"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / style
        Added 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"
        +}
      • addedInput schema / properties / topics
        Added 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"
        +}
    • Changedastroway_horoscope_yearly3 fields changed
      • addedInput schema / properties / length
        Added value: +{
        +  "description": "With `style: \"plain\"`: `short` (about 70-110 words a day) or `medium` (default, about 150-230).",
        +  "enum": [
        +    "short",
        +    "medium"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / style
        Added 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"
        +}
      • addedInput schema / properties / topics
        Added 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"
        +}
  3. 1 tool update
    • Changedastroway_calendar_lunar_calendar2 fields changed
      • addedInput schema / properties / timezone
        Added 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"
        +}
      • addedInput schema / properties / timezoneOffset
        Added 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"
        +}
  4. 1 tool update
    • Changedastroway_reference_natal_texts1 field changed
      • changedInput schema / properties / keys / description
        Previous 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`."
  5. 1 tool update
    • Changedastroway_reference_natal_texts1 field changed
      • changedInput schema / properties / keys / description
        Previous 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`."
  6. 1 tool update
    • Changedastroway_reference_natal_texts1 field changed
      • changedInput schema / properties / keys / description
        Previous 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`."
  7. 1 tool update
    • Changedastroway_calendar_retrograde_periods1 field changed
      • changedOutput schema / properties / periods / anyOf
        Previous value: -[
        -  {
        -    "items": {
        -      "anyOf": [
        -        {
        -          "additionalProperties": {},
        -          "properties": {
        -            "planetId": {
        -              "anyOf": [
        -                {
        -                  "type": "number"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "planetName": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "retroEnd": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "retroStart": {
        -              "anyOf": [
        -                {
        -                  "type": "string"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "stationDirectLong": {
        -              "anyOf": [
        -                {
        -                  "type": "number"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            },
        -            "stationRetroLong": {
        -              "anyOf": [
        -                {
        -                  "type": "number"
        -                },
        -                {
        -                  "type": "null"
        -                }
        -              ]
        -            }
        -          },
        -          "type": "object"
        -        },
        -        {
        -          "type": "null"
        -        }
        -      ]
        -    },
        -    "type": "array"
        -  },
        -  {
        -    "type": "null"
        -  }
        -]New value: +[
        +  {
        +    "items": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {
        +            "planetId": {
        +              "anyOf": [
        +                {
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "planetName": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "retroEnd": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "retroStart": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "shadowEnd": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "shadowStart": {
        +              "anyOf": [
        +                {
        +                  "type": "string"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "stationDirectLong": {
        +              "anyOf": [
        +                {
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            },
        +            "stationRetroLong": {
        +              "anyOf": [
        +                {
        +                  "type": "number"
        +                },
        +                {
        +                  "type": "null"
        +                }
        +              ]
        +            }
        +          },
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "type": "array"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
  8. 105 tool updates
    • First observedastroway_account_status
    • First observedastroway_agent_tools
    • First observedastroway_aspects_antiscia
    • First observedastroway_aspects_arabic_parts
    • First observedastroway_aspects_aspect_bar
    • First observedastroway_aspects_aspect_timeline
    • First observedastroway_aspects_fixed_stars
    • First observedastroway_aspects_fixed_stars_catalog
    • First observedastroway_aspects_gauquelin_sectors
    • First observedastroway_aspects_midpoint_trees
    • First observedastroway_aspects_midpoints
    • First observedastroway_aspects_parallel_aspects
    • First observedastroway_aspects_sabian_symbols
    • First observedastroway_calendar_algol_minimum
    • First observedastroway_calendar_algol_minimum_nearest
    • First observedastroway_calendar_aspects
    • First observedastroway_calendar_cyclic_index
    • First observedastroway_calendar_eclipses
    • First observedastroway_calendar_houses
    • First observedastroway_calendar_ingresses
    • First observedastroway_calendar_lunar_calendar
    • First observedastroway_calendar_moon_aspects
    • First observedastroway_calendar_moon_phase
    • First observedastroway_calendar_moon_voc
    • First observedastroway_calendar_planetary_cycles
    • First observedastroway_calendar_planetary_hours
    • First observedastroway_calendar_planetary_phases
    • First observedastroway_calendar_retrograde_periods
    • First observedastroway_content_localization_translate_astro
    • First observedastroway_content_localization_translate_batch
    • First observedastroway_content_localization_translate_glossary_lang
    • First observedastroway_content_localization_translate_languages
    • First observedastroway_cost_estimate
    • First observedastroway_dignities_almuten
    • First observedastroway_dignities_disposition_chains
    • First observedastroway_dignities_disposition_chains_layout
    • First observedastroway_dignities_essential_dignities
    • First observedastroway_dignities_hyleg
    • First observedastroway_dignities_receptions
    • First observedastroway_geo_acg
    • First observedastroway_geo_acg_best_places
    • First observedastroway_geo_acg_by_category
    • First observedastroway_geo_acg_categories
    • First observedastroway_geo_acg_countries
    • First observedastroway_geo_acg_line_report
    • First observedastroway_geo_acg_zones
    • First observedastroway_geo_ccg_analysis
    • First observedastroway_geo_eclipse_analysis
    • First observedastroway_geo_geodetic
    • First observedastroway_geo_local_space
    • First observedastroway_geo_local_space_influence_zone
    • First observedastroway_geo_parans
    • First observedastroway_geo_parans_star
    • First observedastroway_geo_phase_return
    • First observedastroway_geo_relocation
    • First observedastroway_geo_solar_acg
    • First observedastroway_geo_zenith
    • First observedastroway_horoscope_compatibility
    • First observedastroway_horoscope_daily
    • First observedastroway_horoscope_monthly
    • First observedastroway_horoscope_weekly
    • First observedastroway_horoscope_yearly
    • First observedastroway_mcp_agent_debate
    • First observedastroway_mcp_agent_pool_status
    • First observedastroway_mcp_ai_chat
    • First observedastroway_mcp_ai_comparison_coach
    • First observedastroway_mcp_ai_explain_aspect
    • First observedastroway_mcp_ai_explain_transit
    • First observedastroway_mcp_multi_agent_coordinate
    • First observedastroway_mcp_multi_chart_context
    • First observedastroway_mcp_rag_search
    • First observedastroway_mcp_streaming
    • First observedastroway_mcp_tool_call_stream
    • First observedastroway_mcp_tools_list
    • First observedastroway_reference_natal_texts
    • First observedastroway_render_aspect_grid
    • First observedastroway_render_bi_wheel
    • First observedastroway_render_biorhythm
    • First observedastroway_render_composite
    • First observedastroway_render_cosmogram
    • First observedastroway_render_eclipse_path
    • First observedastroway_render_moon_phase
    • First observedastroway_render_star_map
    • First observedastroway_render_timeline
    • First observedastroway_render_tri_wheel
    • First observedastroway_render_wheel_vedic_east
    • First observedastroway_render_wheel_vedic_north
    • First observedastroway_render_wheel_vedic_south
    • First observedastroway_render_wheel_western
    • First observedastroway_western_chart
    • First observedastroway_western_ephemeris
    • First observedastroway_western_planets
    • First observedastroway_western_sun_times
    • First observedastroway_zodiac_signs_per_sign_deep_zodiac_aquarius
    • First observedastroway_zodiac_signs_per_sign_deep_zodiac_aries
    • First observedastroway_zodiac_signs_per_sign_deep_zodiac_cancer
    • First observedastroway_zodiac_signs_per_sign_deep_zodiac_capricorn
    • First observedastroway_zodiac_signs_per_sign_deep_zodiac_gemini
    • First observedastroway_zodiac_signs_per_sign_deep_zodiac_leo
    • First observedastroway_zodiac_signs_per_sign_deep_zodiac_libra
    • First observedastroway_zodiac_signs_per_sign_deep_zodiac_pisces
    • First observedastroway_zodiac_signs_per_sign_deep_zodiac_sagittarius
    • First observedastroway_zodiac_signs_per_sign_deep_zodiac_scorpio
    • First observedastroway_zodiac_signs_per_sign_deep_zodiac_taurus
    • First observedastroway_zodiac_signs_per_sign_deep_zodiac_virgo

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Calculates astrological birth charts including planetary positions, house placements, and aspects based on birth date, time, and location.
    802 npm
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Calculates astrological natal charts with high precision using Swiss Ephemeris, supporting multiple house systems and location inputs.
    2
    10 npm
    5
    AGPL 3.0
  • A
    license
    Not graded
    quality
    B
    maintenance
    It provides deterministic modern Western astrology natal-chart calculations using JPL-Horizons-verified ephemeris, with honest handling of unknown birth times and Chinese-first output.
    16 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources