Skip to main content
Glama

Western Astrology MCP Server by RoxyAPI

Yearly horoscope by zodiac sign - Year ahead forecast with themes, key periods, eclipses and retrogrades

get_astrology_horoscope_sign_yearly
Read-only

Get the year ahead for any zodiac sign, as a long-form column plus the structured arrays a year-ahead page is built from: the slow-body themes that set the backdrop, a dated key period for each of the twelve houses, the best month for love, career, health and finance, and every eclipse and every retrograde and direct station with the house it falls in for this sign. Love, career, health, finance and advice cover the whole year, and the dated events behind the copy come back beside it so an editor can check the piece before it runs. Omit the year for the one in progress, or pass any year from 1900 to 2100 to build an archive or a forecast ahead of time. Yearly horoscope API, year ahead astrology, annual zodiac forecast, eclipse and retrograde calendar.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
langNoResponse language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English.en
signYesZodiac sign, case-insensitive (e.g., aries, Aries, ARIES all work).
yearNoCalendar year to forecast, 1900 to 2100. Defaults to the current year in the timezone parameter.
compactNoSet true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens.
timezoneNoSelects which year counts as current when year is omitted. Defaults to UTC, so the forecast rolls over at 00:00 UTC on January 1. Pass the timezone of the end user to roll over on their local clock instead. Ignored when year is set. Accepts an IANA name (e.g. "America/New_York"), decimal hours (e.g. 5.5 for IST), or a fixed UTC offset (e.g. "-05:00").

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
loveYes
signYes
yearYes
adviceYes
careerYes
columnYes
eventsYes
healthYes
themesYes
financeYes
eclipsesYes
overviewYes
keyPeriodsYes
luckyColorYes
bestPeriodsYes
retrogradesYes
luckyNumbersYes
compatibleSignsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "advice": {
      +      "type": "string"
      +    },
      +    "bestPeriods": {
      +      "properties": {
      +        "career": {
      +          "properties": {
      +            "count": {
      +              "type": "integer"
      +            },
      +            "from": {
      +              "type": "string"
      +            },
      +            "to": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "from",
      +            "to",
      +            "count"
      +          ],
      +          "type": "object"
      +        },
      +        "finance": {
      +          "properties": {
      +            "count": {
      +              "type": "integer"
      +            },
      +            "from": {
      +              "type": "string"
      +            },
      +            "to": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "from",
      +            "to",
      +            "count"
      +          ],
      +          "type": "object"
      +        },
      +        "health": {
      +          "properties": {
      +            "count": {
      +              "type": "integer"
      +            },
      +            "from": {
      +              "type": "string"
      +            },
      +            "to": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "from",
      +            "to",
      +            "count"
      +          ],
      +          "type": "object"
      +        },
      +        "love": {
      +          "properties": {
      +            "count": {
      +              "type": "integer"
      +            },
      +            "from": {
      +              "type": "string"
      +            },
      +            "to": {
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "from",
      +            "to",
      +            "count"
      +          ],
      +          "type": "object"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "career": {
      +      "type": "string"
      +    },
      +    "column": {
      +      "type": "string"
      +    },
      +    "compatibleSigns": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "eclipses": {
      +      "items": {
      +        "properties": {
      +          "date": {
      +            "type": "string"
      +          },
      +          "house": {
      +            "maximum": 12,
      +            "minimum": 1,
      +            "type": "integer"
      +          },
      +          "kind": {
      +            "type": "string"
      +          },
      +          "theme": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "date",
      +          "kind",
      +          "house",
      +          "theme"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "events": {
      +      "items": {
      +        "properties": {
      +          "aspect": {
      +            "type": "string"
      +          },
      +          "at": {
      +            "type": "string"
      +          },
      +          "bodies": {
      +            "items": {
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "house": {
      +            "maximum": 12,
      +            "minimum": 1,
      +            "type": "integer"
      +          },
      +          "sign": {
      +            "type": "string"
      +          },
      +          "through": {
      +            "type": "string"
      +          },
      +          "type": {
      +            "enum": [
      +              "aspect",
      +              "sign-ingress",
      +              "retrograde-station",
      +              "lunar-phase",
      +              "eclipse",
      +              "solar-season"
      +            ],
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "type",
      +          "at",
      +          "bodies",
      +          "house"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "finance": {
      +      "type": "string"
      +    },
      +    "health": {
      +      "type": "string"
      +    },
      +    "keyPeriods": {
      +      "items": {
      +        "properties": {
      +          "body": {
      +            "type": "string"
      +          },
      +          "focus": {
      +            "type": "string"
      +          },
      +          "from": {
      +            "type": "string"
      +          },
      +          "house": {
      +            "maximum": 12,
      +            "minimum": 1,
      +            "type": "integer"
      +          },
      +          "to": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "from",
      +          "to",
      +          "body",
      +          "house",
      +          "focus"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "love": {
      +      "type": "string"
      +    },
      +    "luckyColor": {
      +      "type": "string"
      +    },
      +    "luckyNumbers": {
      +      "items": {
      +        "type": "number"
      +      },
      +      "type": "array"
      +    },
      +    "overview": {
      +      "type": "string"
      +    },
      +    "retrogrades": {
      +      "items": {
      +        "properties": {
      +          "body": {
      +            "type": "string"
      +          },
      +          "date": {
      +            "type": "string"
      +          },
      +          "direction": {
      +            "type": "string"
      +          },
      +          "house": {
      +            "maximum": 12,
      +            "minimum": 1,
      +            "type": "integer"
      +          },
      +          "theme": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "date",
      +          "body",
      +          "direction",
      +          "house",
      +          "theme"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "sign": {
      +      "type": "string"
      +    },
      +    "themes": {
      +      "items": {
      +        "properties": {
      +          "body": {
      +            "type": "string"
      +          },
      +          "from": {
      +            "type": "string"
      +          },
      +          "house": {
      +            "maximum": 12,
      +            "minimum": 1,
      +            "type": "integer"
      +          },
      +          "sign": {
      +            "type": "string"
      +          },
      +          "theme": {
      +            "type": "string"
      +          },
      +          "to": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "body",
      +          "sign",
      +          "house",
      +          "theme",
      +          "from",
      +          "to"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "year": {
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "sign",
      +    "year",
      +    "overview",
      +    "love",
      +    "career",
      +    "health",
      +    "finance",
      +    "advice",
      +    "column",
      +    "events",
      +    "themes",
      +    "eclipses",
      +    "retrogrades",
      +    "keyPeriods",
      +    "bestPeriods",
      +    "luckyNumbers",
      +    "luckyColor",
      +    "compatibleSigns"
      +  ],
      +  "type": "object"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / year / type
      Previous value: -"number"New value: +"integer"
  3. Changed2 schema fields changed
    • addedInput schema / properties / year / maximum
      Added value: +2100
    • addedInput schema / properties / year / minimum
      Added value: +1900
  4. Added

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already mark this as read-only and non-destructive. The description adds substantial behavioral detail beyond that: it returns editorial copy plus structured dated events, includes every eclipse and retrograde station by house, and explains compact-mode and timezone-related behavior. There is no contradiction with the annotations.

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

Conciseness3/5

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

The first three sentences are dense but informative, covering output structure, verification use case, and year/timezone usage. However, the trailing keyword phrase ('Yearly horoscope API, year ahead astrology...') is filler that adds no agent value, and the first sentence packs a very long list that could be more readable.

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 5-parameter GET with an output schema and read-only annotations, the description covers the returned content, current vs. historical year selection, timezone behavior, compact token savings, and editor verification. Nothing essential for selecting or invoking the tool is missing.

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

Parameters3/5

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

All five parameters have full schema descriptions with enums, defaults, examples, and range constraints, so the baseline is 3. The description reinforces the year semantics ('Omit the year for the one in progress') and compact output, but it does not materially add meaning beyond what the schema already provides.

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

Purpose5/5

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

The description states a specific action ('Get the year ahead') and a clear resource (yearly horoscope by zodiac sign), then enumerates the concrete contents: themes, 12-house key periods, best months, eclipses, and retrogrades. This distinguishes it strongly from the daily, weekly, and monthly sibling tools by its yearly scope.

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

Usage Guidelines4/5

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

The description gives clear usage context: omit the year for the current one, pass 1900–2100 for archives or early forecasts, and rely on the timezone parameter to define the current year. It does not explicitly name daily/weekly/monthly as alternatives or state when not to use this tool, but the year-ahead framing makes the intended use fairly unambiguous.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources