Skip to main content
Glama

Western Astrology MCP Server by RoxyAPI

Daily horoscope by zodiac sign - Transit-based editorial columns

get_astrology_horoscope_sign_daily
Read-only

A publish-ready column for any zodiac sign, built from the dated transits over it and returned with those events for fact-checking. The reading names the aspects, sign ingresses, lunations and retrograde stations driving it and reads each into the whole-sign houses of that sign, so every sign gets different content rather than one blurb reused twelve times. Alongside the column come overview, love, career, health, finance and advice, the active transits, Moon sign and phase, an energy rating, lucky number and color, and compatible signs. No language model is involved, so a given sign and date always returns the same text and a piece scheduled months ahead is the piece that runs. Content rolls over at midnight, by default UTC. Pass date for editorial scheduling, or timezone to roll over on a local clock. Composed in 8 languages (en, de, es, fr, hi, pt, ru, tr); any other lang code returns English. Daily horoscope API, zodiac forecast, sun sign horoscope, astrology prediction.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNoForecast date in YYYY-MM-DD format. Past and future dates are both supported, for editorial scheduling and backfill. Defaults to the current period in the timezone parameter.
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).
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 period counts as current when date is omitted. Defaults to UTC, so the forecast rolls over at 00:00 UTC on each day. Pass the timezone of the end user to roll over on their local clock instead. Ignored when date 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
dateYes
loveYes
signYes
adviceYes
careerYes
columnYes
eventsYes
healthYes
financeYes
moonSignYes
overviewYes
moonPhaseYes
luckyColorYes
luckyNumberYes
energyRatingYes
activeTransitsYes
compatibleSignsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "activeTransits": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "advice": {
      +      "type": "string"
      +    },
      +    "career": {
      +      "type": "string"
      +    },
      +    "column": {
      +      "type": "string"
      +    },
      +    "compatibleSigns": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "date": {
      +      "type": "string"
      +    },
      +    "energyRating": {
      +      "maximum": 10,
      +      "minimum": 1,
      +      "type": "number"
      +    },
      +    "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"
      +    },
      +    "love": {
      +      "type": "string"
      +    },
      +    "luckyColor": {
      +      "type": "string"
      +    },
      +    "luckyNumber": {
      +      "type": "number"
      +    },
      +    "moonPhase": {
      +      "type": "string"
      +    },
      +    "moonSign": {
      +      "type": "string"
      +    },
      +    "overview": {
      +      "type": "string"
      +    },
      +    "sign": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "sign",
      +    "date",
      +    "overview",
      +    "love",
      +    "career",
      +    "health",
      +    "finance",
      +    "advice",
      +    "column",
      +    "events",
      +    "luckyNumber",
      +    "luckyColor",
      +    "compatibleSigns",
      +    "activeTransits",
      +    "moonSign",
      +    "moonPhase",
      +    "energyRating"
      +  ],
      +  "type": "object"
      +}
  2. Changed2 schema fields changed
    • changedInput schema / properties / lang / description
      Previous value: -"Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English."New value: +"Response 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."
    • changedInput schema / properties / lang / enum
      Previous value: -[
      -  "en",
      -  "tr",
      -  "de",
      -  "es",
      -  "hi",
      -  "pt",
      -  "fr",
      -  "ru"
      -]New value: +[
      +  "en",
      +  "tr",
      +  "de",
      +  "es",
      +  "hi",
      +  "pt",
      +  "fr",
      +  "ru",
      +  "zh-Hans",
      +  "zh-Hant"
      +]
  3. Changed2 schema fields changed
    • addedInput schema / examples
      Added value: +[
      +  {
      +    "sign": "aries"
      +  }
      +]
    • changedInput schema / properties / compact / description
      Previous value: -"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."New value: +"Set 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."
  4. Changed2 schema fields changed
    • changedInput schema / properties / date / description
      Previous value: -"Forecast date in YYYY-MM-DD format. Defaults to today. Supports future and past dates for editorial scheduling."New value: +"Forecast date in YYYY-MM-DD format. Past and future dates are both supported, for editorial scheduling and backfill. Defaults to the current period in the timezone parameter."
    • addedInput schema / properties / timezone
      Added value: +{
      +  "description": "Selects which period counts as current when date is omitted. Defaults to UTC, so the forecast rolls over at 00:00 UTC on each day. Pass the timezone of the end user to roll over on their local clock instead. Ignored when date 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\").",
      +  "example": "America/New_York",
      +  "type": "string"
      +}
  5. Changed1 schema field changed
    • changedInput schema / properties / compact / description
      Previous value: -"Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false."New value: +"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."
  6. Changed1 schema field changed
    • addedInput schema / properties / compact
      Added value: +{
      +  "default": false,
      +  "description": "Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false.",
      +  "type": "boolean"
      +}
  7. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Even with readOnlyHint=true and destructiveHint=false already in the annotations, the description adds substantial behavioral guarantees: no language model is involved, the same sign and date always return the same text, scheduled content is stable, rollover defaults to UTC, and unsupported language codes fall back to English. This goes well beyond the safety profile the annotations already provide.

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

Conciseness4/5

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

The description is well front-loaded with the core purpose and behavioral guarantees, and most sentences carry operational weight. The trailing keyword string 'Daily horoscope API, zodiac forecast, sun sign horoscope, astrology prediction.' is non-operational filler, and the language list partially duplicates schema data.

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

Completeness5/5

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

With a full output schema present, the description does not need to enumerate return values, and it covers everything an agent needs to call the tool correctly: date handling, timezone behavior, language fallback, determinism, and the fact that transit events are included for fact-checking. The only minor caveat is the 8-vs-10 language mismatch, which is a parameter-level nuance rather than a completeness gap.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline of 3 applies and the description does not need to compensate. It adds useful framing for `date` and `timezone` ('editorial scheduling' / 'local clock'), but the language claim ('Composed in 8 languages... any other lang code returns English') slightly conflicts with the schema's 10-language enum and per-field fallback wording, so it doesn't add clean value over the schema.

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

Purpose5/5

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

The description states a specific deliverable: a publish-ready daily horoscope column generated from dated transits for any zodiac sign, returned with its underlying events for fact-checking. It also makes the tool's distinctiveness clear — 'every sign gets different content rather than one blurb reused twelve times' and the rollover-at-midnight detail reinforce the daily scope that separates it from weekly/monthly/yearly siblings.

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 operational context: pass a date for editorial scheduling, pass a timezone to roll over on a local clock, and expect English fallback for unsupported languages. It does not explicitly route to the weekly/monthly/yearly siblings, so the when-to-use guidance is strong but not fully explicit about alternatives.

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