AstroWay Forecasting
Server Details
Transits, progressions, directions, returns, cosmobiology and evolutionary technique.
- Status
- Healthy
- Uptime
- 96.9% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 45 tools
Most tools target distinct astrology techniques, but several clusters are easy to confuse: agent_tools vs mcp_tools_list (both return tool schemas), ai_chat vs streaming (chat vs SSE chat), and agent_debate vs multi_agent_coordinate (multi-agent orchestration). The detailed descriptions mitigate this, but selection still requires care.
All 45 tools follow a strict astroway_{category}_{descriptor} snake_case pattern, with consistent prefixes (cosmobiology, evolutionary, mcp, prognostics). No mixed conventions or camelCase.
45 tools is well above the 25-tool threshold for 'too many' in the rubric, and while each endpoint is distinct, exposing all as MCP tools risks overwhelming an agent's selection process. The server would benefit from grouping or composition.
The prognostics and cosmobiology groups cover a wide range of forecasting techniques (transits, progressions, returns, directions, calendars, rectification). Minor gaps exist: no eclipse-specific tool, no zodiacal releasing, no chart management, and no basic natal chart endpoint separate from AI chat.
Available Tools
45 toolsastroway_account_statusAccount StatusARead-onlyIdempotentInspect
Check current API key status: tier, credit balance, rate limits, monthly cycle reset. Run this BEFORE invoking expensive endpoints (Tier 4+ at 100+ credits, Tier 6/7 at 500-5000 credits) to confirm the user has budget. Returns plain-text human-readable summary.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint. Description adds that it returns a 'plain-text human-readable summary' and clarifies the budget-checking purpose, providing useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three efficient sentences: purpose, usage guidance, and return format. Front-loaded with key information, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description specifies the return format (plain-text human-readable summary). For a simple status check tool, this is complete and sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Tool has zero parameters, so schema coverage is 100%. Description does not need to explain parameters, and it adds value by hinting at the output format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Check' and the resource 'API key status' with specific attributes (tier, credit balance, rate limits, monthly cycle reset). It distinguishes itself from the many sibling astrology calculation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to run this tool BEFORE invoking expensive endpoints, providing credit thresholds (Tier 4+ at 100+ credits, Tier 6/7 at 500-5000 credits) to confirm budget.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_agent_toolsAgent tool definitionsARead-onlyIdempotentInspect
Tool definitions for an agent framework, generated from the live OpenAPI document, so the schema a model fills is the schema the endpoint validates. format=openai (default) returns { type, function } objects you can spread straight into a chat completion; format=anthropic returns { name, description, input_schema }. The objects carry nothing of ours: how to call each tool lives in a separate executors map keyed by tool name, because an unexpected key inside a vendor tool object is a 400 at their end.
[Group: Agent Platform] [Endpoint: GET /v1/agent/tools] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Free-text filter applied within the selection, matched against path, summary, description and group. | |
| limit | No | How many tools to return. The ceiling is the OpenAI limit of 128 functions per request; models degrade well before it. Anything left out is counted in `totalMatched`. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| format | No | Which vendor contract the tool objects follow. `openai` returns `{ type, function }`, `anthropic` returns `{ name, description, input_schema }`. | openai |
| select | No | What to hand over: `starter` (the curated set, the default), `all`, `group:<tag>` such as `group:Vedic`, or `paths:/chart,/synastry` for an explicit list. An unknown path is named in `notes` rather than dropped. | starter |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| notes | No | |
| tools | No | |
| format | No | |
| select | No | |
| executors | No | |
| truncated | No | |
| totalMatched | No | |
| totalAvailable | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), yet the description adds genuine behavioral context beyond them: executors are kept out of the vendor objects because an unexpected key causes a 400 on the vendor side, and cost is flagged as not in the public credit manifest. That is real operational value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Roughly three sentences, front-loaded with the purpose before the format and executor caveats. It is dense but each sentence carries information, though the format explanation partially duplicates the schema's own enum description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and full annotation coverage, the description need not explain return values, and it appropriately focuses on the vendor-shape contract and the executors/400 gotcha. It is nearly complete, with the only gap being sibling disambiguation rather than missing operational detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter in depth (limit ceiling rationale, select values, precision semantics). The description only restates format and its default, adding no parameter meaning the schema lacks. Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states what the tool returns: tool definitions for an agent framework, generated from the live OpenAPI document. It is specific about the resource and the vendor-shape variants (openai vs anthropic objects). However, it never distinguishes this from the near-identical sibling astroway_mcp_tools_list, which an agent would plausibly confuse it with.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use, when-not-to-use, or alternative-naming guidance. The mention that openai objects 'spread straight into a chat completion' implies a use case, but the agent is left to infer when this endpoint is preferable to astroway_mcp_tools_list or the MCP tool-call streaming siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_cosmogramCosmogram (90° Render Data)CRead-onlyIdempotentInspect
Ebertin cosmogram render data.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/cosmogram] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| points | No | |
| source | No | |
| aspects | No | |
| modulus | No | |
| methodology | No | |
| ringDegrees | No | |
| topPictures | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description does add genuinely useful behavioral context not present in annotations — the cost (10 credits, Tier 1) and the POST endpoint — but says nothing about authorizations, quotas beyond cost, or determinism across calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loaded, but four of five lines are bracketed boilerplate tags. [Required] duplicates the schema's required array, and [Endpoint] is a value the agent cannot act on. The one line carrying real content — purpose — is the least informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter tool with 31% schema coverage, the definition is thin. An output schema exists so return values need not be explained, but the agent still lacks any picture of what the cosmogram contains, how it differs from dial_90, or what the optional parameters change.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31% across 16 parameters, so the description must compensate and does not. It merely re-lists the four required parameters (date, time, latitude, longitude), which the schema's `required` array already states, and says nothing about the undocumented optional params (withTnp, cosmogram, zodiacType, houseSystem, ayanamsaId, name, city).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The body 'Ebertin cosmogram render data' essentially restates the name (astroway_cosmobiology_cosmogram) and title (Cosmogram (90° Render Data)) without adding a verb, output, or scope. It names the domain concept (Ebertin/Hamburg School) but gives no way to tell it apart from siblings like astroway_cosmobiology_dial_90 or astroway_cosmobiology_midpoint_pictures, which are also 90°-dial cosmobiology render tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative routing. The sibling list contains at least a dozen overlapping cosmobiology tools (dial_90, witte_formulas, midpoint_pictures, sensitive_points) and nothing here tells the agent which to pick. The [Required] line is an input constraint, not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_dial_9090° DialCRead-onlyIdempotentInspect
All chart points in 90° cardinal modulus.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/dial-90] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| points | No | |
| source | No | |
| modulus | No | |
| methodology | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the pricing tier ('10 credits, Tier 1'), which is genuinely useful context not present in structured fields, plus the HTTP endpoint. It adds no information about computation quirks or interpretation scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One front-loaded sentence plus four bracketed metadata lines; nothing is padded or redundant. The tag format is dense and easy to scan, though the cost/endpoint lines occupy half the space relative to very thin functional content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, but for a 16-parameter, interpretation-heavy astrological computation with weak schema coverage, the description omits flag semantics, zodiac/house-system selection guidance, and sibling differentiation. It is too thin for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31% across 16 parameters, so the description is expected to compensate — it does not. '[Required: date, time, latitude, longitude]' merely restates the schema's required array, and no guidance is given for houseSystem, zodiacType, withTnp, cosmogram, or the compact-mode fields/precision controls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource and computation: 'All chart points in 90° cardinal modulus.' An agent can tell this produces a 90° dial listing of chart points, distinct from midpoint pictures or the cosmogram. It stops short of naming the sibling it competes with, and the jargon-heavy phrase 'cardinal modulus' carries most of the meaning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all — nothing explains when a 90° dial is preferable to astroway_cosmobiology_cosmogram, midpoint_pictures, or sensitive_points, despite a cluster of closely related cosmobiology siblings. The bracketed metadata block only lists groups, endpoint, and cost.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_eight_harmonic_aspects8H Aspect GridCRead-onlyIdempotentInspect
22.5° / 45° / 67.5° / 90° / 135° aspects.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/eight-harmonic-aspects] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| orb | No | |
| count | No | |
| angles | No | |
| source | No | |
| aspects | No | |
| aspectNames | No | |
| methodology | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description usefully adds the cost (10 credits, Tier 1) and the endpoint/required-field summary, but says nothing about the size or shape of the grid, whether results are paginated, or what the withTnp/cosmogram toggles do behaviorally.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The content is short and the angle list is front-loaded, so it is efficient. But the bracketed metadata block is boilerplate rather than substance, and the definition is under-specified rather than truly concise for a 16-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, but for a 16-parameter tool with 31% schema coverage and no usage guidance, the description is not complete enough. An agent cannot tell from this text how the 8H grid differs from the 90° dial or cosmogram output, nor what the optional flags change.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31% across 16 parameters, so the description must compensate and does not. It restates the four required fields (date, time, latitude, longitude) that are already in the schema's required array, and leaves behaviorally significant options such as withTnp, cosmogram, houseSystem, zodiacType, fields and ayanamsaId unexplained in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (8H aspect grid) and enumerates the specific angular values (22.5°/45°/67.5°/90°/135°), which tells an agent what is being computed. However, it never supplies a verb such as 'compute' or 'list' and never differentiates itself from close siblings like astroway_cosmobiology_dial_90 or astroway_cosmobiology_cosmogram, leaving the agent to infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use, when-not-to-use, or alternative-routing guidance at all. The bracketed metadata lists group, endpoint, required fields and cost, but nothing tells the agent under what circumstances this tool should be chosen over the many other cosmobiology endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_lefeldt_extensionsLefeldt ExtensionsCRead-onlyIdempotentInspect
Lefeldt-Brummund 22.5° subdivisions.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/lefeldt-extensions] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| orb | No | |
| source | No | |
| octants | No | |
| branches | No | |
| methodology | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a read-only, idempotent, non-destructive, closed-world call. The description adds genuinely useful operational context beyond that: the POST endpoint and the 10-credit Tier 1 cost, which affects whether an agent should spend a call. It says nothing about what is computed or returned, but with annotations carrying the safety profile a 3 is fair.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The technique name is front-loaded and the bracketed metadata lines are compact and scannable. Every line carries some information, though the endpoint and required-params lines are largely restatements of already-structured data.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter, niche cosmobiology tool surrounded by near-synonym siblings, the description gives no conceptual output overview and no selection criteria. With an output schema present it need not describe return values, but the missing usage disambiguation and parameter explanation leave an agent unable to confidently choose it over dial_90 or witte_formulas.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31% across 16 parameters, so the description bears real explanatory burden. It lists the four required fields (already in the schema's required array) but adds no meaning for ambiguous optional parameters like withTnp, cosmogram, zodiacType, houseSystem, or ayanamsaId, leaving most parameters undocumented in both places.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific technique ("Lefeldt-Brummund 22.5° subdivisions") plus its family and endpoint, which is more than a tautology. But it uses unexplained jargon with no verb and no statement of what the output actually is, and it does not differentiate from several close siblings such as witte_formulas, dial_90, or midpoint_pictures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Required: date, time, latitude, longitude" is parameter metadata, not usage guidance, and it merely repeats the schema's required list. There is no when-to-use, no when-not-to-use, and no routing to any of the many sibling cosmobiology tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_midpoint_picturesMidpoint PicturesCRead-onlyIdempotentInspect
A=B/C structures with sentence form.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/midpoint-pictures] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| orb | No | |
| count | No | |
| source | No | |
| notation | No | |
| pictures | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the full safety profile (readOnly, idempotent, non-destructive, closed-world), so the description is not required to explain mutation risk. It does add two useful operational facts beyond the annotations: the POST endpoint and the 10-credit Tier 1 cost, which matters for cost-aware agents. It says nothing about rate limits, payload size, or response shape.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is tightly front-loaded: the domain concept leads, followed by bracketed metadata lines that are easy to scan. Nothing is padded, though the bracketed lines occupy space that could have carried the missing usage and parameter guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, but this is a 16-parameter tool with three enums and a sophisticated sidereal/house-system surface, and the description provides no orientation to any of it. For a tool of this complexity, the bare required-parameter list and cost note are not enough for an agent to invoke it confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31%, well under the threshold where the schema can carry the burden, so the description needs to compensate and does not. It merely restates the four required parameters already marked required in the schema, leaving the twelve optional parameters (houseSystem enum, withTnp, cosmogram, ayanamsa, zodiacType, fields, precision) unexplained anywhere except the schema's own text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"A=B/C structures with sentence form" names a domain-specific artifact and its output shape, which is slightly more than the title alone, but it never states the plain-language operation (compute midpoint pictures) or the subject of the computation. It also fails to distinguish itself from close siblings like astroway_cosmobiology_transit_midpoints or astroway_cosmobiology_cosmogram, whose names overlap heavily in this same group.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lists required inputs and a cost tier but gives no when-to-use guidance and no alternatives. An agent choosing among nine cosmobiology siblings gets no signal about which produces midpoint pictures versus dials, cosmograms, or transit midpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_personal_point_treePersonal Point TreeCRead-onlyIdempotentInspect
Tree per personal point.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/personal-point-tree] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| orb | No | |
| tree | No | |
| source | No | |
| methodology | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so safety is covered. The description usefully adds the credit cost (10 credits, Tier 1) and confirmed required inputs, but says nothing about output shape or any operational constraints beyond cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and the bracketed metadata is well-structured and front-loaded. However, the single content sentence is pure tautology and the rest is boilerplate, so brevity here reflects under-specification rather than efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter specialized astrology endpoint, the description omits what the tree output represents and how the optional flags modify it. An output schema exists so return values needn't be explained, but the operational and semantic gaps remain too large.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31% across 16 parameters, so the description must compensate and does not. It merely echoes the four required fields already in the schema and ignores ambiguous params like withTnp, cosmogram, and name entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The core sentence 'Tree per personal point' essentially restates the title 'Personal Point Tree' without stating what the tool actually computes or returns. The bracketed metadata gives group and endpoint but never defines what a 'personal point tree' is or how it differs from siblings like sensitive_points or midpoint_pictures.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The [Required] line lists the inputs but gives no when-to-use context, no prerequisites, and no distinction from the many sibling cosmobiology tools. An agent is left to guess which of the 40+ siblings is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_sensitive_pointsSensitive PointsCRead-onlyIdempotentInspect
Ebertin's personal points midpoint hits.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/sensitive-points] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| orb | No | |
| source | No | |
| pictures | No | |
| methodology | No | |
| personalPoints | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so safety is covered. The description adds genuinely useful non-annotation context: the endpoint path and the cost of 10 credits (Tier 1). It says nothing about computational behavior or the effect of the domain-specific flags (withTnp, cosmogram), leaving that gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loads the domain phrase, but the bracketed metadata blocks partly duplicate structured data (required params, group) rather than adding meaning. Every sentence technically 'earns its place' only in the cost and endpoint lines; the core prose is too thin to be efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 16-parameter astrological calculation, the description omits what sensitive points are, how they differ from sibling midpoint tools, and how the non-obvious flags change results. An output schema exists so return values need no explanation, but that does not cover the usage and parameter gaps, which remain substantial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31% across 16 parameters, so the description must compensate and does not. It lists the four required params (date, time, latitude, longitude), which the schema already enforces, and says nothing about the many undocumented params: withTnp, cosmogram, zodiacType, houseSystem, ayanamsaId, name, city. No syntax, defaults, or interaction guidance is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The prose is a single noun phrase, 'Ebertin's personal points midpoint hits,' which names a domain-specific artifact but no verb or output. It does not distinguish this tool from close siblings such as astroway_cosmobiology_personal_point_tree, midpoint_pictures, or transit_midpoints. An agent outside Hamburg School astrology cannot infer what is computed or returned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use, when-not-to-use, or alternative routing appears anywhere. The '[Required: ...]' block merely restates the schema's required list and is not usage guidance. Nothing tells the agent why it would pick this over the other cosmobiology endpoints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_transit_midpointsTransit MidpointsCRead-onlyIdempotentInspect
Transits hitting natal midpoints in 90° dial.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/transit-midpoints] [Required: date, time, latitude, longitude, targetDate] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| converse | No | ||
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| targetDate | Yes | ||
| targetTime | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| targetTzOffset | No | ||
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| orb | No | |
| hits | No | |
| count | No | |
| source | No | |
| targetDate | No | |
| methodology | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description usefully adds the cost (10 credits, Tier 1) and the concrete HTTP endpoint, which are beyond the annotations. It says nothing about date-range span behavior, output shape, or failure modes, so it adds only modest context on top of the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in one line, followed by a scannable bracketed metadata block with no filler. Every line conveys something (group, endpoint, required inputs, cost). It is efficiently sized for a metadata-stub style description, though the block format substitutes for real explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 20-parameter tool with only 25% schema coverage, the description leaves most configuration semantics undocumented. An output schema exists, so return values need not be described, but the absence of usage context, sibling differentiation, and parameter meaning leaves real gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25% across 20 parameters, so the description carries a heavy burden. It merely re-lists the five required parameters already captured in the schema's required array, adding no meaning. It never explains the relationship between date/time and targetDate/targetTime, nor the roles of the enums (zodiacType, houseSystem, ayanamsa) or dial-specific flags.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line states a specific verb+resource+method: transits computed against natal midpoints on a 90° dial. That distinguishes it reasonably well from cosmobiology siblings like dial_90, midpoint_pictures, and witte_formulas. However, it never explicitly names those siblings or contrasts its output with them, so an agent still has to infer the boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no alternatives. It notes only required params and cost, which are selection-relevant but not usage-directional. An agent cannot tell from this text when transit-midpoints is preferred over transit_calendar or dial_90.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_uranian_tnpsUranian TNPsCRead-onlyIdempotentInspect
8 Hamburg trans-Neptunian bodies.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/uranian-tnps] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| tnps | No | |
| count | No | |
| source | No | |
| methodology | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive behavior, so the safety profile is covered. The description usefully adds the endpoint, the 10-credit Tier 1 cost, and the required-field set, but says nothing about the response contents or precision/compact-mode behavior beyond what the schema carries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is compact and front-loads the one substantive phrase before the bracketed metadata. Each line carries information, though the result is so terse that brevity shades into under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with only 33% schema coverage, this is thin: the compact `fields`/`precision` options, sidereal vs tropical handling, and house system selection go unexplained. The output schema exists so return values need not be described, but the invocation surface is not covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, so the description must compensate for a large set of undocumented parameters (city, name, cosmogram, zodiacType, houseSystem, ayanamsaId). It only restates the four required fields already marked in the schema's required array, adding no meaning for the eleven others or for the ayanamsa/ayanamsaId duality.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase "8 Hamburg trans-Neptunian bodies" names a specific resource, so the agent knows this is the Hamburg School TNP set rather than one of the sibling tools' outputs. But there is no verb (compute? list? ephemeris?) and nothing that distinguishes it from neighbours like astroway_cosmobiology_witte_formulas or lefeldt_extensions, leaving the purpose only implied.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage signals are the "[Required: date, time, latitude, longitude]" and cost lines, which are constraints rather than guidance. It never says when to choose this over the other cosmobiology endpoints or what input conditions it expects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cosmobiology_witte_formulasWitte FormulasCRead-onlyIdempotentInspect
Witte planetary pictures A+B−C=D.
[Group: Cosmobiology / Hamburg School] [Endpoint: POST /v1/cosmobiology/witte-formulas] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| withTnp | No | ||
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| orb | No | |
| count | No | |
| source | No | |
| notation | No | |
| pictures | No | |
| methodology | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful operational context the annotations do not carry: the POST endpoint and the cost of 10 credits (Tier 1). It says nothing about response shape or any prerequisite beyond the four required fields, but with annotations doing the safety work a 3 is warranted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The bracket format is tidy and front-loads the formula, group, endpoint, requirements and cost with zero filler. However the lead line is cryptic notation rather than an informative opening, and the brevity reflects under-specification rather than disciplined conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, but the description still falls short for a 16-parameter cosmobiology computation. It gives no definition of what a Witte planetary picture is, no default assumptions (e.g. which zodiac or house system applies, forcing reliance on schema defaults like houseSystem=P), and no disambiguation from the many sibling tools, leaving an agent unable to call it confidently beyond the four required fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 31% across 16 parameters, so the description is expected to compensate and does not. It merely repeats the four required fields that are already declared in the schema; undocumented parameters such as withTnp, cosmogram, zodiacType and houseSystem receive no explanation here, and the Witte-specific options are not tied to the A+B−C=D formula.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the resource (Witte planetary pictures) and gives the formula pattern A+B−C=D, but never states what the tool actually produces (planetary picture list? sum/difference axes?). It is a domain label rather than a verb+resource statement, and it does nothing to separate itself from close siblings like astroway_cosmobiology_midpoint_pictures or astroway_cosmobiology_cosmogram.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance at all. With eight sibling cosmobiology tools in the same group (midpoint_pictures, dial_90, sensitive_points, lefeldt_extensions), an agent has no textual basis for choosing this one over an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_cost_estimateCost EstimateARead-onlyIdempotentInspect
Estimate the credit cost of one or more endpoints WITHOUT invoking them. Returns total + per-endpoint breakdown with tier annotations. Useful when planning multi-step workflows: estimate first, ask user confirmation, then invoke. Cache TTL 5 min.
| Name | Required | Description | Default |
|---|---|---|---|
| endpoints | Yes | Endpoint paths to estimate, e.g. ["/chart", "/synastry", "/reports/natal"]. Leading slash optional. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety bar is low; the description still adds real value by clarifying that endpoints are NOT invoked and that results are cached with a 5-minute TTL. It also discloses the return shape (total + per-endpoint breakdown with tier annotations), which is meaningful since no output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, front-loaded with the core capability and the non-invocation guarantee, followed by workflow guidance and the cache note. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema, the description explains the return value, and the invocation-free and cache behaviors are covered. For a one-parameter, read-only estimator this is fully sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single 'endpoints' parameter is fully documented with examples and the leading-slash rule in the schema. The description only restates 'one or more endpoints' without adding format or constraint detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Estimate the credit cost of one or more endpoints') and immediately pins the scope with 'WITHOUT invoking them', which no sibling tool does. An agent can distinguish this from the many invocation/report siblings at a glance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit workflow guidance: 'estimate first, ask user confirmation, then invoke' for multi-step planning. This is clear when-to-use context, though it names no alternative tool or when-not-to-use condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_evolutionary_nodal_axis_detailNodal Axis DetailCRead-onlyIdempotentInspect
Full NN/SN with rulers + conjuncts.
[Group: Evolutionary Astrology] [Endpoint: POST /v1/evolutionary/nodal-axis-detail] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| northNode | No | |
| southNode | No | |
| disclaimer | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful operational facts (POST endpoint, 10-credit Tier 1 cost), but says nothing about what 'detail' contains or whether auth is required. With annotations carrying the safety burden, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single-sentence body is terse to the point of under-specification rather than concision. The bracketed metadata blocks are front-loaded and scannable, but the machine-style tags consume most of the definition's length without adding explanatory value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described, but for a 15-parameter endpoint with 33% schema coverage and no usage guidance the description is far too thin. An agent lacks enough to select this tool confidently or fill in the undocumented parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description must compensate and does not. Its '[Required: date, time, latitude, longitude]' simply restates the schema's required list, leaving city, name, cosmogram, zodiacType, houseSystem and ayanamsaId unexplained in either place.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'Full NN/SN with rulers + conjuncts' identifies a specific resource (nodal axis detail) but relies on unexplained abbreviations NN/SN and never uses a verb. It does not differentiate this tool from the other evolutionary-astrology siblings (pluto_natal_condition, skipped_steps, soul_types, yesterday_sky), so an agent must infer which one to pick from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no named alternative. The bracketed metadata states required parameters and cost but gives no context for choosing this over sibling tools such as astroway_evolutionary_pluto_natal_condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_evolutionary_pluto_natal_conditionPluto Natal ConditionCRead-onlyIdempotentInspect
JWG: Pluto sign+house+ruler+hard aspects.
[Group: Evolutionary Astrology] [Endpoint: POST /v1/evolutionary/pluto-natal-condition] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| pluto | No | |
| ruler | No | |
| source | No | |
| doctrine | No | |
| disclaimer | No | |
| hardAspects | No | |
| pastLifeSignificance | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety and mutability are covered. The description adds genuinely useful non-schema facts: the endpoint, the group, and a 10-credit Tier 1 cost, which matters for call budgeting. It stops there, disclosing nothing about computation latency or output size.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the content list, and uses bracketed metadata lines that are easy to scan. No sentence is padded, though the opaque 'JWG' prefix spends characters without informing the agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return structure need not be explained, and the annotation set covers the safety profile. What is missing is the interpretive context a 10-credit specialized astrology call warrants: what 'ruler' and 'hard aspects' resolve to, and how this differs from the other evolutionary endpoints. Adequate but thin for a 15-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 15 parameters and only 33% schema description coverage, the description must compensate, and it does not. Its [Required: date, time, latitude, longitude] line merely restates the schema's required array and adds no format, unit, or default guidance. Cryptic inputs like the single-letter houseSystem codes and the bare cosmogram boolean are left entirely undocumented by both the description and the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The string "Pluto sign+house+ruler+hard aspects" does name the resource and the four outputs produced, so the agent can infer this computes a natal Pluto condition. But there is no verb, and the leading "JWG" is unexplained jargon that carries no meaning for an agent unfamiliar with Jeffrey Wolf Green's school. Differentiation from evolutionary siblings (nodal_axis_detail, skipped_steps, soul_types) is only implicit via the word 'Pluto'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use, when-not-to-use, or alternative-tool guidance. Nothing tells the agent whether this Pluto condition should be requested alone or alongside the nodal axis / skipped steps calls in the same Evolutionary Astrology group. Only the group tag hints at context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_evolutionary_skipped_stepsSkipped StepsCRead-onlyIdempotentInspect
Planets squaring nodal axis = unfinished karma.
[Group: Evolutionary Astrology] [Endpoint: POST /v1/evolutionary/skipped-steps] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| source | No | |
| doctrine | No | |
| nodalAxis | No | |
| disclaimer | No | |
| skippedSteps | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description's job is to add operational context - and it does, disclosing the cost (10 credits, Tier 1), the HTTP endpoint and the required inputs. It stops short of describing rate limits, auth requirements or the shape of the result, hence not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely compact and front-loaded: the definitional line comes first, then grouped metadata. No filler sentences, though the bracketed boilerplate ('[Group: ...]') is administrative scaffolding rather than task-relevant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with 33% schema coverage, the description omits the sidereal/tropical choice, house system, ayanamsa defaults and the compact-mode fields/precision options that materially change output. The existence of an output schema excuses it from explaining return values, but not from covering the invocation surface.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only 4 of 15 parameters are echoed as 'required' and schema description coverage is 33%; the description adds no meaning for ayanamsa, zodiacType, houseSystem, precision, fields or timezone beyond what the schema already says. For a low-coverage schema the description should compensate, and it does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the astrological rule the tool encodes ('Planets squaring nodal axis = unfinished karma') and the bracketed metadata supplies the endpoint (POST /v1/evolutionary/skipped-steps), so the domain purpose is inferable. However, it never says what the tool actually computes or returns, and it draws no line between itself and close siblings like astroway_evolutionary_nodal_axis_detail or astroway_evolutionary_pluto_natal_condition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of alternative evolutionary tools. The only routing signal is the required-parameter list, which tells the agent how to call it but not when it is the right choice over the four other evolutionary-astrology siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_evolutionary_soul_typesSoul TypesCRead-onlyIdempotentInspect
JWG's 4-type by Pluto house quadrant.
[Group: Evolutionary Astrology] [Endpoint: POST /v1/evolutionary/soul-types] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| type | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description usefully adds the cost (10 credits, Tier 1) and the endpoint, which are real behavioral facts not present in structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is compact and front-loads the method description ahead of the metadata block. It is arguably under-specified rather than verbose, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 15-parameter tool with low schema coverage and many sibling tools, this is too thin. The output schema exists so return values need not be explained, but method interpretation and parameter guidance are both absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description would need to compensate. Instead it merely repeats the four required fields already listed in the schema's required array (date, time, latitude, longitude) and says nothing about the 11 optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The phrase 'JWG's 4-type by Pluto house quadrant' does identify the computed output and the technique's origin, so an expert can infer what the tool returns. However, it uses unexplained jargon and gives no differentiation from closely related siblings such as astroway_evolutionary_pluto_natal_condition or astroway_evolutionary_nodal_axis_detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to choose this tool over its evolutionary-astrology siblings or what question it answers. The only operational context given is required parameters and cost, which is not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_evolutionary_yesterday_skyYesterday's SkyCRead-onlyIdempotentInspect
Forrest 2008 past-life method.
[Group: Evolutionary Astrology] [Endpoint: POST /v1/evolutionary/yesterday-sky] [Required: date, time, latitude, longitude] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | No | |
| doctrine | No | |
| narrative | No | |
| disclaimer | No | |
| pastLifeImprint | No | |
| luminaryContacts | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is covered. The description adds genuinely useful non-schema behavior: the endpoint path and a concrete credit cost (10 credits, Tier 1), which an agent needs to budget against astroway_cost_estimate. It does not describe what the method produces, but with annotations carrying the safety burden a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short and the method name is front-loaded, with bracketed metadata that is scannable. But it is essentially a metadata tag block rather than a description, so conciseness here reflects absence of content rather than disciplined editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values needn't be restated, and annotations cover safety. Still, a 15-parameter, 33%-documented tool with only a bare method name and cost is under-specified: an agent cannot tell what the past-life method yields or how it differs from evolutionary siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% across 15 parameters, so the description is expected to compensate and does not. It merely repeats the four required fields (date, time, latitude, longitude) already listed in the schema, adding no format, default, or interaction guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific methodology ("Forrest 2008 past-life method") and tags the group "Evolutionary Astrology", which helps distinguish it from the prognostics/cosmobiology siblings. However, it never states what the tool actually computes or returns for the user, so the purpose stays vague to anyone who doesn't already know the Forrest terminology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no conditions, and no naming of alternative siblings such as astroway_evolutionary_nodal_axis_detail or astroway_evolutionary_soul_types. The metadata block conveys required inputs and cost but nothing about selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_agent_debateMCP Agent DebateCRead-onlyIdempotentInspect
2 personas debate a topic, multi-round transcript.
[Group: MCP Advanced] [Endpoint: POST /v1/mcp/agent-debate] [Required: topic, agentA, agentB] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| topic | Yes | ||
| agentA | Yes | ||
| agentB | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| rounds | No | ||
| language | No | en | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| transcript | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered. The description adds genuinely useful operational context — cost (100 credits, Tier 4), the required-parameter set, and the endpoint. It stays silent on runtime behavior an agent might care about, such as whether the multi-round debate is long-running, streamed, or bounded in output size. The POST endpoint is not a contradiction of readOnlyHint, but it is worth noting.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Tight and well front-loaded: the core operation comes first, then compact bracketed metadata. Every line carries information (endpoint, required fields, cost) rather than filler. Its brevity is a virtue, though it edges into under-specification.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. But for an 8-parameter tool with a nested chart object, aless-than-40% coverage, and a cost of 100 credits, the description leaves critical gaps — most importantly the semantics of agentA/agentB and the effect of rounds/language.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38%, so the description carries a heavier burden, and it does not meet it. It restates the three required parameters that the schema already marks as required, but never explains what agentA/agentB actually are (persona strings? model IDs?) or what topic expects. Optional params like rounds, language, and fields get no mention.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb-and-resource phrasing: '2 personas debate a topic, multi-round transcript.' An agent can grasp the operation immediately. However it does not differentiate itself from close siblings such as astroway_mcp_multi_agent_coordinate, astroway_mcp_ai_chat, or astroway_mcp_ai_comparison_coach, which plausibly overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance and no named alternative. The bracketed metadata lists required fields and cost but never says when this debate tool is preferable to multi-agent coordination or AI chat. The [Group: MCP Advanced] tag is organizational, not decision-supporting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_agent_pool_statusMCP Agent Pool StatusCRead-onlyIdempotentInspect
8 personas with specialties.
[Group: MCP Advanced] [Endpoint: GET /v1/mcp/agent-pool-status] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| count | No | |
| personas | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint false, and openWorldHint false. The description adds useful behavioral context in the form of the cost (10 credits, Tier 1) and HTTP method (GET), but does not describe what the status output contains or any auth/rate-limit details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The text is short but poorly structured: a vague fragment followed by bracketed metadata lines. It is under-specified rather than concise, and the opening line does not front-load a clear purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although an output schema exists and annotations cover the safety profile, the description still leaves the agent without a clear statement of what the tool does or when to call it. For a status endpoint in a large sibling set, this is a significant omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the two optional parameters (fields, precision) are fully documented in the schema itself. The description adds no parameter meaning beyond the schema, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives only a fragment, '8 personas with specialties,' which hints at pool composition but never states that this tool returns agent pool status or what that status contains. It lacks a clear verb and resource, and does not distinguish itself from siblings like astroway_mcp_multi_agent_coordinate or astroway_agent_tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool, when not to use it, or which sibling tool is the alternative. The description contains only metadata tags, not usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_ai_chatChart-grounded AI chatARead-onlyInspect
Chat answered from the positions we computed for this birth moment, not from the model's memory of a sun sign. Carries up to 10 turns of history, replies in 21 languages, and takes four voices through persona. Send your own provider key and the turn costs 5 credits instead of the endpoint price.
[Group: AI & MCP] [Endpoint: POST /v1/ai/chat] [Required: message] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| history | No | ||
| message | Yes | ||
| persona | No | astrologer | |
| language | No | uk | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| model | No | |
| reply | No | |
| tokens | No | |
| persona | No | |
| language | No | |
| disclaimer | No | |
| duration_ms | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, non-destructive, open-world behavior, so the bar is lower; the description still adds real behavioral facts beyond them — a 10-turn history ceiling, 21 output languages, four selectable voices via persona, and a concrete pricing rule (5 credits with your own provider key vs. the endpoint price). It stops short of stating auth requirements or what happens when the history limit is exceeded. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: the differentiator first, capabilities second, pricing last, followed by a compact metadata block (group, endpoint, required param, tier cost). Every clause carries new information and nothing is repeated from the schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present the description needn't explain return values, and annotations cover the safety profile, so what remains — what the tool is for, its capability envelope, and its cost model — is covered. The main gap is that nothing tells an agent when this endpoint should be picked over the other AI/agent siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Top-level schema description coverage is only 43% (chart, fields and precision documented; message, persona, language and history not), so the description must compensate and partially does — it explains persona (four voices), history (~10 turns) and language (21 options). It says nothing about chart, fields compact-mode paths, or precision, though the nested chart schema does carry unusually rich self-documentation for those.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — an AI chat answered from computed natal-chart positions rather than the model's prior knowledge of a sun sign — and quantifies scope (10 turns, 21 languages, 4 personas). It clearly implies a different product from sibling AI utilities such as astroway_mcp_ai_explain_aspect or astroway_mcp_ai_comparison_coach, but never names them, so the differentiation is by tone rather than explicit contrast.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied rather than stated: the credit-price note ('send your own provider key and the turn costs 5 credits instead of the endpoint price') hints this is a paid, higher-tier call, and 'chart-grounded' hints the input needs birth data. There is no explicit when-to-use-it, when-not-to, or routing rule against the other chat/agent endpoints in the sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_ai_comparison_coachComparison CoachBRead-onlyInspect
Coach two charts on relationship dynamics.
[Group: AI & MCP] [Endpoint: POST /v1/ai/comparison-coach] [Required: chart1, chart2, question] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart1 | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| chart2 | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | uk | |
| question | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| coaching | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true and idempotentHint=false, so the safety profile is covered. The description adds genuinely useful operational context (the 100-credit Tier 4 cost and the POST endpoint), but says nothing about the fact that an LLM-backed coach may return non-deterministic prose, what latency to expect, or what deprecates the idempotentHint=false signal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The four lines are tight and the purpose sentence is front-loaded ahead of the bracketed metadata block. Nothing is padded, though the metadata lines are boilerplate rather than definitional content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the cost/endpoint block is present. But for a six-parameter AI tool embedded among dozens of similar compatibility siblings, the description lacks any hint of what the coaching output contains or what makes a good 'question', leaving the agent to guess at scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% and the nested chart objects carry extensive inline documentation (formats, rejected short names, timezone semantics, houseSystem letters), so the schema does the heavy lifting. The description only restates the required parameters (chart1, chart2, question), adding no meaning for question, language, fields or precision. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb (coach), the resources (two charts) and the domain (relationship dynamics), so the agent knows this produces interpretive guidance rather than raw chart data. It does not, however, distinguish itself from the many sibling compatibility tools (ashtakoot, dashakoota, compatibility_full) or from astroway_mcp_ai_chat, so sibling differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, and no alternative is named. A reader cannot tell whether to reach for this AI coach versus the deterministic Vedic compatibility endpoints or multi_chart_context. The only constraints given are required parameters and cost, which are not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_ai_explain_aspectExplain AspectBRead-onlyInspect
Detailed explanation of an aspect between two planets.
[Group: AI & MCP] [Endpoint: POST /v1/ai/explain-aspect] [Required: planet1, planet2, aspectType] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| planet1 | Yes | ||
| planet2 | Yes | ||
| language | No | uk | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| aspectType | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| explanation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true and idempotentHint=false, so the safety profile is covered without the description. The description does add genuinely useful operational context not present in the annotations: the credit cost (100 credits, Tier 4) and the endpoint. However it never explains why a read-only operation is flagged non-idempotent (repeated calls likely yield differently worded narrative), which is the one behavioral trait an agent would most want here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose sentence is front-loaded and the payload is small. The '[Required: planet1, planet2, aspectType]' line duplicates the schema's required array, but the cost and endpoint lines justify their space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. But for a 7-parameter tool with a nested chart object and LLM-backed generation, the description omits the valid domain for planet1/planet2, any usage guidance versus explain_transit, and any hint about generation latency or variable output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists the three required parameters, but schema coverage is only 43% and planet1/planet2 carry no description, no enum and no example anywhere in the schema, so the agent must guess the accepted form (planet names such as 'Mars'?). The description does not compensate for that gap, which is the weakest part of the definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource: 'explanation of an aspect between two planets.' An agent can tell it apart from the sibling astroway_mcp_ai_explain_transit by the resource alone, but the description never makes that contrast explicit nor states what kind of explanation is produced.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of the sibling explain_transit as an alternative. The only contextual cues are bracketed metadata (endpoint, required fields, credit cost), which tell the agent what it costs but not when it should be chosen.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_ai_explain_transitExplain TransitBRead-onlyInspect
Explain a current transit hitting your natal chart.
[Group: AI & MCP] [Endpoint: POST /v1/ai/explain-transit] [Required: chart, transitDate, transitPlanet, natalPlanet, aspectType] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | uk | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| aspectType | Yes | ||
| natalPlanet | Yes | ||
| transitDate | Yes | ||
| transitPlanet | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| explanation | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The description usefully adds the cost (100 credits, Tier 4) and the endpoint, which annotations do not provide. It does not explain why idempotentHint is false for a read-only call, nor what the AI explanation entails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loads the purpose before the bracketed metadata. The bracketed group/endpoint/required/cost lines are slightly noisy but each carries compact information, so there is little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be described. But for a 5-required-parameter tool with a near-twin sibling, the description omits the disambiguation, parameter usage, and cost implications an agent needs before committing. It is minimally adequate rather than complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38%, so the description should compensate, but it merely restates the five required parameter names that the schema already marks required and says nothing about what transitPlanet, natalPlanet, aspectType accept or how the optional fields/precision/language parameters behave. It adds no meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Explain a current transit hitting your natal chart.' An agent can grasp the purpose immediately. However, it never distinguishes itself from the close sibling astroway_mcp_ai_explain_aspect, leaving the borderline case ambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no exclusions, and no comparison to the near-identical sibling astroway_mcp_ai_explain_aspect. The '[Required: ...]' and '[Cost: ...]' lines are metadata, not routing guidance. The agent gets no help deciding between this and other AI tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_multi_agent_coordinateMCP Multi-Agent CoordinateCRead-onlyIdempotentInspect
Run N personas in parallel + LLM synthesis.
[Group: MCP Advanced] [Endpoint: POST /v1/mcp/multi-agent-coordinate] [Required: question, agents] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| agents | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | en | |
| question | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| synthesis | No | |
| individual | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so safety is covered structurally. The description usefully adds the cost (100 credits, Tier 4) and the endpoint/group, but says nothing about latency, response shape of the synthesis, or how many personas are permitted (schema caps at 4).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the operative sentence, followed by compact bracketed metadata; there is no filler prose. The brevity is close to under-specification rather than pure conciseness, keeping it out of the top band.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need not be described, and cost is disclosed. However, for a tool whose whole contract is choosing personas and a question, the description never explains what the agents array should contain, leaving the most decision-relevant input undocumented across both description and schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% and the description adds no meaning beyond listing the two required names. Critically, the 'agents' array is the defining parameter and neither the schema nor the description explains what identifiers it accepts, and 'question' semantics are equally unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Run), resource (N personas) and mechanism (parallel + LLM synthesis), which is more informative than a tautology. It does not name or distinguish itself from the obvious sibling astroway_mcp_agent_debate, so the agent must infer the difference between coordinated parallel personas and a debate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no alternatives are named despite several closely related siblings (agent_debate, multi_chart_context, ai_chat). The '[Required: question, agents]' line just restates the schema's required array rather than telling the agent when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_multi_chart_contextMCP Multi-Chart ContextCRead-onlyInspect
Compact context for MCP agents working across multiple charts.
[Group: AI & MCP] [Endpoint: POST /v1/mcp/multi-chart-context] [Required: charts] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| charts | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| intent | No | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| intent | No | |
| summaries | No | |
| chartCount | No | |
| contextHash | No | |
| summaryString | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so safety is covered. The description adds genuinely useful non-annotation behavior: a 10-credit (Tier 1) cost and the POST endpoint. It says nothing about what the operation returns or how it behaves across the 1-6 chart array, so it earns only partial credit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is short and front-loads the one-sentence purpose, with well-organized bracketed metadata. But that metadata is machine-oriented boilerplate (group/endpoint/required) and the prose line is largely redundant with the title, so the brevity reflects under-specification as much as discipline.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, but for a tool taking up to six nested chart objects with four intent modes and compact-mode fields/precision, the description is far too thin. It gives an agent no way to know what a "compatibility" vs "forecast" run produces or why to pick it over the many neighbouring multi-chart tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter content is "[Required: charts]", which merely repeats the schema's required array, adding zero meaning. The description says nothing about `fields`, `precision`, or the four `intent` modes — the latter has no schema description at all despite being the main selector. At 50% schema coverage this is a real gap it fails to fill.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Compact context for MCP agents working across multiple charts" largely restates the name/title (multi-chart context) without naming an action or an output. The word "context" is undefined — it never says whether this computes cross-chart aspects, comparison summaries, or group forecasts. Only the bare notion "multiple charts" distinguishes it from the many single-chart siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all: no trigger conditions, no prerequisites, and no routing against the large sibling set (e.g. astroway_mcp_multi_agent_coordinate or astroway_mcp_ai_comparison_coach). The `intent` enum (compatibility/family/group/forecast) suggests several distinct use cases, but the description never explains when to choose which.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_rag_searchMCP RAG SearchCRead-onlyIdempotentInspect
Keyword-tag scoring over chart chunks.
[Group: MCP Advanced] [Endpoint: POST /v1/mcp/rag-search] [Required: query, chart] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| topK | No | ||
| chart | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| query | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | No | |
| total | No | |
| tokens | No | |
| matches | No | |
| results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds genuinely useful context the annotations do not: the endpoint, the 10-credit Tier 1 cost, and the group. It does not disclose result ordering, chunk granularity, or hit limits, so it stops short of rich behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short, front-loaded lines with no prose padding; the core purpose statement leads. The "Required" line is redundant with the schema, which is the only real waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool taking a deeply nested chart object plus three tuning parameters, the description is thin: no sense of ranking/scoring semantics, no indication of what the chunks are drawn from, and no guidance on choosing topK. An output schema exists so return format need not be explained, but the retrieval behavior itself is left entirely to inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is a middling 60%. The description adds no parameter meaning at all — it only echoes the two required names already enforced by the schema — and says nothing about topK's default/range, the fields compact projection, or precision, the parameter most likely to be misused.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names the mechanism (keyword-tag scoring) and the corpus (chart chunks), which goes beyond simply restating the tool name. However, it never says what the tool returns or what a "chunk" is, so an agent cannot tell whether this is a document retriever over interpretive text or a query over computed chart data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage-adjacent line is "[Required: query, chart]", which merely restates the schema's required list. There is no statement of when to reach for this tool rather than a direct retrieval sibling (e.g. astroway_mcp_multi_chart_context), and no prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_streamingMCP Streaming ChatBRead-onlyInspect
Server-Sent Events streaming chat completion with optional chart context.
[Group: AI & MCP] [Endpoint: POST /v1/mcp/streaming] [Required: message] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| chart | No | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| message | Yes | ||
| language | No | uk | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is covered. The description adds genuinely non-derivable behavior: the response is delivered as an SSE stream rather than one payload, crediting at 100 credits (Tier 4), and the concrete endpoint. It omits auth requirements and why idempotentHint=false, which keeps it out of 5 territory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Short and front-loaded: the core capability leads, with bracketed metadata (group, endpoint, required param, cost) following compactly. Every line carries information, though the template-style [Group:]/[Endpoint:] format is more machine header than prose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a streaming tool with no output schema and a nested chart parameter, the definition covers the essential facts (SSE transport, required message, optional chart, cost). It does not describe what the stream emits or how chart context influences the completion, leaving gaps an agent would notice mid-invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 60%, with the nested chart object heavily documented in the schema itself (timezone, houseSystem letters, lat/lon full names, ayanamsa). The description adds only 'optional chart context', which restates the schema's required list. Baseline 3 is appropriate when the schema does most of the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource+mechanism: 'Server-Sent Events streaming chat completion with optional chart context.' An agent can tell this is a streaming chat tool rather than a static computation. It does not explicitly name or contrast with the closest sibling astroway_mcp_ai_chat, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance. Nothing tells the agent to prefer this over astroway_mcp_ai_chat (non-streaming chat) or astroway_mcp_tool_call_stream; the streaming qualifier implies a context but the choice is left entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_tool_call_streamMCP Tool-Call StreamCRead-onlyIdempotentInspect
SSE-stream of a tool call envelope.
[Group: MCP Advanced] [Endpoint: POST /v1/mcp/tool-call-stream] [Required: tool] [Cost: 10 credits (Tier 1)]
| Name | Required | Description | Default |
|---|---|---|---|
| args | No | ||
| tool | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| language | No | en | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds two genuinely useful behavioral facts annotations cannot express: delivery is server-sent events rather than a single response, and the call costs 10 credits (Tier 1). It still omits stream termination, error-over-stream behavior, and whether partial results can be replayed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short and front-loaded: one sentence of purpose followed by structured metadata brackets. Nothing is wasted, though the single sentence is so compressed that the core mechanics of the tool are never actually spelled out.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with a nested free-form args object, a free-text tool selector, compact-mode options, and no output schema, this is under-specified. An agent cannot tell what the stream emits, how to consume it, or what valid values for tool are (presumably must match astroway_mcp_tools_list entries), all of which are load-bearing here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 40% across 5 parameters, and the description adds nothing beyond confirming that tool is required. args (arbitrary nested object forwarded to the target tool), language, and the compact-mode interplay of fields/precision are left entirely to the schema; the description should explain that args are passed through verbatim to the named tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"SSE-stream of a tool call envelope" names a delivery mechanism and an artifact, so the agent knows this is a streaming wrapper that executes a named tool. However, "tool call envelope" is opaque jargon and the definition never states the key fact that this proxies/executes another MCP tool by name, nor how it differs from the sibling astroway_mcp_streaming or astroway_mcp_tools_list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage cue is the bracketed "[Required: tool]" — there is no when-to-use, no when-not-to-use, and no routing to an alternative despite multiple plausible siblings (astroway_mcp_streaming, astroway_mcp_tools_list, astroway_agent_tools). The agent must guess whether streaming is preferred over a plain call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_mcp_tools_listMCP Tools ListCRead-onlyInspect
Auto-generated tool manifest for MCP clients (modelcontextprotocol/2025-03 spec).
[Group: AI & MCP] [Endpoint: GET /v1/mcp/tools-list] [Cost: see your plan — endpoint not in the public credit manifest]
| Name | Required | Description | Default |
|---|---|---|---|
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| spec | No | |
| notes | No | |
| tools | No | |
| server | No | |
| toolCount | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context the annotations do not: the concrete GET endpoint and a cost caveat that this scope is not in the public credit manifest. It does not explain response size or pagination for a manifest that presumably enumerates all tools.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single purpose sentence is front-loaded and the metadata tags are compact, but the bracketed group/endpoint/cost lines are boilerplate scaffolding rather than description content. Nothing is wasted, yet very little informational payload is delivered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return-value documentation is not required, but for a meta-tool that enumerates the entire tool surface, the description never explains the scenario in which an agent would reach for it instead of directly invoking a domain tool. Given the enormous sibling set, this leaves a real gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both `fields` and `precision` are already documented in the schema with examples and constraints. The description contributes no additional parameter meaning; the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Auto-generated tool manifest for MCP clients" largely restates the name 'MCP Tools List' without a distinct verb or an explanation of what the response actually contains. It gives an endpoint and spec version but no functional description that would distinguish its purpose from any other listing endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when an agent should call this tool, what problem it solves, or how it relates to the ~190 sibling tools. The only contextual cues are the bracketed [Group]/[Endpoint]/[Cost] metadata tags, which are not usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_firdariaFirdariaBRead-onlyIdempotentInspect
Calculate Firdaria planetary periods: the traditional Persian time-lord system based on sect and planet order.
[Group: Prognostics] [Endpoint: POST /v1/firdaria] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus the number of years of firdaria periods to return. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| periods | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered without the description. The description does add non-annotation context — the endpoint and a concrete billing cost (20 credits, Tier 2) — which is genuinely useful for an agent weighing call cost, but says nothing about determinism, limits, or output shape beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence states the action and the technique, followed by a compact metadata block for group, endpoint, and cost. Nothing is padded, though the sentence is more definitional than operational.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a full output schema, 100% parameter description coverage, and complete annotations, the description only needs to frame the operation, which it does. The gaps are minor — no note on the default period span or how sect is derived — and largely inferable from the schema's maxYears field.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already carries the parameter semantics, including the nested birth-data requirements and the timezone/timezoneOffset interplay. The description adds nothing about maxYears, fields, or precision, so it sits at the baseline of 3 when structured data does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and a precise resource (Firdaria planetary periods), then adds the domain gloss 'traditional Persian time-lord system based on sect and planet order', which tells an agent what class of technique this is. It does not name or contrast any sibling prognostic tool, so an agent must rely on the technique name alone to distinguish it from profections, progressions, or returns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of the many sibling prognostic endpoints (profections, primary directions, solar return, etc.). The only implicit cue is the technique name itself, which leaves routing between prognostics tools entirely to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_forecast_calendarForecast CalendarBRead-onlyIdempotentInspect
Generate a combined forecast calendar including transits, lunar phases, ingresses, and retrograde stations for a given period.
[Group: Prognostics] [Endpoint: POST /v1/forecast-calendar] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Wrapper { natal: ChartInput } used by endpoints that take a base natal plus extra parameters in flat fields. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| year | No | |
| cells | No | |
| maxAbsTotal | No | |
| dailySummary | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description's only extra behavioral fact is the cost line ('100 credits (Tier 4)'), which is genuinely useful for planning but is not expanded (no mention of what the cost scales with, e.g. period length).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence with the resource and its contents front-loaded, followed by three short bracketed metadata lines that carry real signal (group, endpoint, cost). No filler, though the endpoint/cost lines are boilerplate that could be trimmed or merged.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the input schema is fully described. Still missing: how the natal chart is used to produce the calendar (transits to natal vs general sky events?), what the temporal granularity of the output is, and the year-vs-period mismatch against the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the natal chart fields, timezone rules, compact-mode 'fields' and 'precision' are all already documented in the schema; baseline is 3. The description adds nothing parameter-specific and its phrase 'for a given period' is actually looser than the schema, which takes a single integer 'year'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Generate) and resource (forecast calendar) and enumerates the four contents (transits, lunar phases, ingresses, retrograde stations), which lets an agent infer this is a superset of a plain transit calendar. However, it never names the sibling astroway_prognostics_transit_calendar, so the agent must infer the distinction rather than being told it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use / when-not-to-use guidance and no alternative is named, despite astroway_prognostics_transit_calendar sitting right next to it in the sibling list with an obviously overlapping purpose. 'For a given period' is also unhelpfully vague and does not match the schema's single required 'year' field.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_lunar_returnLunar ReturnBRead-onlyIdempotentInspect
Find the next date when the Moon returns to its natal longitude. Returns full lunar return chart.
[Group: Prognostics] [Endpoint: POST /v1/lunar-return] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| antiscia | No | |
| julianDay | No | |
| returnMoment | No | |
| siderealTime | No | |
| antisciaAspects | No | |
| parallelAspects | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is covered. The description adds genuinely useful non-schema context — the cost tier (50 credits, Tier 3) and the endpoint — but says nothing about auth requirements, rate limits, or how far ahead the 'next' return is searched.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences plus tagged metadata lines; the core purpose is front-loaded and nothing is padded. The bracketed Group/Endpoint/Cost lines are terse and scannable rather than verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained, and the input schema is thoroughly self-documenting. Purpose, cost, and endpoint are present; only sibling differentiation is missing, which is minor given this coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested body schema documents timezone, timezoneOffset, houseSystem, and coordinate conventions in depth. The description adds nothing about parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: finds the next date the Moon returns to its natal longitude and returns the full lunar return chart. This clearly distinguishes it from non-return tools, though it never names its closest siblings (solar_return, planetary_return) to make the boundary explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, prerequisites, or alternatives. In a prognostics family containing solar_return, planetary_return, transits, and progressions, an agent gets no signal about which return technique fits a given request.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_minor_progressionsMinor ProgressionsBRead-onlyIdempotentInspect
Calculate minor progressions (lunar month-for-a-year) to a target date. Supports converse direction.
[Group: Prognostics] [Endpoint: POST /v1/minor-progressions] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus a target date for time-based calculations: progressions, directions, profections, returns. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| antiscia | No | |
| julianDay | No | |
| siderealTime | No | |
| antisciaAspects | No | |
| parallelAspects | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds two genuinely useful behavioral facts beyond that: a 50-credit Tier 3 cost, which lets an agent budget calls, and support for the converse direction, which changes how results are interpreted. It does not describe output shape, but an output schema exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the technique definition, followed by compact group/endpoint/cost metadata. Nothing is wasted, though the bracketed metadata lines are structural boilerplate rather than prose that helps selection.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Parameters are fully documented in the schema and an output schema exists, so return values need no explanation. The remaining gap is purely usage-level: nothing tells the agent how this differs operationally from the other progression-style tools in the same family.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's 'to a target date' and 'converse direction' gesture at targetDate/targetTime/targetTzOffset and converse but add no syntax, format, or default information beyond what the schema already spells out in detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (minor progressions), and the parenthetical 'lunar month-for-a-year' defines the technique precisely enough to distinguish it conceptually. It never names the confusable siblings (progressions, tertiary_progressions), so an agent must infer which progression variant to pick from the name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Says 'to a target date', which implies a forecast-style use, but there is no when-to-use guidance, no prerequisites, and no routing against the several progression siblings (major progressions, tertiary progressions, symbolic directions). The agent gets the technique name and nothing about when this one is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_planetary_returnPlanetary ReturnBRead-onlyIdempotentInspect
Find all returns of any planet to its natal longitude within a given year. Returns full charts for each return.
[Group: Prognostics] [Endpoint: POST /v1/planetary-return] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| returns | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so the safety profile is covered. The description adds the useful detail that full charts come back per return and the cost tier (50 credits, Tier 3), but it does not say how many returns to expect or how they are ordered, which matters for fast-moving planets.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose and scope, followed by compact metadata for endpoint and cost. Every element earns its place; only the bracketed tags make it slightly denser than a pure prose statement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return-value explanation is unnecessary, and the description still notes that full charts are returned per event. With 100% schema coverage on a three-parameter tool, what remains missing is only usage routing, not invocation detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the body fields, fields and precision parameters are already documented in structured data. The description names a 'year' and implies a planet selector but adds no syntax or semantics beyond what the schema provides; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find all returns of any planet to its natal longitude within a given year') and pins the scope to a single year. 'Any planet' implicitly differentiates it from the solar_return and lunar_return siblings, but that differentiation is left for the agent to infer rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no prerequisites, and no mention of the alternatives (solar_return, lunar_return, transits) that a user with a planetary-return question might also reach for. The agent gets a definition but no routing logic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_primary_directionsPrimary DirectionsBRead-onlyIdempotentInspect
Calculate primary directions (Ptolemaic or Regiomontanus) up to a maximum age. Returns a timeline of directed aspect hits.
[Group: Prognostics] [Endpoint: POST /v1/primary-directions] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus the directional rate in degrees per year (Naibod 0.9856353 by default), the age to search to, and the aspect angles to test. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| directions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and openWorld=false, so the safety profile is covered. The description adds genuinely useful non-annotation context: the cost (50 credits, Tier 3), the endpoint, and the fact that output is 'a timeline of directed aspect hits'. It says nothing about rate limits, auth, or the effect of the key/rate choice on results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences plus bracketed metadata lines; the core purpose and the return shape are front-loaded with no filler. The group/endpoint/cost lines are functional rather than padding, though the endpoint adds little for an agent that already has the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is unnecessary, and the cost is disclosed. The main gap is disambiguation: in a Prognostics family with a dozen timing techniques, the description never tells an agent why primary directions rather than symbolic directions or progressions is the right call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested body schema fully documents date/time/latitude/longitude, timezone, houseSystem and the key/maxAge/aspectAngles group. The description only loosely maps to maxAge ('up to a maximum age'); it never explains the key parameter's degrees-per-year semantics. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource ('Calculate primary directions') and scopes it with the method variants (Ptolemaic/Regiomontanus) and the 'up to a maximum age' bound, which matches the maxAge parameter. It does not explicitly distinguish itself from close siblings like symbolic_directions or progressions, so an agent must still infer which direction technique fits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use primary directions versus the many other prognostic siblings (firdaria, profections, symbolic_directions, transits). No prerequisites, no exclusions, no named alternative — the agent gets no routing help in a crowded Prognostics family.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_profectionsProfectionsARead-onlyIdempotentInspect
Calculate annual profections: profected Ascendant, lord of the year, activated house, and monthly profection sub-rulers.
[Group: Prognostics] [Endpoint: POST /v1/profections] [Cost: 20 credits (Tier 2)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus a target date for time-based calculations: progressions, directions, profections, returns. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| mc | No | |
| age | No | |
| sun | No | |
| moon | No | |
| ascendant | No | |
| signIndex | No | |
| lordOfYear | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description's meaningful additions are the endpoint and the 20-credit Tier 2 cost, which is real behavioral context an agent should weigh before calling; however it says nothing about defaults, error conditions, or what the calculation assumes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence states purpose and return contents with no filler, followed by three compact metadata lines. Efficient, though the bracketed metadata block is formulaic rather than explanatory.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not explain return values, and the input schema is exhaustively documented for the natal-plus-target-date body. The one gap is that it doesn't confirm the natal-plus-targetDate input shape or mention the credit cost in the prose, but overall an agent has what it needs to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the birth-data body, fields, and precision parameters are already thoroughly documented in the schema, including the timezone/ayanamsa/houseSystem subtleties. The description adds no parameter-level meaning beyond that, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific technique (annual profections) with a precise verb and enumerates the exact artifacts returned: profected Ascendant, lord of the year, activated house, monthly sub-rulers. That level of output specificity separates it cleanly from siblings such as firdaria, progressions, and primary directions without needing to open any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: naming a distinct time-lord technique plus 'annual' signals this is the yearly profection tool, but the description never says when to choose it over astroway_prognostics_firdaria or the progression tools, nor does it state prerequisites such as needing natal birth data plus a target date. The Group/Endpoint/Cost metadata adds operational context but not selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_progressionsSecondary ProgressionsARead-onlyIdempotentInspect
Calculate secondary progressed chart (day-for-a-year) for a target date. Returns progressed planets, houses and angles, and the aspects between progressed planets.
[Group: Prognostics] [Endpoint: POST /v1/progressions] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus a target date for time-based calculations: progressions, directions, profections, returns. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| antiscia | No | |
| julianDay | No | |
| siderealTime | No | |
| antisciaAspects | No | |
| parallelAspects | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds genuine context beyond that: the day-for-a-year methodology, the response contents (planets, houses, angles, aspects), and the 50-credit Tier 3 cost, which is useful for budgeting calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences carry the core meaning, followed by short structured metadata lines (group, endpoint, cost). Nothing is padded, though the return-value sentence is partly redundant with the output schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and full schema coverage, the description need not document return shape or parameter syntax, and it doesn't. The one real gap is routing guidance versus sibling progression tools, which matters given a toolset full of them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the natal body, targetDate/targetTime/targetTzOffset, ayanamsa, houseSystem, and the compact fields/precision params in detail. The description adds nothing about parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (secondary progressed chart) with the day-for-a-year technique and target-date scope, so the agent knows exactly what comes back. It does not differentiate itself from the very similar siblings astroway_prognostics_minor_progressions and astroway_prognostics_tertiary_progressions, so an agent choosing among progression types gets no help distinguishing them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use secondary progressions versus the minor/tertiary progressions siblings, nor any alternative or exclusion guidance. The description simply says what the tool computes; the agent must infer selection from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_rectificationRectificationBRead-onlyIdempotentInspect
Rectify an approximate birth time using a list of life events and transit/direction hits to narrow the birth time window.
[Group: Prognostics] [Endpoint: POST /v1/rectification] [Required: baseInput, events] [Cost: 500 credits (Tier 6)] ⚠️ Heavy — confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| orb | No | ||
| events | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| methods | No | ||
| baseInput | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| stepMinutes | No | ||
| searchRangeMinutes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| candidates | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description goes beyond them with the credit cost (500 credits, Tier 6) and an explicit human-confirmation requirement, which is genuinely useful pre-invocation context not present in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is stated first in a single efficient sentence, with cost/required-parameter metadata bracketed below. The tag block is somewhat redundant scaffolding, but nothing is verbose or padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter, nested, heavy-cost tool, the description omits how the search window is controlled and how this differs from the rectification_trutine sibling. An output schema exists so return values need no explanation, but the invocation-shaping gaps remain significant.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 38% across 8 parameters, so the description carries a compensation burden it does not meet. It gestures at 'events' and 'transit/direction hits' but says nothing about the search-window controls (searchRangeMinutes, stepMinutes, orb, methods) that are central to narrowing a birth time.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb ('Rectify') plus resource ('approximate birth time') and the mechanism ('life events and transit/direction hits') make the operation unambiguous. However, it does not distinguish itself from the near-identical sibling astroway_prognostics_rectification_trutine, which an agent would need to choose between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the use case (you have an approximate birth time and known life events) and adds an explicit operational guard ('Heavy — confirm with user before invoking'). It never states when to prefer this over rectification_trutine or other prognostics tools, so routing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_rectification_trutineTrutine of HermesARead-onlyIdempotentInspect
Apply the Trutine of Hermes (Animodar) technique to derive the birth time from the Moon's prenatal syzygy position.
[Group: Prognostics] [Endpoint: POST /v1/rectification/trutine] [Required: date, time, latitude, longitude] [Cost: 250 credits (Tier 5)] ⚠️ Heavy — confirm with user before invoking.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | ||
| date | Yes | ||
| name | No | ||
| time | Yes | ||
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| ayanamsa | No | Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either. | |
| latitude | Yes | ||
| timezone | No | IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known. | |
| cosmogram | No | ||
| longitude | Yes | ||
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. | |
| ayanamsaId | No | ||
| zodiacType | No | ||
| houseSystem | No | P | |
| timezoneOffset | No | Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent. |
Output Schema
| Name | Required | Description |
|---|---|---|
| syzygyDate | No | |
| syzygyType | No | |
| moonAtSyzygy | No | |
| correctedTime | No | |
| correctedAscendant | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint/idempotentHint/destructiveHint already declared, the description's additional disclosure of the 250-credit tier and the explicit confirm-with-user instruction is genuinely useful behavioral context that annotations cannot carry. It stops short of describing runtime characteristics such as latency or failure modes, and does not contradict any annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence of real description followed by compact bracketed metadata; the technique and its mechanism are front-loaded. No filler sentences and every bracketed field (group, endpoint, required, cost) is actionable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists so return values need no explanation, and annotations cover the safety profile, leaving the cost/confirmation note and required-param list to round things out. It still leaves a gap on how the result relates to the caller's inputs — e.g., whether settings like zodiacType or ayanamsa change the derived time — which matters for a 15-parameter endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% across 15 parameters, so the description must compensate; it does so partially by naming the four required inputs (date, time, latitude, longitude). It adds nothing about the many optional knobs (fields, precision, zodiacType, houseSystem, timezone/offset, ayanamsa) that a caller of a rectification technique may need to set deliberately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (derive) and a specific resource (birth time) via a named technique, the Trutine of Hermes (Animodar), and explains the underlying mechanism (Moon's prenatal syzygy). It does not explicitly contrast itself with the closest sibling, astroway_prognostics_rectification, so an agent must infer the relationship from the technique name alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The '⚠️ Heavy — confirm with user before invoking' note plus the 250-credit cost gives real invocation guidance, and the required parameters are listed inline. However, there is no statement of when this technique is preferable to astroway_prognostics_rectification or the other prognostics tools, and no prerequisites (e.g., that a birth time is what is being solved for).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_solar_returnSolar ReturnBRead-onlyIdempotentInspect
Find the exact moment when the Sun returns to its natal longitude in a given year. Returns full solar return chart.
[Group: Prognostics] [Endpoint: POST /v1/solar-return] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| antiscia | No | |
| julianDay | No | |
| returnMoment | No | |
| siderealTime | No | |
| antisciaAspects | No | |
| parallelAspects | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely useful operational context beyond that: the endpoint (POST /v1/solar-return) and the cost (50 credits, Tier 3). It does not, however, describe return format or pagination, though an output schema exists to cover that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences state the operation and the output, followed by compact bracket metadata for group, endpoint, and cost. Nothing is padded; the only minor cost is that the bracketed tags are somewhat terse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a 100%-covered schema and an output schema present, the description need not restate parameters or return values. It covers purpose, endpoint, and cost, leaving only sibling routing (solar vs lunar vs planetary return) unaddressed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema itself documents date, time, coordinates, timezone, ayanamsa, houseSystem, year, and the compact-mode fields/precision parameters in depth. The description adds no parameter-level meaning beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource: 'Find the exact moment when the Sun returns to its natal longitude in a given year,' plus the deliverable ('full solar return chart'). The word 'Sun' implicitly separates it from sibling lunar_return and planetary_return, though it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance, no prerequisites, and no mention of how this differs from the closely-named siblings astroway_prognostics_lunar_return, astroway_prognostics_planetary_return, or astroway_prognostics_transits. The agent must infer selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_symbolic_directionsSymbolic DirectionsBRead-onlyIdempotentInspect
Calculate symbolic arc directions to natal points for a target date. Key: "one_degree" (default), "naibod", or "solar_arc" (the arc of the progressed Sun).
[Group: Prognostics] [Endpoint: POST /v1/symbolic-directions] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus a target date and the directional key: one degree per year, the Naibod rate, or the arc of the progressed Sun. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| arc | No | |
| key | No | |
| houses | No | |
| planets | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), so the description is not required to restate that. It does add genuinely useful context the annotations cannot convey: the endpoint (POST /v1/symbolic-directions) and the cost (50 credits, Tier 3). It says nothing about input validation failures, precision behavior, or limits beyond cost.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core behavior and the key options are front-loaded in two tight sentences, followed by a clean metadata block for group, endpoint and cost. Every sentence earns its place and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich nested input schema, an output schema, and full annotations, the description only needs to supply the domain semantics and cost, which it does. The one remaining gap is that it gives an agent no basis for choosing this tool over the neighbouring direction/progression tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema carries the parameter burden and the baseline is 3. The description names the three `key` options and marks 'one_degree' as the default, which the schema's enum does not state, but it otherwise repeats the schema's own body description of the directional keys. Net addition is modest.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Calculate symbolic arc directions to natal points') plus the target scope, which is far more than the title alone. It does not, however, distinguish itself from the many proximate siblings (primary_directions, progressions, minor_progressions, tertiary_progressions), so an agent must infer the difference from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance, and no reference to any alternative tool. The only routing signal is the phrase 'for a target date', which is a weak implication rather than an instruction. With this many prognostics siblings, explicit differentiation is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_tertiary_progressionsTertiary ProgressionsARead-onlyIdempotentInspect
Calculate tertiary progressions (day-for-a-lunar-month) to a target date. Supports converse direction.
[Group: Prognostics] [Endpoint: POST /v1/tertiary-progressions] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Natal chart plus a target date for time-based calculations: progressions, directions, profections, returns. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| antiscia | No | |
| julianDay | No | |
| siderealTime | No | |
| antisciaAspects | No | |
| parallelAspects | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this is a read-only, idempotent, non-destructive, closed-world call, so the safety profile is covered. The description adds genuinely non-redundant context: the converse-direction mode and, notably, the cost (50 credits, Tier 3) and endpoint, which matter for an agent budgeting calls. It stops short of describing output shape or pagination, but the output schema covers returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two front-loaded sentences state what it computes and the direction option, followed by compact bracketed metadata for group, endpoint and cost. No sentence is wasted, though the technique definition in parentheses could arguably be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and 100% parameter documentation, the description need not explain return values or input formats. It covers purpose, direction mode and cost, leaving only sibling differentiation and usage routing unaddressed for a tool family crowded with similar progression techniques.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters (including the richly documented body, fields and precision) are already fully specified structurally, and the baseline is 3. The description only incidentally touches the converse flag and adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Calculate) and resource (tertiary progressions) and even defines the technique's rate (day-for-a-lunar-month) and scope (to a target date). This distinguishes it from a generic 'progressions' tool, but it never names the closely related siblings (progressions, minor_progressions, symbolic_directions) that an agent must choose between.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage-relevant detail is 'to a target date' and 'supports converse direction'; there is no statement of when to pick tertiary progressions over secondary/minor progressions, primary directions, or profections, and no prerequisites or exclusions. An agent must infer the selection from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_transit_calendarTransit CalendarARead-onlyIdempotentInspect
List the exact moments of transit-to-natal aspects in a date range, one event per exact pass, so a retrograde triple pass gives three events.
[Group: Prognostics] [Endpoint: POST /v1/transit-calendar] [Cost: 100 credits (Tier 4)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Wrapper { natal: ChartInput } used by endpoints that take a base natal plus extra parameters in flat fields. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | No | |
| events | No | |
| maxOrb | No | |
| endDate | No | |
| startDate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, non-destructive and closed-world, so the safety profile is settled. The description adds two pieces of context beyond that - the 100-credit Tier 4 cost and the event-per-pass counting behavior - which is useful for planning a paid call, but it says nothing about auth, rate limits, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense sentence front-loads the purpose and the event-count semantics, followed by three compact metadata lines (group, endpoint, cost) that each carry distinct, useful information. Nothing is padded or repeated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The schema documents the natal chart requirements, aspect defaults, transit body defaults and the inert maxOrb in unusual depth, and an output schema exists so return values need no explanation here. For a tool whose per-parameter contracts are this thoroughly specified in structured fields, the description covers what it must.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is effectively 100%, and the nested natal/chart fields, aspectAngles, transitPlanetIds and maxOrb all carry their own detailed prose in the schema. The description only implies 'date range' filtering; it adds no syntax, defaults, or constraints beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource - listing exact transit-to-natal aspect moments within a date range - and the clause about 'one event per exact pass, so a retrograde triple pass gives three events' pins down the granularity of the output. This clearly separates it from a continuous transit-position tool in spirit, but it never names the close sibling astroway_prognostics_transits, leaving that disambiguation to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and no named alternative. It never says to prefer this over astroway_prognostics_transits or astroway_prognostics_forecast_calendar, nor when a calendar of exact hits rather than a positions listing is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
astroway_prognostics_transitsTransitsBRead-onlyIdempotentInspect
Calculate transit planet aspects to natal planets for a given date. Returns applying and separating aspects.
[Group: Prognostics] [Endpoint: POST /v1/transits] [Cost: 50 credits (Tier 3)]
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems. | |
| fields | No | Compact mode: comma-separated dotted paths to keep, relative to `data`, e.g. "planets.name,planets.longitude,houses.cusp". Omit for the whole response. | |
| precision | No | Compact mode: round fractional numbers to this many decimals. Longitudes carry 14 by default; 2 is finer than any chart is drawn. |
Output Schema
| Name | Required | Description |
|---|---|---|
| input | No | |
| houses | No | |
| aspects | No | |
| planets | No | |
| antiscia | No | |
| julianDay | No | |
| siderealTime | No | |
| antisciaAspects | No | |
| parallelAspects | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so the safety profile is covered. The description adds that it returns both applying and separating aspects and that a call costs 50 credits (Tier 3), which is genuine extra context. It does not disclose anything about precision of aspect orbs, output size, or what inputs are mandatory beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with the core action front-loaded, followed by the return content, then bracketed group/endpoint/cost metadata. Zero filler, though the bracket lines are metadata rather than description and could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists and the body schema is richly documented, so much of the burden is carried elsewhere. What remains missing is the routing information an agent needs among a dozen prognostics siblings and any note that full natal birth data plus a transit date are required. Adequate but with a clear gap at the decision level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested body schema is extensively documented, so the baseline is 3. The description adds nothing about the body, fields, or precision parameters; 'for a given date' gestures at transitDate but no syntax or constraint is added beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Calculate transit planet aspects to natal planets for a given date.' That is far more precise than a tautology. It stops short of differentiating from the sibling astroway_prognostics_transit_calendar, which an agent could easily confuse with this tool, so it is not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use or when-not-to-use guidance and no alternative is named, despite astroway_prognostics_transit_calendar and astroway_mcp_ai_explain_transit sitting in the same family. The only operational note is the cost line, which tells the agent the price but not when to choose this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
astroway_prognostics_transit_calendar1 field changed- changed
Input schema / properties / body / allOfPrevious value: -[ - { - "description": "Wrapper { natal: ChartInput } used by endpoints that take a base natal plus extra parameters in flat fields.", - "properties": { - "natal": { - "additionalProperties": { - "anyOf": [ - {}, - { - "type": "null" - } - ] - }, - "description": "Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as \"Placidus\" is refused, and the case matters because I and i are two different Sunshine systems.", - "properties": { - "ayanamsa": { - "description": "Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either.", - "enum": [ - "fagan-bradley", - "lahiri", - "de-luce", - "raman", - "krishnamurti", - "kp", - "yukteshwar", - "jn-bhasin", - "true-citra", - "djwhal-khul" - ], - "type": "string" - }, - "ayanamsaId": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "city": { - "default": "", - "type": "string" - }, - "cosmogram": { - "type": "boolean" - }, - "date": { - "pattern": "^\\d{4}-\\d{2}-\\d{2}$", - "type": "string" - }, - "houseSystem": { - "default": "P", - "enum": [ - "P", - "K", - "R", - "C", - "E", - "W", - "B", - "M", - "O", - "A", - "T", - "V", - "D", - "F", - "G", - "H", - "I", - "i", - "L", - "N", - "Q", - "S", - "U", - "X", - "Y" - ], - "type": "string" - }, - "latitude": { - "maximum": 90, - "minimum": -90, - "type": "number" - }, - "longitude": { - "maximum": 180, - "minimum": -180, - "type": "number" - }, - "name": { - "default": "", - "type": "string" - }, - "time": { - "pattern": "^\\d{2}:\\d{2}(:\\d{2})?$", - "type": "string" - }, - "timezone": { - "description": "IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.", - "type": "string" - }, - "timezoneOffset": { - "anyOf": [ - { - "maximum": 14, - "minimum": -14, - "type": "number" - }, - { - "type": "null" - } - ], - "default": 0, - "description": "Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent." - }, - "zodiacType": { - "enum": [ - "tropical", - "sidereal" - ], - "type": "string" - } - }, - "required": [ - "date", - "time", - "latitude", - "longitude" - ], - "type": "object" - } - }, - "required": [ - "natal" - ], - "type": "object" - }, - { - "properties": { - "aspectAngles": { - "items": { - "anyOf": [ - { - "maximum": 360, - "minimum": 0, - "type": "number" - }, - { - "type": "null" - } - ] - }, - "maxItems": 64, - "type": "array" - }, - "endDate": { - "pattern": "^\\d{4}-\\d{2}-\\d{2}$", - "type": "string" - }, - "maxOrb": { - "anyOf": [ - { - "type": "number" - }, - { - "type": "null" - } - ] - }, - "startDate": { - "pattern": "^\\d{4}-\\d{2}-\\d{2}$", - "type": "string" - }, - "transitPlanetIds": { - "items": { - "anyOf": [ - { - "maximum": 9007199254740991, - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ] - }, - "maxItems": 32, - "type": "array" - } - }, - "required": [ - "startDate", - "endDate" - ], - "type": "object" - } -]New value: +[ + { + "description": "Wrapper { natal: ChartInput } used by endpoints that take a base natal plus extra parameters in flat fields.", + "properties": { + "natal": { + "additionalProperties": { + "anyOf": [ + {}, + { + "type": "null" + } + ] + }, + "description": "Birth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as \"Placidus\" is refused, and the case matters because I and i are two different Sunshine systems.", + "properties": { + "ayanamsa": { + "description": "Sidereal school by name. Lahiri when omitted. Equivalent to ayanamsaId; send either.", + "enum": [ + "fagan-bradley", + "lahiri", + "de-luce", + "raman", + "krishnamurti", + "kp", + "yukteshwar", + "jn-bhasin", + "true-citra", + "djwhal-khul" + ], + "type": "string" + }, + "ayanamsaId": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ] + }, + "city": { + "default": "", + "type": "string" + }, + "cosmogram": { + "type": "boolean" + }, + "date": { + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" + }, + "houseSystem": { + "default": "P", + "enum": [ + "P", + "K", + "R", + "C", + "E", + "W", + "B", + "M", + "O", + "A", + "T", + "V", + "D", + "F", + "G", + "H", + "I", + "i", + "L", + "N", + "Q", + "S", + "U", + "X", + "Y" + ], + "type": "string" + }, + "latitude": { + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "longitude": { + "maximum": 180, + "minimum": -180, + "type": "number" + }, + "name": { + "default": "", + "type": "string" + }, + "time": { + "pattern": "^\\d{2}:\\d{2}(:\\d{2})?$", + "type": "string" + }, + "timezone": { + "description": "IANA zone name such as Europe/Kyiv, or auto to look the zone up from latitude and longitude. The server takes the offset that zone kept at this local date and time, summer time included, and uses it in place of timezoneOffset. A clock time that happened twice takes the first occurrence; one skipped when clocks went forward takes the offset from before the change. Abbreviations such as EST are refused. Before 1970 the tz database is not reliable for every place, so send timezoneOffset when the local clock is known.", + "type": "string" + }, + "timezoneOffset": { + "anyOf": [ + { + "maximum": 14, + "minimum": -14, + "type": "number" + }, + { + "type": "null" + } + ], + "default": 0, + "description": "Hours from UTC at the given moment, not minutes. Fractional zones are hours too: 5.5 for India, 5.75 for Nepal, -3.5 for Newfoundland. Defaults to 0, meaning UTC. Ignored when timezone is sent." + }, + "zodiacType": { + "enum": [ + "tropical", + "sidereal" + ], + "type": "string" + } + }, + "required": [ + "date", + "time", + "latitude", + "longitude" + ], + "type": "object" + } + }, + "required": [ + "natal" + ], + "type": "object" + }, + { + "properties": { + "aspectAngles": { + "description": "Subset of 0, 60, 90, 120, 180 (the default is all five). Other angles match nothing and answer 400.", + "items": { + "anyOf": [ + { + "maximum": 360, + "minimum": 0, + "type": "number" + }, + { + "type": "null" + } + ] + }, + "maxItems": 64, + "type": "array" + }, + "endDate": { + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" + }, + "maxOrb": { + "anyOf": [ + { + "type": "number" + }, + { + "type": "null" + } + ], + "description": "Accepted and echoed back, but it does not filter anything: every event is an exact hit, found by the sign change of the offset and refined by bisection, so its orb is 0. Must be in (0, 10] if sent." + }, + "startDate": { + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" + }, + "transitPlanetIds": { + "description": "Transiting bodies, ids 0 and 2-9 (Sun, Mercury to Pluto; the Moon is excluded). Default: all nine.", + "items": { + "anyOf": [ + { + "maximum": 9007199254740991, + "minimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ] + }, + "maxItems": 32, + "type": "array" + } + }, + "required": [ + "startDate", + "endDate" + ], + "type": "object" + } +]
45 tool updates
- First observed
astroway_account_status - First observed
astroway_agent_tools - First observed
astroway_cosmobiology_cosmogram - First observed
astroway_cosmobiology_dial_90 - First observed
astroway_cosmobiology_eight_harmonic_aspects - First observed
astroway_cosmobiology_lefeldt_extensions - First observed
astroway_cosmobiology_midpoint_pictures - First observed
astroway_cosmobiology_personal_point_tree - First observed
astroway_cosmobiology_sensitive_points - First observed
astroway_cosmobiology_transit_midpoints - First observed
astroway_cosmobiology_uranian_tnps - First observed
astroway_cosmobiology_witte_formulas - First observed
astroway_cost_estimate - First observed
astroway_evolutionary_nodal_axis_detail - First observed
astroway_evolutionary_pluto_natal_condition - First observed
astroway_evolutionary_skipped_steps - First observed
astroway_evolutionary_soul_types - First observed
astroway_evolutionary_yesterday_sky - First observed
astroway_mcp_agent_debate - First observed
astroway_mcp_agent_pool_status - First observed
astroway_mcp_ai_chat - First observed
astroway_mcp_ai_comparison_coach - First observed
astroway_mcp_ai_explain_aspect - First observed
astroway_mcp_ai_explain_transit - First observed
astroway_mcp_multi_agent_coordinate - First observed
astroway_mcp_multi_chart_context - First observed
astroway_mcp_rag_search - First observed
astroway_mcp_streaming - First observed
astroway_mcp_tool_call_stream - First observed
astroway_mcp_tools_list - First observed
astroway_prognostics_firdaria - First observed
astroway_prognostics_forecast_calendar - First observed
astroway_prognostics_lunar_return - First observed
astroway_prognostics_minor_progressions - First observed
astroway_prognostics_planetary_return - First observed
astroway_prognostics_primary_directions - First observed
astroway_prognostics_profections - First observed
astroway_prognostics_progressions - First observed
astroway_prognostics_rectification - First observed
astroway_prognostics_rectification_trutine - First observed
astroway_prognostics_solar_return - First observed
astroway_prognostics_symbolic_directions - First observed
astroway_prognostics_tertiary_progressions - First observed
astroway_prognostics_transit_calendar - First observed
astroway_prognostics_transits
Related MCP Connectors
Astrology charts and classical techniques: natal, transits, horary, primary directions
Real astrology for AI agents: cosmic weather, synastry, timing, astrocartography, and divination.
Sub-arcsecond astrology on NASA JPL DE440: natal, transits, Human Design, Vedic, BaZi.
Astrology transit forecasts, timelines and significant-date feeds for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceHigh-precision astrology tools for LLM agents, including natal charts, transits, progressions, synastry, and more, backed by Swiss Ephemeris.1MIT
- AlicenseAqualityAmaintenancePrecision-audited astrology MCP for natal charts, transits, synastry and moon phases. No API key.1034 npmMIT
- AlicenseNot gradedqualityDmaintenanceCalculates astrological birth charts including planetary positions, house placements, and aspects based on birth date, time, and location.802 npm1MIT
- FlicenseNot gradedqualityCmaintenanceMulti-tradition astrology engine that computes real birth charts, transits, and synastry for AI agents via MCP tools.11-
Glama MCP Gateway
Add one secure layer between your agents and this server.