Skip to main content
Glama
astroway

astroway-mcp

Official
by astroway

Generate Report: Unified Dispatcher (V2)

astroway_reports_generate

Generate any of 12 astrological report types — natal, synastry, yearly transit, tarot, Vedic kundli and more — from birth data and a report_type in a single call.

Instructions

Single endpoint over the 12 type-specific renderers: pass report_type ("natal" | "transit-yearly" | "synastry" | "business" | "career" | "love" | "money" | "child" | "lal-kitab" | "human-design" | "tarot" | "vedic-kundli") plus the renderer-specific inputs. SDK ergonomics: one method instead of 12. Required fields vary by type: chart for most, chart1+chart2 for synastry, seed for tarot (chart optional).

[Group: Reports] [Endpoint: POST /v1/reports/generate] [Required: report_type] [Cost: 10 credits (Tier 1)]

Input Schema

NameRequiredDescriptionDefault
nameNo
seedNo
yearNo
chartNoBirth data for a single natal chart. Required: date (YYYY-MM-DD), time (HH:mm:ss), latitude and longitude in decimal degrees. The short forms lat, lon, lng and tz are rejected with 400 INVALID_FIELD; pass the full names. timezoneOffset is hours from UTC and defaults to 0, meaning UTC; send timezone instead (an IANA name such as Europe/Kyiv, or auto) and the offset for that date is worked out, summer time included. city is a display label only: nothing here geocodes it, so it never stands in for coordinates. houseSystem is a single Swiss Ephemeris letter, P by default; a name such as "Placidus" is refused, and the case matters because I and i are two different Sunshine systems.
depthNo`extended` (10000 credits) adds the chart wheel and a chapter for each of Sun to Pluto, Chiron and the Ascendant in its sign, from edited texts with no AI at request time. Available in the 20 languages of `/v1/natal-texts`.
chart1NoBirth 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.
chart2NoBirth 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.
spreadNo
languageNo
whitelabelNo
report_typeYes
allowReversedNo

Output Schema

NameRequiredDescriptionDefault
urlNo
expires_atNo
page_countNo
byte_lengthNo
duration_msNo
storage_keyNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.6.0

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare non-read-only, non-idempotent, open-world, non-destructive behaviour, so the description's added value is the cost profile ('10 credits, Tier 1') and the per-type required-input variance — both real behavioural facts an agent needs. It does not, however, describe failure modes or what happens if the wrong input shape is sent for a given report_type.

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

Conciseness4/5

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

Front-loaded with the dispatch concept, then the type enum, then the required-field rules — a sensible order with no filler. The inline enum partially duplicates the schema's report_type enum, but it earns its place by anchoring the rest of the sentence.

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

Completeness3/5

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

An output schema exists, so return format needs no explanation, and cost plus endpoint are supplied. But for a 12-parameter, 12-mode dispatcher it omits which optional inputs each mode honours (year for transit-yearly, spread/allowReversed for tarot, language defaults, whitelabel applicability), leaving an agent to guess at mode-specific wiring.

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

Parameters3/5

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

With only 33% schema description coverage across 12 parameters, the description compensates on the highest-risk piece: the conditional requirement matrix (chart for most, chart1+chart2 for synastry, seed for tarot with chart optional). It says nothing about year, spread, language, whitelabel, allowReversed or name, leaving most of the parameter surface undocumented in both places.

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

Purpose5/5

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

The description names a specific verb and resource ('Single endpoint over the 12 type-specific renderers'), enumerates all twelve accepted report types, and frames the tool as a dispatcher rather than a renderer. An agent can immediately tell this apart from single-purpose siblings such as astroway_reports_natal or astroway_reports_synastry.

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

Usage Guidelines3/5

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

'SDK ergonomics: one method instead of 12' implies this is a convenience alias for the type-specific tools, but it never states when to prefer this over astroway_reports_natal / _synastry / _tarot, nor when the specialized tools are required (e.g. extra options not exposed here). Usage is inferable, not explicit, and there is no when-not guidance.

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

Deploy Server

Other Tools