Skip to main content
Glama
HellenicStar Astrology MCP Server

HellenicStar Astrology MCP Server

calculate_solar_arc

Read-onlyIdempotent

Compute true solar-arc directions across an age range, revealing directed-point contacts, exact hard-aspect dates, and positions at a chosen wheel age for astrological timing.

Instructions

Calculate true solar-arc directions over an age interval: directed-point/axis contacts, the hard-aspect matrix with exact dates, and directed positions at wheel_age. Use for solar-arc timing; choose calculate_secondary_progressions for day-for-year progressions, calculate_transits_to_natal for actual transits, or render_solar_arc_biwheel for an image. Requires exact local birth date/time and a confirmed birthplace location_id; omitted prerequisites return needs_clarification. Defaults to a five-year window on either side of the selected wheel age, clipped to ages 0-80. Returns calculation data, not event predictions. Server checks run before successful results are returned. Before interpreting this data, call verify_calculation_claims with its unchanged calculation_reference and draft source-field claims. Correct contradicted facts and reverify before the final answer. Psychological interpretations are not checked. Optional detail_level=summary previews object/nested rows (up to five), preserves complete scalar membership lists, and marks truncation; include selects top-level content fields. Omit both for the original full result. Verification references always identify the complete checked calculation.

Input Schema

NameRequiredDescriptionDefault
dayNoBirth day of month, valid for the supplied year and month in the birthplace local civil calendar.
foldNoFor a repeated local time at a DST rollback, ask the user to choose 0 (first occurrence) or 1 (second). Otherwise omit; never guess.
hourNoExact birth hour, 0-23, in birthplace local civil time; do not substitute noon for an unknown time.
yearNoBirth year in the Gregorian calendar, using local civil time at the confirmed birthplace. Required for calculation; do not guess missing birth data.
as_ofNoReference date YYYY-MM-DD, default current UTC date, evaluated at 12:00 UTC. Determines wheel age when wheel_age is omitted; that derived age is clipped to 0-80.
monthNoBirth month, 1-12, in the birthplace local civil calendar.
age_toNoEnd age in years, at most 80 and greater than age_from. Omit for min(80, selected wheel age plus 5).
minuteNoExact birth minute, 0-59, in birthplace local civil time.
includeNoOptional 1-30 top-level content field names, each 1-80 characters. Omit to return all content. Control/provenance fields remain; unknown or control field names return invalid_input with available_fields. Known selectable fields: aspect_matrix, axis_contacts_by_directed_points, cross_aspects_at_wheel_age, directed_axes_to_natal_points, directed_positions_at_wheel_age. Use these exact names.
age_fromNoStart age in years. Must satisfy 0 <= age_from < age_to <= 80. Omit for max(0, selected wheel age minus 5).
wheel_ageNoOptional directed-position age in years, 0-80. Overrides the age derived from as_of and centers omitted age-range bounds on this age; explicit age_from/age_to remain unchanged.
location_idNoConfirmed birthplace ID returned by search_birthplace or resolve_birth_coordinates; not a city name. Resolve ambiguous places before calling.
detail_levelNofull returns complete calculation content. summary previews up to five object/nested rows per list, preserves scalar membership lists, and reports omitted counts. References still identify the full calculation.full

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.1.7
    • changedInput schema / properties / include / description
      Previous value: -"Optional 1-30 top-level content field names, each 1-80 characters. Omit to return all content. Control/provenance fields remain; unknown or control field names return invalid_input with available_fields."New value: +"Optional 1-30 top-level content field names, each 1-80 characters. Omit to return all content. Control/provenance fields remain; unknown or control field names return invalid_input with available_fields. Known selectable fields: aspect_matrix, axis_contacts_by_directed_points, cross_aspects_at_wheel_age, directed_axes_to_natal_points, directed_positions_at_wheel_age. Use these exact names."
  2. Changed11 schema fields changed
    • addedInput schema / properties / age_from / description
      Added value: +"Start age in years. Must satisfy 0 <= age_from < age_to <= 80. Omit for max(0, selected wheel age minus 5)."
    • addedInput schema / properties / age_to / description
      Added value: +"End age in years, at most 80 and greater than age_from. Omit for min(80, selected wheel age plus 5)."
    • addedInput schema / properties / as_of / description
      Added value: +"Reference date YYYY-MM-DD, default current UTC date, evaluated at 12:00 UTC. Determines wheel age when wheel_age is omitted; that derived age is clipped to 0-80."
    • addedInput schema / properties / day / description
      Added value: +"Birth day of month, valid for the supplied year and month in the birthplace local civil calendar."
    • addedInput schema / properties / fold / description
      Added value: +"For a repeated local time at a DST rollback, ask the user to choose 0 (first occurrence) or 1 (second). Otherwise omit; never guess."
    • addedInput schema / properties / hour / description
      Added value: +"Exact birth hour, 0-23, in birthplace local civil time; do not substitute noon for an unknown time."
    • addedInput schema / properties / location_id / description
      Added value: +"Confirmed birthplace ID returned by search_birthplace or resolve_birth_coordinates; not a city name. Resolve ambiguous places before calling."
    • addedInput schema / properties / minute / description
      Added value: +"Exact birth minute, 0-59, in birthplace local civil time."
    • addedInput schema / properties / month / description
      Added value: +"Birth month, 1-12, in the birthplace local civil calendar."
    • addedInput schema / properties / wheel_age / description
      Added value: +"Optional directed-position age in years, 0-80. Overrides the age derived from as_of and centers omitted age-range bounds on this age; explicit age_from/age_to remain unchanged."
    • addedInput schema / properties / year / description
      Added value: +"Birth year in the Gregorian calendar, using local civil time at the confirmed birthplace. Required for calculation; do not guess missing birth data."
  3. Changed2 schema fields changed
    • addedInput schema / properties / detail_level / description
      Added value: +"full returns complete calculation content. summary previews up to five object/nested rows per list, preserves scalar membership lists, and reports omitted counts. References still identify the full calculation."
    • addedInput schema / properties / include / description
      Added value: +"Optional 1-30 top-level content field names, each 1-80 characters. Omit to return all content. Control/provenance fields remain; unknown or control field names return invalid_input with available_fields."
  4. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the readOnly/idempotent/non-destructive annotations: default five-year window clipped to ages 0-80, 'returns calculation data, not event predictions', server-side checks running before results are returned, needs_clarification on missing prerequisites, and the mandatory verification loop with unchanged calculation_reference. These are call-shaping behaviors not derivable from structured fields.

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

Conciseness4/5

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

Front-loaded with purpose, then alternatives, then prerequisites, then output semantics and verification — a sensible order with no filler sentences. It is on the long side, and the verification-workflow paragraph is dense boilerplate that slightly dilutes the core description.

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

Completeness5/5

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

For a 13-parameter, zero-required, no-output-schema tool, it covers purpose, prerequisites, default bounds, truncation/preview semantics, error modes, and the mandatory verification step. An agent has enough to call it correctly and to know what to do with the result.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3; the description earns extra by explaining cross-parameter interaction the schema can't — 'omit both for the original full result', and that summary/truncation never affects what verification references identify. Most individual parameter meaning is still delegated to the schema.

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

Purpose5/5

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

Specific verb + resource + scope: 'Calculate true solar-arc directions over an age interval', naming the exact outputs (directed-point/axis contacts, hard-aspect matrix with dates, directed positions at wheel_age). It also explicitly distinguishes itself from calculate_secondary_progressions, calculate_transits_to_natal, and render_solar_arc_biwheel so an agent can route without opening sibling schemas.

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

Usage Guidelines5/5

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

States when to use it ('for solar-arc timing') and names three alternatives with the conditions that select them. Prerequisites are spelled out (exact local birth date/time, confirmed location_id) along with the consequence of omitting them (needs_clarification), and it prescribes the follow-up verify_calculation_claims step.

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