Koskamo

Zodiacs MCP

A hosted MCP server that computes astrological positions, finds sign ingresses, stations, and new/full Moons, and serves dated Sun-sign horoscopes. It allows agents to ask questions about planetary retrogrades, weekly changes, and daily horoscopes without requiring birth chart storage.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Zodiacs MCP logo, by ZodiacsCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-08Published by Zodiacs
MCP endpoint (Streamable HTTP)
https://zodiacs.org/mcp
Vendor documentation

What its tools do

19 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

19 of 19 have a description · 19 of 19 declare behavior hints · 14 of 17 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Ask 'Is Mercury retrograde right now?'
  • Show today's horoscope for Leo
  • Ask 'What changes this week in Bangkok?'

Source and maintenance

Community listingRegistry 0.6.6

Protocol and capabilities

Server
zodiacs 0.6.6
MCP protocol negotiated in check
2025-11-25
Tools
19 advertised
Resources
25 advertised
Resource templates
0 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Zodiacs calculates the sky and publishes dated Sun-sign horoscopes. Answer in plain words first. Keep calculated facts separate from what they mean in astrology, and say when an answer depends on the time zone. Mention calculation details such as versions, receipts or UTC only if the person asks how something was calculated. Use URLs returned by the tools exactly, including the query and the complete fragment after #. Never rebuild, shorten or change a card link; if no card URL is returned, use a returned page link. Never put a birth date, birth time, birthplace, coordinates or place name into a link you write. Never guess a birth time or a sign. Ask before using someone else's birth details. Zodiacs never stores or logs birth details. Links never carry a birth year, a birth time, a birthplace or the names you give; a birthday link carries only the month and day. Zodiacs is not directed at children under 13, so do not send a child's name, birth date or birthplace to its tools; they refuse a birth date less than 13 years ago. If a person or a birth date is under 18, do not frame the reading as romance, attraction or a sexual relationship, and say that Zodiacs does not give that framing for anyone under 18. Share the scores, ratings and astrological forecasts plainly and confidently, as astrology’s reading, with each reading-confidence label a tool returns: it says how specific the details were, never the odds that an event happens. Zodiacs gives no betting tips, sports picks, investment timing, election forecasts or health predictions, and guarantees no outcome. It does not schedule anything, pick investments or give financial or medical advice; do not call its tools for any of these requests, and say plainly that it cannot.

Tools

19 advertised

get_capabilities — What Zodiacs can do
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists what Zodiacs can do, its limits and how it handles privacy. Use it when the person asks what Zodiacs can do, or when you need those details before choosing another tool. Zodiacs does not schedule anything, pick stocks or investments, make health predictions or guarantee outcomes, so do not call it to check before turning those requests down. No sign-in or birth details needed.

get_capabilities input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {},
  "additionalProperties": false
}
get_capabilities output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "name",
            "version",
            "engine",
            "tools",
            "limits",
            "conventions",
            "coverage",
            "privacy",
            "limitations"
          ],
          "properties": {
            "name": {
              "type": "string",
              "const": "Zodiacs"
            },
            "tools": {
              "type": "array",
              "items": {
                "enum": [
                  "get_capabilities",
                  "get_sky",
                  "get_upcoming_events",
                  "check_sky_fact",
                  "get_horoscope",
                  "open_chart_studio",
                  "get_occasion_sky",
                  "get_life_milestones",
                  "get_compatibility",
                  "find_chart_twins",
                  "get_famous_chart",
                  "get_birthday",
                  "get_sky_calendar"
                ],
                "type": "string"
              }
            },
            "engine": {
              "type": "object",
              "required": [
                "name",
                "version",
                "ephemeris"
              ],
              "properties": {
                "name": {
                  "const": "@zodiacs/engine"
                },
                "version": {
                  "type": "string"
                },
                "ephemeris": {
                  "type": "object",
                  "required": [
                    "name",
                    "version"
                  ],
                  "properties": {
                    "name": {
                      "const": "astronomy-engine"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                }
              }
            },
            "limits": {
              "type": "object",
              "required": [
                "from",
                "to",
                "eventWindowDays",
                "eventKinds",
                "samples",
                "factSamples"
              ],
              "properties": {
                "to": {
                  "type": "string"
                },
                "from": {
                  "type": "string"
                },
                "samples": {
                  "type": "integer",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991
                },
                "eventKinds": {
                  "type": "array",
                  "items": {
                    "enum": [
                      "ingress",
                      "station",
                      "lunation"
                    ],
                    "type": "string"
                  }
                },
                "factSamples": {
                  "type": "integer",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991
                },
                "eventWindowDays": {
                  "type": "integer",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991
                }
              },
              "additionalProperties": false
            },
            "privacy": {
              "type": "string"
            },
            "version": {
              "type": "string"
            },
            "coverage": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "type": "string"
              }
            },
            "conventions": {
              "type": "object",
              "propertyNames": {
                "type": "string"
              },
              "additionalProperties": {
                "type": "string"
              }
            },
            "limitations": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "get_capabilities"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_capabilities",
            "get_sky",
            "get_upcoming_events",
            "check_sky_fact",
            "get_horoscope",
            "open_chart_studio",
            "get_occasion_sky",
            "get_life_milestones",
            "get_compatibility",
            "find_chart_twins",
            "get_famous_chart",
            "get_birthday",
            "get_sky_calendar"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
get_capabilities annotations
{
  "title": "What Zodiacs can do",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_sky — Sky right now
Advertised by the server during the last successful anonymous check.
Advertised read-only

Shows where the Sun, Moon and planets are right now, or at a moment the person names, with the Moon's phase. Pass the person's time zone if you know it so times read on their clock. Astronomy only; it makes no personal prediction.

get_sky input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "zone": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_+-]*(?:\\/[A-Za-z0-9_+-]+){0,3}$",
      "maxLength": 64,
      "minLength": 1,
      "description": "The person's time zone, such as Asia/Bangkok or America/New_York. Without it, times are in UTC."
    },
    "bodies": {
      "type": "array",
      "items": {
        "enum": [
          "Sun",
          "Moon",
          "Mercury",
          "Venus",
          "Mars",
          "Jupiter",
          "Saturn",
          "Uranus",
          "Neptune",
          "Pluto",
          "North Node",
          "South Node"
        ],
        "type": "string"
      },
      "maxItems": 12,
      "minItems": 1
    },
    "instant": {
      "type": "string",
      "maxLength": 29,
      "minLength": 20,
      "description": "A moment as an ISO 8601 time with Z or an offset, such as 2026-10-08T09:00:00+07:00 (years 1800–2199)."
    }
  },
  "additionalProperties": false
}
get_sky output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "mode",
            "time",
            "calculation",
            "moonPhase",
            "interpretation"
          ],
          "properties": {
            "mode": {
              "enum": [
                "current-instant",
                "requested-instant"
              ],
              "type": "string"
            },
            "time": {
              "type": "object",
              "required": [
                "utc",
                "zone",
                "display"
              ],
              "properties": {
                "utc": {
                  "type": "string"
                },
                "zone": {
                  "type": "string"
                },
                "display": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "moonPhase": {
              "type": "object",
              "required": [
                "name",
                "angle",
                "illumination"
              ],
              "properties": {
                "name": {
                  "type": "string"
                },
                "angle": {
                  "type": "number"
                },
                "illumination": {
                  "type": "number"
                }
              },
              "additionalProperties": false
            },
            "calculation": {
              "type": "object",
              "required": [
                "schema",
                "result",
                "receipt",
                "backend",
                "cite"
              ],
              "properties": {
                "cite": {
                  "type": "object",
                  "required": [
                    "url",
                    "receipt",
                    "engine",
                    "version"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "engine": {
                      "type": "string"
                    },
                    "receipt": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                "result": {
                  "type": "object",
                  "required": [
                    "instants"
                  ],
                  "properties": {
                    "instants": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "instant",
                          "bodies",
                          "deltaT",
                          "timeScale",
                          "flags"
                        ],
                        "properties": {
                          "flags": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "bodies": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "required": [
                                "body",
                                "lon",
                                "lat",
                                "speed",
                                "retrograde",
                                "sign",
                                "degree"
                              ],
                              "properties": {
                                "lat": {
                                  "type": "number"
                                },
                                "lon": {
                                  "type": "number"
                                },
                                "body": {
                                  "type": "string"
                                },
                                "sign": {
                                  "type": "string"
                                },
                                "speed": {
                                  "type": "number"
                                },
                                "degree": {
                                  "type": "number"
                                },
                                "retrograde": {
                                  "type": "boolean"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "deltaT": {
                            "type": "object",
                            "required": [
                              "seconds",
                              "sigma",
                              "model",
                              "table",
                              "tableDigest",
                              "segment"
                            ],
                            "properties": {
                              "model": {
                                "enum": [
                                  "iers-utc/1",
                                  "zodiacs-deltat/1"
                                ]
                              },
                              "sigma": {
                                "type": "number"
                              },
                              "table": {
                                "type": "string"
                              },
                              "seconds": {
                                "type": "number"
                              },
                              "segment": {
                                "enum": [
                                  "long-term",
                                  "reconstructed",
                                  "observed",
                                  "predicted",
                                  "extrapolated"
                                ]
                              },
                              "tableDigest": {
                                "type": "string"
                              }
                            },
                            "description": "ΔT = TT − UT1 in seconds, with its 1-sigma band and where it came from, as the engine reports it for a chart at the instant: iers-utc/1 from 1972 to the end of the engine's UT1 table, its model zodiacs-deltat/1 otherwise."
                          },
                          "instant": {
                            "type": "string"
                          },
                          "timeScale": {
                            "type": "object",
                            "required": [
                              "input",
                              "basis",
                              "ut1MinusUtc",
                              "leapSeconds"
                            ],
                            "properties": {
                              "basis": {
                                "enum": [
                                  "iers",
                                  "delta-t"
                                ]
                              },
                              "input": {
                                "const": "utc"
                              },
                              "leapSeconds": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": [
                                      "taiMinusUtc",
                                      "listed"
                                    ],
                                    "properties": {
                                      "listed": {
                                        "type": "boolean"
                                      },
                                      "taiMinusUtc": {
                                        "type": "number"
                                      }
                                    },
                                    "description": "TAI − UTC in seconds from the IERS leap-second list; listed is false after the list expires and its last value is carried."
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "ut1MinusUtc": {
                                "anyOf": [
                                  {
                                    "type": "object",
                                    "required": [
                                      "seconds",
                                      "sigma",
                                      "source"
                                    ],
                                    "properties": {
                                      "sigma": {
                                        "type": "number"
                                      },
                                      "source": {
                                        "enum": [
                                          "observed",
                                          "predicted",
                                          "fallback"
                                        ]
                                      },
                                      "seconds": {
                                        "type": "number"
                                      }
                                    },
                                    "description": "UT1 − UTC in seconds as the engine used it, with its 1-sigma band and its source: observed or predicted by IERS, or fallback after the table ends; null before 1972."
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              }
                            },
                            "description": "How the engine read the instant, as a chart reports it. basis iers, from 1972 to the end of its UT1 table: TT is UTC plus the leap seconds and 32.184 s, and UT1 is UTC plus IERS UT1 − UTC. basis delta-t, otherwise: the instant is read as UT1, and TT is UT1 plus the ΔT model."
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "schema": {
                  "type": "string"
                },
                "backend": {
                  "type": "object",
                  "required": [
                    "name",
                    "version",
                    "ephemeris"
                  ],
                  "properties": {
                    "name": {
                      "const": "@zodiacs/engine"
                    },
                    "version": {
                      "type": "string"
                    },
                    "ephemeris": {
                      "type": "object",
                      "required": [
                        "name",
                        "version"
                      ],
                      "properties": {
                        "name": {
                          "const": "astronomy-engine"
                        },
                        "version": {
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "receipt": {
                  "type": "object",
                  "required": [
                    "schema",
                    "endpoint",
                    "engine",
                    "conventions",
                    "coverage",
                    "referenceSpan",
                    "deltaT",
                    "conventionIds"
                  ],
                  "properties": {
                    "deltaT": {
                      "type": "array",
                      "maxItems": 2,
                      "minItems": 2,
                      "description": "The two sources of ΔT the engine's time basis uses: IERS from 1972 to the end of its UT1 table, then its model. A result that gives an instant's ΔT names which applied.",
                      "prefixItems": [
                        {
                          "type": "object",
                          "required": [
                            "model",
                            "table",
                            "tableDigest"
                          ],
                          "properties": {
                            "model": {
                              "const": "iers-utc/1"
                            },
                            "table": {
                              "type": "string"
                            },
                            "tableDigest": {
                              "type": "string"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "required": [
                            "model",
                            "table",
                            "tableDigest"
                          ],
                          "properties": {
                            "model": {
                              "const": "zodiacs-deltat/1"
                            },
                            "table": {
                              "type": "string"
                            },
                            "tableDigest": {
                              "type": "string"
                            }
                          }
                        }
                      ]
                    },
                    "engine": {
                      "type": "object",
                      "required": [
                        "name",
                        "version",
                        "ephemeris"
                      ],
                      "properties": {
                        "name": {
                          "const": "@zodiacs/engine"
                        },
                        "version": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "object",
                          "required": [
                            "name",
                            "version"
                          ],
                          "properties": {
                            "name": {
                              "const": "astronomy-engine"
                            },
                            "version": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    },
                    "schema": {
                      "const": "zodiacs.compute-receipt.v1"
                    },
                    "search": {
                      "type": "object",
                      "required": [
                        "solver",
                        "stepDays",
                        "bisections",
                        "samples",
                        "maxSamples",
                        "window",
                        "completeness"
                      ],
                      "properties": {
                        "solver": {
                          "const": "engine-longitude-crossings"
                        },
                        "window": {
                          "const": "start-exclusive-end-inclusive"
                        },
                        "samples": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "stepDays": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "number"
                          }
                        },
                        "bisections": {
                          "type": "integer"
                        },
                        "maxSamples": {
                          "type": "integer"
                        },
                        "completeness": {
                          "const": "tested-not-proven"
                        }
                      }
                    },
                    "coverage": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "endpoint": {
                      "enum": [
                        "chart",
                        "positions",
                        "houses",
                        "events",
                        "time",
                        "sky-fact",
                        "elections"
                      ]
                    },
                    "conventions": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "conventionIds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^[A-Za-z][A-Za-z0-9-]*:\\S+$"
                      },
                      "description": "Every id of the Zodiacs conventions registry (https://zodiacs.org/developers/conventions/) that this receipt's own fields name, in code-unit order, each once: each conventions and coverage field, the ephemeris, the endpoint, each ΔT source's model, how local times were read and how a search ran. The result's are left out, so the receipt holds nothing the request gave.",
                      "uniqueItems": true
                    },
                    "referenceSpan": {
                      "type": "object",
                      "required": [
                        "from",
                        "to"
                      ],
                      "properties": {
                        "to": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "from": {
                          "type": "string",
                          "format": "date-time"
                        }
                      }
                    },
                    "electionSearch": {
                      "type": "object",
                      "required": [
                        "solver",
                        "stepDays",
                        "voidOfCourse",
                        "houseSampleMinutes",
                        "boundarySeconds",
                        "resolutionSeconds",
                        "fullCalculationCost",
                        "samples",
                        "maxSamples",
                        "window",
                        "completeness"
                      ],
                      "properties": {
                        "solver": {
                          "const": "engine-longitude-crossings-and-sampled-houses"
                        },
                        "window": {
                          "const": "start-inclusive-end-exclusive"
                        },
                        "samples": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "stepDays": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "number"
                          }
                        },
                        "maxSamples": {
                          "type": "integer"
                        },
                        "completeness": {
                          "const": "tested-not-proven"
                        },
                        "voidOfCourse": {
                          "type": "object",
                          "required": [
                            "convention",
                            "bodies",
                            "scanHours"
                          ],
                          "properties": {
                            "bodies": {
                              "const": "modern"
                            },
                            "scanHours": {
                              "type": "number"
                            },
                            "convention": {
                              "const": "last-exact-ptolemaic-aspect-to-sign-exit"
                            }
                          }
                        },
                        "boundarySeconds": {
                          "const": 1
                        },
                        "resolutionSeconds": {
                          "const": 2
                        },
                        "houseSampleMinutes": {
                          "const": 60
                        },
                        "fullCalculationCost": {
                          "const": 25
                        }
                      },
                      "description": "How an election search ran: the crossing search's steps for sign changes, stations and phases; the void-of-course rule and the step of its scan for the Moon's last aspect; the house sampling; the evaluations made, where a crossing step counts once and a full calculation, all the positions at an instant or a natalChart for a house, counts as fullCalculationCost. Every window's ends are within a second, so a gap shorter than resolutionSeconds between two windows is closed and a window shorter than it is not listed: two boundaries that close may be one instant found twice."
                    },
                    "timeResolution": {
                      "type": "object",
                      "required": [
                        "resolver",
                        "policy",
                        "pinnedTzdb",
                        "runtimeTzdb"
                      ],
                      "properties": {
                        "policy": {
                          "type": "object",
                          "properties": {
                            "gap": {
                              "const": "shift-forward"
                            },
                            "fold": {
                              "const": "earlier"
                            }
                          }
                        },
                        "resolver": {
                          "type": "string"
                        },
                        "pinnedTzdb": {
                          "type": "object"
                        },
                        "runtimeTzdb": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      }
                    }
                  },
                  "description": "The receipt for a calculation the engine writes no receipt for: the engine, its conventions and coverage as its own receipts state them, and what this request used."
                }
              },
              "additionalProperties": false
            },
            "interpretation": {
              "type": "string",
              "const": "Astronomical calculations; no personal prediction is supplied."
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "get_sky"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_capabilities",
            "get_sky",
            "get_upcoming_events",
            "check_sky_fact",
            "get_horoscope",
            "open_chart_studio",
            "get_occasion_sky",
            "get_life_milestones",
            "get_compatibility",
            "find_chart_twins",
            "get_famous_chart",
            "get_birthday",
            "get_sky_calendar"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
get_sky annotations
{
  "title": "Sky right now",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
get_upcoming_events — Sky calendar
Advertised by the server during the last successful anonymous check.
Advertised read-only

Shows what changes in the sky over the coming days or weeks: planets changing sign, turning retrograde or direct, and new and full Moons, for up to 92 days. Supply from and to, and the person's time zone. With no arguments it opens the calendar for the next seven days. It does not list eclipses or every aspect.

get_upcoming_events input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "to": {
      "type": "string",
      "maxLength": 29,
      "minLength": 20,
      "description": "A moment as an ISO 8601 time with Z or an offset, such as 2026-10-08T09:00:00+07:00 (years 1800–2199)."
    },
    "from": {
      "type": "string",
      "maxLength": 29,
      "minLength": 20,
      "description": "A moment as an ISO 8601 time with Z or an offset, such as 2026-10-08T09:00:00+07:00 (years 1800–2199)."
    },
    "zone": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_+-]*(?:\\/[A-Za-z0-9_+-]+){0,3}$",
      "maxLength": 64,
      "minLength": 1,
      "description": "The person's time zone, such as Asia/Bangkok or America/New_York. Without it, times are in UTC."
    },
    "kinds": {
      "type": "array",
      "items": {
        "enum": [
          "ingress",
          "station",
          "lunation"
        ],
        "type": "string"
      },
      "maxItems": 3,
      "minItems": 1
    },
    "bodies": {
      "type": "array",
      "items": {
        "enum": [
          "Sun",
          "Moon",
          "Mercury",
          "Venus",
          "Mars",
          "Jupiter",
          "Saturn",
          "Uranus",
          "Neptune",
          "Pluto"
        ],
        "type": "string"
      },
      "maxItems": 10,
      "minItems": 1
    }
  },
  "additionalProperties": false
}
get_upcoming_events output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "from",
            "to",
            "zone",
            "events",
            "calculation",
            "completeness"
          ],
          "properties": {
            "to": {
              "type": "string"
            },
            "from": {
              "type": "string"
            },
            "zone": {
              "type": "string"
            },
            "events": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "kind",
                  "at",
                  "localAt",
                  "sign"
                ],
                "properties": {
                  "at": {
                    "type": "string"
                  },
                  "lon": {
                    "type": "number"
                  },
                  "body": {
                    "type": "string"
                  },
                  "kind": {
                    "enum": [
                      "ingress",
                      "station",
                      "lunation"
                    ],
                    "type": "string"
                  },
                  "sign": {
                    "type": "string"
                  },
                  "type": {
                    "type": "string"
                  },
                  "degree": {
                    "type": "number"
                  },
                  "localAt": {
                    "type": "string"
                  },
                  "retrograde": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              }
            },
            "calculation": {
              "type": "object",
              "required": [
                "schema",
                "result",
                "receipt",
                "backend",
                "cite"
              ],
              "properties": {
                "cite": {
                  "type": "object",
                  "required": [
                    "url",
                    "receipt",
                    "engine",
                    "version"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "engine": {
                      "type": "string"
                    },
                    "receipt": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                "result": {
                  "type": "object",
                  "required": [
                    "from",
                    "to",
                    "events"
                  ],
                  "properties": {
                    "to": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "from": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "events": {
                      "type": "array",
                      "items": {
                        "oneOf": [
                          {
                            "type": "object",
                            "required": [
                              "kind",
                              "body",
                              "at",
                              "sign",
                              "retrograde"
                            ],
                            "properties": {
                              "at": {
                                "type": "string",
                                "format": "date-time"
                              },
                              "body": {
                                "enum": [
                                  "Sun",
                                  "Moon",
                                  "Mercury",
                                  "Venus",
                                  "Mars",
                                  "Jupiter",
                                  "Saturn",
                                  "Uranus",
                                  "Neptune",
                                  "Pluto"
                                ]
                              },
                              "kind": {
                                "const": "ingress"
                              },
                              "sign": {
                                "enum": [
                                  "aries",
                                  "taurus",
                                  "gemini",
                                  "cancer",
                                  "leo",
                                  "virgo",
                                  "libra",
                                  "scorpio",
                                  "sagittarius",
                                  "capricorn",
                                  "aquarius",
                                  "pisces"
                                ]
                              },
                              "retrograde": {
                                "type": "boolean"
                              }
                            }
                          },
                          {
                            "type": "object",
                            "required": [
                              "kind",
                              "body",
                              "at",
                              "type",
                              "lon",
                              "sign",
                              "degree"
                            ],
                            "properties": {
                              "at": {
                                "type": "string",
                                "format": "date-time"
                              },
                              "lon": {
                                "type": "number"
                              },
                              "body": {
                                "enum": [
                                  "Sun",
                                  "Moon",
                                  "Mercury",
                                  "Venus",
                                  "Mars",
                                  "Jupiter",
                                  "Saturn",
                                  "Uranus",
                                  "Neptune",
                                  "Pluto"
                                ]
                              },
                              "kind": {
                                "const": "station"
                              },
                              "sign": {
                                "enum": [
                                  "aries",
                                  "taurus",
                                  "gemini",
                                  "cancer",
                                  "leo",
                                  "virgo",
                                  "libra",
                                  "scorpio",
                                  "sagittarius",
                                  "capricorn",
                                  "aquarius",
                                  "pisces"
                                ]
                              },
                              "type": {
                                "enum": [
                                  "retrograde",
                                  "direct"
                                ]
                              },
                              "degree": {
                                "type": "number"
                              }
                            }
                          },
                          {
                            "type": "object",
                            "required": [
                              "kind",
                              "type",
                              "at",
                              "lon",
                              "sign",
                              "degree"
                            ],
                            "properties": {
                              "at": {
                                "type": "string",
                                "format": "date-time"
                              },
                              "lon": {
                                "type": "number"
                              },
                              "kind": {
                                "const": "lunation"
                              },
                              "sign": {
                                "enum": [
                                  "aries",
                                  "taurus",
                                  "gemini",
                                  "cancer",
                                  "leo",
                                  "virgo",
                                  "libra",
                                  "scorpio",
                                  "sagittarius",
                                  "capricorn",
                                  "aquarius",
                                  "pisces"
                                ]
                              },
                              "type": {
                                "enum": [
                                  "new",
                                  "full"
                                ]
                              },
                              "degree": {
                                "type": "number"
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                },
                "schema": {
                  "type": "string"
                },
                "backend": {
                  "type": "object",
                  "required": [
                    "name",
                    "version",
                    "ephemeris"
                  ],
                  "properties": {
                    "name": {
                      "const": "@zodiacs/engine"
                    },
                    "version": {
                      "type": "string"
                    },
                    "ephemeris": {
                      "type": "object",
                      "required": [
                        "name",
                        "version"
                      ],
                      "properties": {
                        "name": {
                          "const": "astronomy-engine"
                        },
                        "version": {
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "receipt": {
                  "type": "object",
                  "required": [
                    "schema",
                    "endpoint",
                    "engine",
                    "conventions",
                    "coverage",
                    "referenceSpan",
                    "deltaT",
                    "conventionIds"
                  ],
                  "properties": {
                    "deltaT": {
                      "type": "array",
                      "maxItems": 2,
                      "minItems": 2,
                      "description": "The two sources of ΔT the engine's time basis uses: IERS from 1972 to the end of its UT1 table, then its model. A result that gives an instant's ΔT names which applied.",
                      "prefixItems": [
                        {
                          "type": "object",
                          "required": [
                            "model",
                            "table",
                            "tableDigest"
                          ],
                          "properties": {
                            "model": {
                              "const": "iers-utc/1"
                            },
                            "table": {
                              "type": "string"
                            },
                            "tableDigest": {
                              "type": "string"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "required": [
                            "model",
                            "table",
                            "tableDigest"
                          ],
                          "properties": {
                            "model": {
                              "const": "zodiacs-deltat/1"
                            },
                            "table": {
                              "type": "string"
                            },
                            "tableDigest": {
                              "type": "string"
                            }
                          }
                        }
                      ]
                    },
                    "engine": {
                      "type": "object",
                      "required": [
                        "name",
                        "version",
                        "ephemeris"
                      ],
                      "properties": {
                        "name": {
                          "const": "@zodiacs/engine"
                        },
                        "version": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "object",
                          "required": [
                            "name",
                            "version"
                          ],
                          "properties": {
                            "name": {
                              "const": "astronomy-engine"
                            },
                            "version": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    },
                    "schema": {
                      "const": "zodiacs.compute-receipt.v1"
                    },
                    "search": {
                      "type": "object",
                      "required": [
                        "solver",
                        "stepDays",
                        "bisections",
                        "samples",
                        "maxSamples",
                        "window",
                        "completeness"
                      ],
                      "properties": {
                        "solver": {
                          "const": "engine-longitude-crossings"
                        },
                        "window": {
                          "const": "start-exclusive-end-inclusive"
                        },
                        "samples": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "stepDays": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "number"
                          }
                        },
                        "bisections": {
                          "type": "integer"
                        },
                        "maxSamples": {
                          "type": "integer"
                        },
                        "completeness": {
                          "const": "tested-not-proven"
                        }
                      }
                    },
                    "coverage": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "endpoint": {
                      "enum": [
                        "chart",
                        "positions",
                        "houses",
                        "events",
                        "time",
                        "sky-fact",
                        "elections"
                      ]
                    },
                    "conventions": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "conventionIds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^[A-Za-z][A-Za-z0-9-]*:\\S+$"
                      },
                      "description": "Every id of the Zodiacs conventions registry (https://zodiacs.org/developers/conventions/) that this receipt's own fields name, in code-unit order, each once: each conventions and coverage field, the ephemeris, the endpoint, each ΔT source's model, how local times were read and how a search ran. The result's are left out, so the receipt holds nothing the request gave.",
                      "uniqueItems": true
                    },
                    "referenceSpan": {
                      "type": "object",
                      "required": [
                        "from",
                        "to"
                      ],
                      "properties": {
                        "to": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "from": {
                          "type": "string",
                          "format": "date-time"
                        }
                      }
                    },
                    "electionSearch": {
                      "type": "object",
                      "required": [
                        "solver",
                        "stepDays",
                        "voidOfCourse",
                        "houseSampleMinutes",
                        "boundarySeconds",
                        "resolutionSeconds",
                        "fullCalculationCost",
                        "samples",
                        "maxSamples",
                        "window",
                        "completeness"
                      ],
                      "properties": {
                        "solver": {
                          "const": "engine-longitude-crossings-and-sampled-houses"
                        },
                        "window": {
                          "const": "start-inclusive-end-exclusive"
                        },
                        "samples": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "stepDays": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "number"
                          }
                        },
                        "maxSamples": {
                          "type": "integer"
                        },
                        "completeness": {
                          "const": "tested-not-proven"
                        },
                        "voidOfCourse": {
                          "type": "object",
                          "required": [
                            "convention",
                            "bodies",
                            "scanHours"
                          ],
                          "properties": {
                            "bodies": {
                              "const": "modern"
                            },
                            "scanHours": {
                              "type": "number"
                            },
                            "convention": {
                              "const": "last-exact-ptolemaic-aspect-to-sign-exit"
                            }
                          }
                        },
                        "boundarySeconds": {
                          "const": 1
                        },
                        "resolutionSeconds": {
                          "const": 2
                        },
                        "houseSampleMinutes": {
                          "const": 60
                        },
                        "fullCalculationCost": {
                          "const": 25
                        }
                      },
                      "description": "How an election search ran: the crossing search's steps for sign changes, stations and phases; the void-of-course rule and the step of its scan for the Moon's last aspect; the house sampling; the evaluations made, where a crossing step counts once and a full calculation, all the positions at an instant or a natalChart for a house, counts as fullCalculationCost. Every window's ends are within a second, so a gap shorter than resolutionSeconds between two windows is closed and a window shorter than it is not listed: two boundaries that close may be one instant found twice."
                    },
                    "timeResolution": {
                      "type": "object",
                      "required": [
                        "resolver",
                        "policy",
                        "pinnedTzdb",
                        "runtimeTzdb"
                      ],
                      "properties": {
                        "policy": {
                          "type": "object",
                          "properties": {
                            "gap": {
                              "const": "shift-forward"
                            },
                            "fold": {
                              "const": "earlier"
                            }
                          }
                        },
                        "resolver": {
                          "type": "string"
                        },
                        "pinnedTzdb": {
                          "type": "object"
                        },
                        "runtimeTzdb": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      }
                    }
                  },
                  "description": "The receipt for a calculation the engine writes no receipt for: the engine, its conventions and coverage as its own receipts state them, and what this request used."
                }
              },
              "additionalProperties": false
            },
            "completeness": {
              "type": "string",
              "const": "tested-not-proven"
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "get_upcoming_events"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_capabilities",
            "get_sky",
            "get_upcoming_events",
            "check_sky_fact",
            "get_horoscope",
            "open_chart_studio",
            "get_occasion_sky",
            "get_life_milestones",
            "get_compatibility",
            "find_chart_twins",
            "get_famous_chart",
            "get_birthday",
            "get_sky_calendar"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
get_upcoming_events annotations
{
  "title": "Sky calendar",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
check_sky_fact — Check a sky fact
Advertised by the server during the last successful anonymous check.
Advertised read-only

Checks a claim such as 'Is Mercury retrograde today?' or 'Did the Sun enter Libra on 23 September?' and answers yes, no, or that it depends on the time zone when the answer changes during that day. Use instant or date for sign and retrograde checks, date for ingress and Moon-phase checks. Astronomy only; it cannot check predictions. API documentation: https://zodiacs.org/developers/compute/ .

check_sky_fact input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "kind"
  ],
  "properties": {
    "body": {
      "enum": [
        "Sun",
        "Moon",
        "Mercury",
        "Venus",
        "Mars",
        "Jupiter",
        "Saturn",
        "Uranus",
        "Neptune",
        "Pluto"
      ],
      "type": "string"
    },
    "date": {
      "type": "string",
      "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$"
    },
    "kind": {
      "enum": [
        "sign",
        "retrograde",
        "ingress",
        "phase"
      ],
      "type": "string"
    },
    "sign": {
      "enum": [
        "aries",
        "taurus",
        "gemini",
        "cancer",
        "leo",
        "virgo",
        "libra",
        "scorpio",
        "sagittarius",
        "capricorn",
        "aquarius",
        "pisces"
      ],
      "type": "string"
    },
    "zone": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_+-]*(?:\\/[A-Za-z0-9_+-]+){0,3}$",
      "maxLength": 64,
      "minLength": 1,
      "description": "The person's time zone, such as Asia/Bangkok or America/New_York. Without it, times are in UTC."
    },
    "phase": {
      "enum": [
        "new",
        "first-quarter",
        "full",
        "last-quarter"
      ],
      "type": "string"
    },
    "instant": {
      "type": "string",
      "maxLength": 29,
      "minLength": 20,
      "description": "A moment as an ISO 8601 time with Z or an offset, such as 2026-10-08T09:00:00+07:00 (years 1800–2199)."
    }
  },
  "additionalProperties": false
}
check_sky_fact output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "answer",
            "calculation",
            "interpretation"
          ],
          "properties": {
            "answer": {
              "enum": [
                "true",
                "false",
                "depends"
              ],
              "type": "string"
            },
            "calculation": {
              "type": "object",
              "required": [
                "schema",
                "result",
                "receipt",
                "backend",
                "cite"
              ],
              "properties": {
                "cite": {
                  "type": "object",
                  "required": [
                    "url",
                    "receipt",
                    "engine",
                    "version"
                  ],
                  "properties": {
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "engine": {
                      "type": "string"
                    },
                    "receipt": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                "result": {
                  "type": "object",
                  "required": [
                    "answer",
                    "basis",
                    "fact",
                    "instant",
                    "window",
                    "zone",
                    "facts"
                  ],
                  "properties": {
                    "fact": {
                      "type": "object",
                      "required": [
                        "kind",
                        "date",
                        "zone"
                      ],
                      "properties": {
                        "body": {
                          "enum": [
                            "Sun",
                            "Moon",
                            "Mercury",
                            "Venus",
                            "Mars",
                            "Jupiter",
                            "Saturn",
                            "Uranus",
                            "Neptune",
                            "Pluto"
                          ]
                        },
                        "date": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^(?:18|19|20|21)\\d{2}-(?:0[1-9]|1[0-2])-(?:0[1-9]|[12]\\d|3[01])$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "kind": {
                          "enum": [
                            "sign",
                            "retrograde",
                            "ingress",
                            "phase",
                            "aspect"
                          ]
                        },
                        "sign": {
                          "enum": [
                            "aries",
                            "taurus",
                            "gemini",
                            "cancer",
                            "leo",
                            "virgo",
                            "libra",
                            "scorpio",
                            "sagittarius",
                            "capricorn",
                            "aquarius",
                            "pisces"
                          ]
                        },
                        "zone": {
                          "anyOf": [
                            {
                              "type": "string",
                              "description": "The zone as tzdb spells it."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "other": {
                          "enum": [
                            "Sun",
                            "Moon",
                            "Mercury",
                            "Venus",
                            "Mars",
                            "Jupiter",
                            "Saturn",
                            "Uranus",
                            "Neptune",
                            "Pluto"
                          ]
                        },
                        "phase": {
                          "enum": [
                            "new",
                            "first-quarter",
                            "full",
                            "last-quarter"
                          ]
                        },
                        "aspect": {
                          "enum": [
                            "conjunction",
                            "sextile",
                            "square",
                            "trine",
                            "opposition"
                          ]
                        },
                        "instant": {
                          "anyOf": [
                            {
                              "type": "string",
                              "format": "date-time"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "description": "The fact as the server read it, with the zone as tzdb spells it."
                    },
                    "zone": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "start",
                            "end"
                          ],
                          "properties": {
                            "end": {
                              "allOf": [
                                {
                                  "type": "object",
                                  "required": [
                                    "offsetMinutes",
                                    "flags",
                                    "localMeanTime",
                                    "zoneHistory",
                                    "zoneUncertain"
                                  ],
                                  "properties": {
                                    "flags": {
                                      "type": "array",
                                      "items": {
                                        "enum": [
                                          "dst-gap",
                                          "dst-fold",
                                          "lmt"
                                        ]
                                      }
                                    },
                                    "zoneHistory": {
                                      "enum": [
                                        "pinned",
                                        "runtime"
                                      ]
                                    },
                                    "localMeanTime": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "required": [
                                            "longitude",
                                            "zoneOffsetMinutes"
                                          ],
                                          "properties": {
                                            "longitude": {
                                              "type": "number"
                                            },
                                            "zoneOffsetMinutes": {
                                              "type": "number"
                                            }
                                          }
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "offsetMinutes": {
                                      "type": "number",
                                      "description": "Minutes east of UTC; fractional before standard time."
                                    },
                                    "zoneUncertain": {
                                      "type": "boolean"
                                    }
                                  },
                                  "description": "How a local time was read: the offset applied, the resolver's flags, the birthplace's own mean time if it was used, and which zone history gave the offset."
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "utc"
                                  ],
                                  "properties": {
                                    "utc": {
                                      "type": "string",
                                      "format": "date-time"
                                    }
                                  }
                                }
                              ],
                              "description": "A midnight of the day in its zone: the instant, and how the local time was read."
                            },
                            "start": {
                              "allOf": [
                                {
                                  "type": "object",
                                  "required": [
                                    "offsetMinutes",
                                    "flags",
                                    "localMeanTime",
                                    "zoneHistory",
                                    "zoneUncertain"
                                  ],
                                  "properties": {
                                    "flags": {
                                      "type": "array",
                                      "items": {
                                        "enum": [
                                          "dst-gap",
                                          "dst-fold",
                                          "lmt"
                                        ]
                                      }
                                    },
                                    "zoneHistory": {
                                      "enum": [
                                        "pinned",
                                        "runtime"
                                      ]
                                    },
                                    "localMeanTime": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "required": [
                                            "longitude",
                                            "zoneOffsetMinutes"
                                          ],
                                          "properties": {
                                            "longitude": {
                                              "type": "number"
                                            },
                                            "zoneOffsetMinutes": {
                                              "type": "number"
                                            }
                                          }
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "offsetMinutes": {
                                      "type": "number",
                                      "description": "Minutes east of UTC; fractional before standard time."
                                    },
                                    "zoneUncertain": {
                                      "type": "boolean"
                                    }
                                  },
                                  "description": "How a local time was read: the offset applied, the resolver's flags, the birthplace's own mean time if it was used, and which zone history gave the offset."
                                },
                                {
                                  "type": "object",
                                  "required": [
                                    "utc"
                                  ],
                                  "properties": {
                                    "utc": {
                                      "type": "string",
                                      "format": "date-time"
                                    }
                                  }
                                }
                              ],
                              "description": "A midnight of the day in its zone: the instant, and how the local time was read."
                            }
                          },
                          "description": "The two midnights of a day read in a zone."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "basis": {
                      "enum": [
                        "instant",
                        "local-day",
                        "any-zone-day"
                      ]
                    },
                    "facts": {
                      "oneOf": [
                        {
                          "type": "object",
                          "required": [
                            "lon",
                            "sign",
                            "degree",
                            "speed",
                            "retrograde",
                            "deltaT",
                            "timeScale",
                            "flags"
                          ],
                          "properties": {
                            "lon": {
                              "type": "number"
                            },
                            "sign": {
                              "enum": [
                                "aries",
                                "taurus",
                                "gemini",
                                "cancer",
                                "leo",
                                "virgo",
                                "libra",
                                "scorpio",
                                "sagittarius",
                                "capricorn",
                                "aquarius",
                                "pisces"
                              ]
                            },
                            "flags": {
                              "type": "array",
                              "items": {
                                "const": "outside-reference-span"
                              },
                              "maxItems": 1
                            },
                            "speed": {
                              "type": "number"
                            },
                            "degree": {
                              "type": "number"
                            },
                            "deltaT": {
                              "type": "object",
                              "required": [
                                "seconds",
                                "sigma",
                                "model",
                                "table",
                                "tableDigest",
                                "segment"
                              ],
                              "properties": {
                                "model": {
                                  "enum": [
                                    "iers-utc/1",
                                    "zodiacs-deltat/1"
                                  ]
                                },
                                "sigma": {
                                  "type": "number"
                                },
                                "table": {
                                  "type": "string"
                                },
                                "seconds": {
                                  "type": "number"
                                },
                                "segment": {
                                  "enum": [
                                    "long-term",
                                    "reconstructed",
                                    "observed",
                                    "predicted",
                                    "extrapolated"
                                  ]
                                },
                                "tableDigest": {
                                  "type": "string"
                                }
                              },
                              "description": "ΔT = TT − UT1 in seconds, with its 1-sigma band and where it came from, as the engine reports it for a chart at the instant: iers-utc/1 from 1972 to the end of the engine's UT1 table, its model zodiacs-deltat/1 otherwise."
                            },
                            "timeScale": {
                              "type": "object",
                              "required": [
                                "input",
                                "basis",
                                "ut1MinusUtc",
                                "leapSeconds"
                              ],
                              "properties": {
                                "basis": {
                                  "enum": [
                                    "iers",
                                    "delta-t"
                                  ]
                                },
                                "input": {
                                  "const": "utc"
                                },
                                "leapSeconds": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "required": [
                                        "taiMinusUtc",
                                        "listed"
                                      ],
                                      "properties": {
                                        "listed": {
                                          "type": "boolean"
                                        },
                                        "taiMinusUtc": {
                                          "type": "number"
                                        }
                                      },
                                      "description": "TAI − UTC in seconds from the IERS leap-second list; listed is false after the list expires and its last value is carried."
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "ut1MinusUtc": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "required": [
                                        "seconds",
                                        "sigma",
                                        "source"
                                      ],
                                      "properties": {
                                        "sigma": {
                                          "type": "number"
                                        },
                                        "source": {
                                          "enum": [
                                            "observed",
                                            "predicted",
                                            "fallback"
                                          ]
                                        },
                                        "seconds": {
                                          "type": "number"
                                        }
                                      },
                                      "description": "UT1 − UTC in seconds as the engine used it, with its 1-sigma band and its source: observed or predicted by IERS, or fallback after the table ends; null before 1972."
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "description": "How the engine read the instant, as a chart reports it. basis iers, from 1972 to the end of its UT1 table: TT is UTC plus the leap seconds and 32.184 s, and UT1 is UTC plus IERS UT1 − UTC. basis delta-t, otherwise: the instant is read as UT1, and TT is UT1 plus the ΔT model."
                            },
                            "retrograde": {
                              "type": "boolean"
                            },
                            "boundaryMarginArcsec": {
                              "type": "number",
                              "minimum": 0,
                              "description": "For a sign fact: the distance to the nearer sign boundary."
                            }
                          },
                          "description": "At an instant."
                        },
                        {
                          "type": "object",
                          "required": [
                            "atStart",
                            "atEnd",
                            "changes",
                            "flags"
                          ],
                          "properties": {
                            "atEnd": {
                              "type": "object",
                              "required": [
                                "lon",
                                "sign",
                                "degree",
                                "speed",
                                "retrograde"
                              ],
                              "properties": {
                                "lon": {
                                  "type": "number"
                                },
                                "sign": {
                                  "enum": [
                                    "aries",
                                    "taurus",
                                    "gemini",
                                    "cancer",
                                    "leo",
                                    "virgo",
                                    "libra",
                                    "scorpio",
                                    "sagittarius",
                                    "capricorn",
                                    "aquarius",
                                    "pisces"
                                  ]
                                },
                                "speed": {
                                  "type": "number"
                                },
                                "degree": {
                                  "type": "number"
                                },
                                "retrograde": {
                                  "type": "boolean"
                                }
                              },
                              "description": "A body's longitude, sign, degree, speed and direction at one instant."
                            },
                            "flags": {
                              "type": "array",
                              "items": {
                                "const": "outside-reference-span"
                              },
                              "maxItems": 1
                            },
                            "atStart": {
                              "type": "object",
                              "required": [
                                "lon",
                                "sign",
                                "degree",
                                "speed",
                                "retrograde"
                              ],
                              "properties": {
                                "lon": {
                                  "type": "number"
                                },
                                "sign": {
                                  "enum": [
                                    "aries",
                                    "taurus",
                                    "gemini",
                                    "cancer",
                                    "leo",
                                    "virgo",
                                    "libra",
                                    "scorpio",
                                    "sagittarius",
                                    "capricorn",
                                    "aquarius",
                                    "pisces"
                                  ]
                                },
                                "speed": {
                                  "type": "number"
                                },
                                "degree": {
                                  "type": "number"
                                },
                                "retrograde": {
                                  "type": "boolean"
                                }
                              },
                              "description": "A body's longitude, sign, degree, speed and direction at one instant."
                            },
                            "changes": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "required": [
                                  "at",
                                  "into",
                                  "retrograde"
                                ],
                                "properties": {
                                  "at": {
                                    "type": "string",
                                    "format": "date-time"
                                  },
                                  "into": {
                                    "enum": [
                                      "aries",
                                      "taurus",
                                      "gemini",
                                      "cancer",
                                      "leo",
                                      "virgo",
                                      "libra",
                                      "scorpio",
                                      "sagittarius",
                                      "capricorn",
                                      "aquarius",
                                      "pisces"
                                    ]
                                  },
                                  "retrograde": {
                                    "type": "boolean"
                                  }
                                }
                              }
                            }
                          },
                          "description": "A sign on a day: the sign changes in the day."
                        },
                        {
                          "type": "object",
                          "required": [
                            "atStart",
                            "atEnd",
                            "stations",
                            "flags"
                          ],
                          "properties": {
                            "atEnd": {
                              "type": "object",
                              "required": [
                                "lon",
                                "sign",
                                "degree",
                                "speed",
                                "retrograde"
                              ],
                              "properties": {
                                "lon": {
                                  "type": "number"
                                },
                                "sign": {
                                  "enum": [
                                    "aries",
                                    "taurus",
                                    "gemini",
                                    "cancer",
                                    "leo",
                                    "virgo",
                                    "libra",
                                    "scorpio",
                                    "sagittarius",
                                    "capricorn",
                                    "aquarius",
                                    "pisces"
                                  ]
                                },
                                "speed": {
                                  "type": "number"
                                },
                                "degree": {
                                  "type": "number"
                                },
                                "retrograde": {
                                  "type": "boolean"
                                }
                              },
                              "description": "A body's longitude, sign, degree, speed and direction at one instant."
                            },
                            "flags": {
                              "type": "array",
                              "items": {
                                "const": "outside-reference-span"
                              },
                              "maxItems": 1
                            },
                            "atStart": {
                              "type": "object",
                              "required": [
                                "lon",
                                "sign",
                                "degree",
                                "speed",
                                "retrograde"
                              ],
                              "properties": {
                                "lon": {
                                  "type": "number"
                                },
                                "sign": {
                                  "enum": [
                                    "aries",
                                    "taurus",
                                    "gemini",
                                    "cancer",
                                    "leo",
                                    "virgo",
                                    "libra",
                                    "scorpio",
                                    "sagittarius",
                                    "capricorn",
                                    "aquarius",
                                    "pisces"
                                  ]
                                },
                                "speed": {
                                  "type": "number"
                                },
                                "degree": {
                                  "type": "number"
                                },
                                "retrograde": {
                                  "type": "boolean"
                                }
                              },
                              "description": "A body's longitude, sign, degree, speed and direction at one instant."
                            },
                            "stations": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "required": [
                                  "at",
                                  "type"
                                ],
                                "properties": {
                                  "at": {
                                    "type": "string",
                                    "format": "date-time"
                                  },
                                  "type": {
                                    "enum": [
                                      "retrograde",
                                      "direct"
                                    ]
                                  }
                                }
                              }
                            }
                          },
                          "description": "Retrograde on a day: the stations in the day."
                        },
                        {
                          "type": "object",
                          "required": [
                            "ingresses",
                            "flags"
                          ],
                          "properties": {
                            "flags": {
                              "type": "array",
                              "items": {
                                "const": "outside-reference-span"
                              },
                              "maxItems": 1
                            },
                            "ingresses": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "required": [
                                  "at",
                                  "retrograde"
                                ],
                                "properties": {
                                  "at": {
                                    "type": "string",
                                    "format": "date-time"
                                  },
                                  "retrograde": {
                                    "type": "boolean"
                                  }
                                }
                              }
                            }
                          },
                          "description": "An ingress on a day."
                        },
                        {
                          "type": "object",
                          "required": [
                            "lunations",
                            "flags"
                          ],
                          "properties": {
                            "flags": {
                              "type": "array",
                              "items": {
                                "const": "outside-reference-span"
                              },
                              "maxItems": 1
                            },
                            "lunations": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "required": [
                                  "at",
                                  "lon",
                                  "sign",
                                  "degree"
                                ],
                                "properties": {
                                  "at": {
                                    "type": "string",
                                    "format": "date-time"
                                  },
                                  "lon": {
                                    "type": "number"
                                  },
                                  "sign": {
                                    "enum": [
                                      "aries",
                                      "taurus",
                                      "gemini",
                                      "cancer",
                                      "leo",
                                      "virgo",
                                      "libra",
                                      "scorpio",
                                      "sagittarius",
                                      "capricorn",
                                      "aquarius",
                                      "pisces"
                                    ]
                                  },
                                  "degree": {
                                    "type": "number"
                                  }
                                }
                              }
                            }
                          },
                          "description": "A phase on a day."
                        },
                        {
                          "allOf": [
                            {
                              "type": "object",
                              "required": [
                                "body",
                                "other",
                                "separation",
                                "orb",
                                "motion"
                              ],
                              "properties": {
                                "orb": {
                                  "type": "number",
                                  "minimum": 0,
                                  "description": "How far the separation is from the aspect's exact angle, in degrees."
                                },
                                "body": {
                                  "type": "object",
                                  "required": [
                                    "lon",
                                    "sign",
                                    "degree",
                                    "speed",
                                    "retrograde"
                                  ],
                                  "properties": {
                                    "lon": {
                                      "type": "number"
                                    },
                                    "sign": {
                                      "enum": [
                                        "aries",
                                        "taurus",
                                        "gemini",
                                        "cancer",
                                        "leo",
                                        "virgo",
                                        "libra",
                                        "scorpio",
                                        "sagittarius",
                                        "capricorn",
                                        "aquarius",
                                        "pisces"
                                      ]
                                    },
                                    "speed": {
                                      "type": "number"
                                    },
                                    "degree": {
                                      "type": "number"
                                    },
                                    "retrograde": {
                                      "type": "boolean"
                                    }
                                  },
                                  "description": "A body's longitude, sign, degree, speed and direction at one instant."
                                },
                                "other": {
                                  "type": "object",
                                  "required": [
                                    "lon",
                                    "sign",
                                    "degree",
                                    "speed",
                                    "retrograde"
                                  ],
                                  "properties": {
                                    "lon": {
                                      "type": "number"
                                    },
                                    "sign": {
                                      "enum": [
                                        "aries",
                                        "taurus",
                                        "gemini",
                                        "cancer",
                                        "leo",
                                        "virgo",
                                        "libra",
                                        "scorpio",
                                        "sagittarius",
                                        "capricorn",
                                        "aquarius",
                                        "pisces"
                                      ]
                                    },
                                    "speed": {
                                      "type": "number"
                                    },
                                    "degree": {
                                      "type": "number"
                                    },
                                    "retrograde": {
                                      "type": "boolean"
                                    }
                                  },
                                  "description": "A body's longitude, sign, degree, speed and direction at one instant."
                                },
                                "motion": {
                                  "enum": [
                                    "applying",
                                    "separating",
                                    "stationary"
                                  ],
                                  "description": "applying while the orb shrinks, separating while it grows, judged from the two daily motions; stationary when the two move at the same speed."
                                },
                                "separation": {
                                  "type": "number",
                                  "maximum": 180,
                                  "minimum": 0,
                                  "description": "The angle between the two longitudes, in degrees."
                                }
                              },
                              "description": "The two bodies at one instant and the aspect between them."
                            },
                            {
                              "type": "object",
                              "required": [
                                "allowedOrb",
                                "deltaT",
                                "timeScale",
                                "flags"
                              ],
                              "properties": {
                                "flags": {
                                  "type": "array",
                                  "items": {
                                    "const": "outside-reference-span"
                                  },
                                  "maxItems": 1
                                },
                                "deltaT": {
                                  "type": "object",
                                  "required": [
                                    "seconds",
                                    "sigma",
                                    "model",
                                    "table",
                                    "tableDigest",
                                    "segment"
                                  ],
                                  "properties": {
                                    "model": {
                                      "enum": [
                                        "iers-utc/1",
                                        "zodiacs-deltat/1"
                                      ]
                                    },
                                    "sigma": {
                                      "type": "number"
                                    },
                                    "table": {
                                      "type": "string"
                                    },
                                    "seconds": {
                                      "type": "number"
                                    },
                                    "segment": {
                                      "enum": [
                                        "long-term",
                                        "reconstructed",
                                        "observed",
                                        "predicted",
                                        "extrapolated"
                                      ]
                                    },
                                    "tableDigest": {
                                      "type": "string"
                                    }
                                  },
                                  "description": "ΔT = TT − UT1 in seconds, with its 1-sigma band and where it came from, as the engine reports it for a chart at the instant: iers-utc/1 from 1972 to the end of the engine's UT1 table, its model zodiacs-deltat/1 otherwise."
                                },
                                "timeScale": {
                                  "type": "object",
                                  "required": [
                                    "input",
                                    "basis",
                                    "ut1MinusUtc",
                                    "leapSeconds"
                                  ],
                                  "properties": {
                                    "basis": {
                                      "enum": [
                                        "iers",
                                        "delta-t"
                                      ]
                                    },
                                    "input": {
                                      "const": "utc"
                                    },
                                    "leapSeconds": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "required": [
                                            "taiMinusUtc",
                                            "listed"
                                          ],
                                          "properties": {
                                            "listed": {
                                              "type": "boolean"
                                            },
                                            "taiMinusUtc": {
                                              "type": "number"
                                            }
                                          },
                                          "description": "TAI − UTC in seconds from the IERS leap-second list; listed is false after the list expires and its last value is carried."
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "ut1MinusUtc": {
                                      "anyOf": [
                                        {
                                          "type": "object",
                                          "required": [
                                            "seconds",
                                            "sigma",
                                            "source"
                                          ],
                                          "properties": {
                                            "sigma": {
                                              "type": "number"
                                            },
                                            "source": {
                                              "enum": [
                                                "observed",
                                                "predicted",
                                                "fallback"
                                              ]
                                            },
                                            "seconds": {
                                              "type": "number"
                                            }
                                          },
                                          "description": "UT1 − UTC in seconds as the engine used it, with its 1-sigma band and its source: observed or predicted by IERS, or fallback after the table ends; null before 1972."
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    }
                                  },
                                  "description": "How the engine read the instant, as a chart reports it. basis iers, from 1972 to the end of its UT1 table: TT is UTC plus the leap seconds and 32.184 s, and UT1 is UTC plus IERS UT1 − UTC. basis delta-t, otherwise: the instant is read as UT1, and TT is UT1 plus the ΔT model."
                                },
                                "allowedOrb": {
                                  "type": "number",
                                  "minimum": 0,
                                  "description": "The widest orb at which the aspect holds between these two bodies, in degrees: the wider one when the Sun or the Moon is one of them."
                                }
                              }
                            }
                          ],
                          "description": "An aspect at an instant: true when the orb is within allowedOrb."
                        },
                        {
                          "type": "object",
                          "required": [
                            "atStart",
                            "atEnd",
                            "allowedOrb",
                            "changes",
                            "exact",
                            "flags"
                          ],
                          "properties": {
                            "atEnd": {
                              "type": "object",
                              "required": [
                                "body",
                                "other",
                                "separation",
                                "orb",
                                "motion"
                              ],
                              "properties": {
                                "orb": {
                                  "type": "number",
                                  "minimum": 0,
                                  "description": "How far the separation is from the aspect's exact angle, in degrees."
                                },
                                "body": {
                                  "type": "object",
                                  "required": [
                                    "lon",
                                    "sign",
                                    "degree",
                                    "speed",
                                    "retrograde"
                                  ],
                                  "properties": {
                                    "lon": {
                                      "type": "number"
                                    },
                                    "sign": {
                                      "enum": [
                                        "aries",
                                        "taurus",
                                        "gemini",
                                        "cancer",
                                        "leo",
                                        "virgo",
                                        "libra",
                                        "scorpio",
                                        "sagittarius",
                                        "capricorn",
                                        "aquarius",
                                        "pisces"
                                      ]
                                    },
                                    "speed": {
                                      "type": "number"
                                    },
                                    "degree": {
                                      "type": "number"
                                    },
                                    "retrograde": {
                                      "type": "boolean"
                                    }
                                  },
                                  "description": "A body's longitude, sign, degree, speed and direction at one instant."
                                },
                                "other": {
                                  "type": "object",
                                  "required": [
                                    "lon",
                                    "sign",
                                    "degree",
                                    "speed",
                                    "retrograde"
                                  ],
                                  "properties": {
                                    "lon": {
                                      "type": "number"
                                    },
                                    "sign": {
                                      "enum": [
                                        "aries",
                                        "taurus",
                                        "gemini",
                                        "cancer",
                                        "leo",
                                        "virgo",
                                        "libra",
                                        "scorpio",
                                        "sagittarius",
                                        "capricorn",
                                        "aquarius",
                                        "pisces"
                                      ]
                                    },
                                    "speed": {
                                      "type": "number"
                                    },
                                    "degree": {
                                      "type": "number"
                                    },
                                    "retrograde": {
                                      "type": "boolean"
                                    }
                                  },
                                  "description": "A body's longitude, sign, degree, speed and direction at one instant."
                                },
                                "motion": {
                                  "enum": [
                                    "applying",
                                    "separating",
                                    "stationary"
                                  ],
                                  "description": "applying while the orb shrinks, separating while it grows, judged from the two daily motions; stationary when the two move at the same speed."
                                },
                                "separation": {
                                  "type": "number",
                                  "maximum": 180,
                                  "minimum": 0,
                                  "description": "The angle between the two longitudes, in degrees."
                                }
                              },
                              "description": "The two bodies at one instant and the aspect between them."
                            },
                            "exact": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "required": [
                                  "at",
                                  "body",
                                  "other"
                                ],
                                "properties": {
                                  "at": {
                                    "type": "string",
                                    "format": "date-time"
                                  },
                                  "body": {
                                    "type": "object",
                                    "required": [
                                      "lon",
                                      "sign",
                                      "degree"
                                    ],
                                    "properties": {
                                      "lon": {
                                        "type": "number"
                                      },
                                      "sign": {
                                        "enum": [
                                          "aries",
                                          "taurus",
                                          "gemini",
                                          "cancer",
                                          "leo",
                                          "virgo",
                                          "libra",
                                          "scorpio",
                                          "sagittarius",
                                          "capricorn",
                                          "aquarius",
                                          "pisces"
                                        ]
                                      },
                                      "degree": {
                                        "type": "number"
                                      }
                                    },
                                    "description": "A longitude, with its sign and the degree within it."
                                  },
                                  "other": {
                                    "type": "object",
                                    "required": [
                                      "lon",
                                      "sign",
                                      "degree"
                                    ],
                                    "properties": {
                                      "lon": {
                                        "type": "number"
                                      },
                                      "sign": {
                                        "enum": [
                                          "aries",
                                          "taurus",
                                          "gemini",
                                          "cancer",
                                          "leo",
                                          "virgo",
                                          "libra",
                                          "scorpio",
                                          "sagittarius",
                                          "capricorn",
                                          "aquarius",
                                          "pisces"
                                        ]
                                      },
                                      "degree": {
                                        "type": "number"
                                      }
                                    },
                                    "description": "A longitude, with its sign and the degree within it."
                                  }
                                }
                              }
                            },
                            "flags": {
                              "type": "array",
                              "items": {
                                "const": "outside-reference-span"
                              },
                              "maxItems": 1
                            },
                            "atStart": {
                              "type": "object",
                              "required": [
                                "body",
                                "other",
                                "separation",
                                "orb",
                                "motion"
                              ],
                              "properties": {
                                "orb": {
                                  "type": "number",
                                  "minimum": 0,
                                  "description": "How far the separation is from the aspect's exact angle, in degrees."
                                },
                                "body": {
                                  "type": "object",
                                  "required": [
                                    "lon",
                                    "sign",
                                    "degree",
                                    "speed",
                                    "retrograde"
                                  ],
                                  "properties": {
                                    "lon": {
                                      "type": "number"
                                    },
                                    "sign": {
                                      "enum": [
                                        "aries",
                                        "taurus",
                                        "gemini",
                                        "cancer",
                                        "leo",
                                        "virgo",
                                        "libra",
                                        "scorpio",
                                        "sagittarius",
                                        "capricorn",
                                        "aquarius",
                                        "pisces"
                                      ]
                                    },
                                    "speed": {
                                      "type": "number"
                                    },
                                    "degree": {
                                      "type": "number"
                                    },
                                    "retrograde": {
                                      "type": "boolean"
                                    }
                                  },
                                  "description": "A body's longitude, sign, degree, speed and direction at one instant."
                                },
                                "other": {
                                  "type": "object",
                                  "required": [
                                    "lon",
                                    "sign",
                                    "degree",
                                    "speed",
                                    "retrograde"
                                  ],
                                  "properties": {
                                    "lon": {
                                      "type": "number"
                                    },
                                    "sign": {
                                      "enum": [
                                        "aries",
                                        "taurus",
                                        "gemini",
                                        "cancer",
                                        "leo",
                                        "virgo",
                                        "libra",
                                        "scorpio",
                                        "sagittarius",
                                        "capricorn",
                                        "aquarius",
                                        "pisces"
                                      ]
                                    },
                                    "speed": {
                                      "type": "number"
                                    },
                                    "degree": {
                                      "type": "number"
                                    },
                                    "retrograde": {
                                      "type": "boolean"
                                    }
                                  },
                                  "description": "A body's longitude, sign, degree, speed and direction at one instant."
                                },
                                "motion": {
                                  "enum": [
                                    "applying",
                                    "separating",
                                    "stationary"
                                  ],
                                  "description": "applying while the orb shrinks, separating while it grows, judged from the two daily motions; stationary when the two move at the same speed."
                                },
                                "separation": {
                                  "type": "number",
                                  "maximum": 180,
                                  "minimum": 0,
                                  "description": "The angle between the two longitudes, in degrees."
                                }
                              },
                              "description": "The two bodies at one instant and the aspect between them."
                            },
                            "changes": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "required": [
                                  "at",
                                  "holds"
                                ],
                                "properties": {
                                  "at": {
                                    "type": "string",
                                    "format": "date-time"
                                  },
                                  "holds": {
                                    "type": "boolean",
                                    "description": "Whether the aspect holds from this instant on: true where it begins, false where it ends."
                                  }
                                }
                              }
                            },
                            "allowedOrb": {
                              "type": "number",
                              "minimum": 0,
                              "description": "The widest orb at which the aspect holds between these two bodies, in degrees: the wider one when the Sun or the Moon is one of them."
                            }
                          },
                          "description": "An aspect on a day: where it begins or ends in the day, and where it is exact."
                        }
                      ],
                      "description": "The computed values that decide the answer. At an instant: the body's state there, or for an aspect both bodies' states, their separation, the orb and whether it is shrinking. On a day: the state at its start and end with the sign changes, stations or aspect changes between, or the ingresses or lunations in it. flags holds outside-reference-span when the instant or the day reaches past the instant span."
                    },
                    "answer": {
                      "enum": [
                        "true",
                        "false",
                        "depends"
                      ]
                    },
                    "window": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "from",
                            "to"
                          ],
                          "properties": {
                            "to": {
                              "type": "string",
                              "format": "date-time"
                            },
                            "from": {
                              "type": "string",
                              "format": "date-time"
                            }
                          },
                          "description": "The day read: from its start (included) to its end (excluded)."
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "instant": {
                      "anyOf": [
                        {
                          "type": "string",
                          "format": "date-time"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                },
                "schema": {
                  "type": "string"
                },
                "backend": {
                  "type": "object",
                  "required": [
                    "name",
                    "version",
                    "ephemeris"
                  ],
                  "properties": {
                    "name": {
                      "const": "@zodiacs/engine"
                    },
                    "version": {
                      "type": "string"
                    },
                    "ephemeris": {
                      "type": "object",
                      "required": [
                        "name",
                        "version"
                      ],
                      "properties": {
                        "name": {
                          "const": "astronomy-engine"
                        },
                        "version": {
                          "type": "string"
                        }
                      }
                    }
                  }
                },
                "receipt": {
                  "type": "object",
                  "required": [
                    "schema",
                    "endpoint",
                    "engine",
                    "conventions",
                    "coverage",
                    "referenceSpan",
                    "deltaT",
                    "conventionIds"
                  ],
                  "properties": {
                    "deltaT": {
                      "type": "array",
                      "maxItems": 2,
                      "minItems": 2,
                      "description": "The two sources of ΔT the engine's time basis uses: IERS from 1972 to the end of its UT1 table, then its model. A result that gives an instant's ΔT names which applied.",
                      "prefixItems": [
                        {
                          "type": "object",
                          "required": [
                            "model",
                            "table",
                            "tableDigest"
                          ],
                          "properties": {
                            "model": {
                              "const": "iers-utc/1"
                            },
                            "table": {
                              "type": "string"
                            },
                            "tableDigest": {
                              "type": "string"
                            }
                          }
                        },
                        {
                          "type": "object",
                          "required": [
                            "model",
                            "table",
                            "tableDigest"
                          ],
                          "properties": {
                            "model": {
                              "const": "zodiacs-deltat/1"
                            },
                            "table": {
                              "type": "string"
                            },
                            "tableDigest": {
                              "type": "string"
                            }
                          }
                        }
                      ]
                    },
                    "engine": {
                      "type": "object",
                      "required": [
                        "name",
                        "version",
                        "ephemeris"
                      ],
                      "properties": {
                        "name": {
                          "const": "@zodiacs/engine"
                        },
                        "version": {
                          "type": "string"
                        },
                        "ephemeris": {
                          "type": "object",
                          "required": [
                            "name",
                            "version"
                          ],
                          "properties": {
                            "name": {
                              "const": "astronomy-engine"
                            },
                            "version": {
                              "type": "string"
                            }
                          }
                        }
                      }
                    },
                    "schema": {
                      "const": "zodiacs.compute-receipt.v1"
                    },
                    "search": {
                      "type": "object",
                      "required": [
                        "solver",
                        "stepDays",
                        "bisections",
                        "samples",
                        "maxSamples",
                        "window",
                        "completeness"
                      ],
                      "properties": {
                        "solver": {
                          "const": "engine-longitude-crossings"
                        },
                        "window": {
                          "const": "start-exclusive-end-inclusive"
                        },
                        "samples": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "stepDays": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "number"
                          }
                        },
                        "bisections": {
                          "type": "integer"
                        },
                        "maxSamples": {
                          "type": "integer"
                        },
                        "completeness": {
                          "const": "tested-not-proven"
                        }
                      }
                    },
                    "coverage": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "endpoint": {
                      "enum": [
                        "chart",
                        "positions",
                        "houses",
                        "events",
                        "time",
                        "sky-fact",
                        "elections"
                      ]
                    },
                    "conventions": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    },
                    "conventionIds": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "pattern": "^[A-Za-z][A-Za-z0-9-]*:\\S+$"
                      },
                      "description": "Every id of the Zodiacs conventions registry (https://zodiacs.org/developers/conventions/) that this receipt's own fields name, in code-unit order, each once: each conventions and coverage field, the ephemeris, the endpoint, each ΔT source's model, how local times were read and how a search ran. The result's are left out, so the receipt holds nothing the request gave.",
                      "uniqueItems": true
                    },
                    "referenceSpan": {
                      "type": "object",
                      "required": [
                        "from",
                        "to"
                      ],
                      "properties": {
                        "to": {
                          "type": "string",
                          "format": "date-time"
                        },
                        "from": {
                          "type": "string",
                          "format": "date-time"
                        }
                      }
                    },
                    "electionSearch": {
                      "type": "object",
                      "required": [
                        "solver",
                        "stepDays",
                        "voidOfCourse",
                        "houseSampleMinutes",
                        "boundarySeconds",
                        "resolutionSeconds",
                        "fullCalculationCost",
                        "samples",
                        "maxSamples",
                        "window",
                        "completeness"
                      ],
                      "properties": {
                        "solver": {
                          "const": "engine-longitude-crossings-and-sampled-houses"
                        },
                        "window": {
                          "const": "start-inclusive-end-exclusive"
                        },
                        "samples": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "stepDays": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "number"
                          }
                        },
                        "maxSamples": {
                          "type": "integer"
                        },
                        "completeness": {
                          "const": "tested-not-proven"
                        },
                        "voidOfCourse": {
                          "type": "object",
                          "required": [
                            "convention",
                            "bodies",
                            "scanHours"
                          ],
                          "properties": {
                            "bodies": {
                              "const": "modern"
                            },
                            "scanHours": {
                              "type": "number"
                            },
                            "convention": {
                              "const": "last-exact-ptolemaic-aspect-to-sign-exit"
                            }
                          }
                        },
                        "boundarySeconds": {
                          "const": 1
                        },
                        "resolutionSeconds": {
                          "const": 2
                        },
                        "houseSampleMinutes": {
                          "const": 60
                        },
                        "fullCalculationCost": {
                          "const": 25
                        }
                      },
                      "description": "How an election search ran: the crossing search's steps for sign changes, stations and phases; the void-of-course rule and the step of its scan for the Moon's last aspect; the house sampling; the evaluations made, where a crossing step counts once and a full calculation, all the positions at an instant or a natalChart for a house, counts as fullCalculationCost. Every window's ends are within a second, so a gap shorter than resolutionSeconds between two windows is closed and a window shorter than it is not listed: two boundaries that close may be one instant found twice."
                    },
                    "timeResolution": {
                      "type": "object",
                      "required": [
                        "resolver",
                        "policy",
                        "pinnedTzdb",
                        "runtimeTzdb"
                      ],
                      "properties": {
                        "policy": {
                          "type": "object",
                          "properties": {
                            "gap": {
                              "const": "shift-forward"
                            },
                            "fold": {
                              "const": "earlier"
                            }
                          }
                        },
                        "resolver": {
                          "type": "string"
                        },
                        "pinnedTzdb": {
                          "type": "object"
                        },
                        "runtimeTzdb": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      }
                    }
                  },
                  "description": "The receipt for a calculation the engine writes no receipt for: the engine, its conventions and coverage as its own receipts state them, and what this request used."
                }
              },
              "additionalProperties": false
            },
            "interpretation": {
              "type": "string",
              "const": "The verdict checks an astronomical proposition, not an astrological prediction."
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "check_sky_fact"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_capabilities",
            "get_sky",
            "get_upcoming_events",
            "check_sky_fact",
            "get_horoscope",
            "open_chart_studio",
            "get_occasion_sky",
            "get_life_milestones",
            "get_compatibility",
            "find_chart_twins",
            "get_famous_chart",
            "get_birthday",
            "get_sky_calendar"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
check_sky_fact annotations
{
  "title": "Check a sky fact",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_horoscope — Horoscopes
Advertised by the server during the last successful anonymous check.
Advertised read-only

Shows a Sun-sign horoscope, general, love or career for today or general for this week, written for the person's own date. Do not call this tool for stock picks, investment advice, financial forecasts, health predictions or guaranteed outcomes, even when the request mentions a horoscope. Decline those requests without a tool call; do not offer astrology-themed investment suggestions. Use it for a horoscope or reflective reading. Leave out the sign to let them choose; never guess it. Pass their time zone if you know it. Share the reading as written and keep its dates. If the person gives their birth date (and time and birthplace zone if known), pass them too: the result adds a personal forecast for their week from their own chart. Lead with those personal lines, with their dates. If you can schedule tasks for the person, offer once, briefly, to send them their horoscope every morning; Zodiacs itself sends no notifications. If they want to share the reading, give them the returned shareUrl exactly.

get_horoscope input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "date": {
      "type": "string",
      "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$",
      "description": "A date such as 2026-10-08. Leave it out for the person's today."
    },
    "sign": {
      "enum": [
        "aries",
        "taurus",
        "gemini",
        "cancer",
        "leo",
        "virgo",
        "libra",
        "scorpio",
        "sagittarius",
        "capricorn",
        "aquarius",
        "pisces"
      ],
      "type": "string",
      "description": "Sun sign. Leave it out to let the person choose; never guess it."
    },
    "zone": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_+-]*(?:\\/[A-Za-z0-9_+-]+){0,3}$",
      "maxLength": 64,
      "minLength": 1,
      "description": "The person's time zone, such as Asia/Bangkok or America/New_York. Without it, times are in UTC."
    },
    "focus": {
      "enum": [
        "general",
        "love",
        "career"
      ],
      "type": "string",
      "description": "For a daily reading: general (the default), love or career."
    },
    "period": {
      "enum": [
        "day",
        "week"
      ],
      "type": "string",
      "description": "day (the default) or week."
    },
    "birthDate": {
      "type": "string",
      "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$",
      "description": "Optional: the person's birth date, for a personal forecast of their week from their own chart. Not stored."
    },
    "birthTime": {
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
      "description": "Optional birth time on the local clock; needs birthZone. Not stored."
    },
    "birthZone": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_+-]*(?:\\/[A-Za-z0-9_+-]+){0,3}$",
      "maxLength": 64,
      "minLength": 1,
      "description": "Optional: the birthplace's time zone, needed with birthTime. Not stored."
    }
  },
  "additionalProperties": false
}
get_horoscope output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "status",
            "period",
            "focus",
            "date",
            "dateLabel",
            "zone",
            "zoneLabel",
            "zoneSource",
            "disclosure"
          ],
          "properties": {
            "why": {
              "type": "object",
              "required": [
                "note",
                "facts",
                "houses"
              ],
              "properties": {
                "note": {
                  "type": "string"
                },
                "facts": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "text",
                      "when"
                    ],
                    "properties": {
                      "text": {
                        "type": "string"
                      },
                      "when": {
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "houses": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            "date": {
              "type": "string"
            },
            "sign": {
              "enum": [
                "aries",
                "taurus",
                "gemini",
                "cancer",
                "leo",
                "virgo",
                "libra",
                "scorpio",
                "sagittarius",
                "capricorn",
                "aquarius",
                "pisces"
              ],
              "type": "string"
            },
            "zone": {
              "type": "string"
            },
            "focus": {
              "enum": [
                "general",
                "love",
                "career"
              ],
              "type": "string"
            },
            "period": {
              "enum": [
                "day",
                "week"
              ],
              "type": "string"
            },
            "status": {
              "enum": [
                "available",
                "unavailable",
                "choose-sign"
              ],
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "reading": {
              "type": "object",
              "required": [
                "title",
                "paragraphs"
              ],
              "properties": {
                "title": {
                  "type": "string"
                },
                "paragraphs": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "text"
                    ],
                    "properties": {
                      "text": {
                        "type": "string"
                      },
                      "heading": {
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  }
                }
              },
              "additionalProperties": false
            },
            "personal": {
              "type": "object",
              "required": [
                "timeKnown",
                "items",
                "note"
              ],
              "properties": {
                "note": {
                  "type": "string"
                },
                "items": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "title",
                      "line",
                      "when"
                    ],
                    "properties": {
                      "line": {
                        "type": "string"
                      },
                      "when": {
                        "type": "string"
                      },
                      "title": {
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "timeKnown": {
                  "type": "boolean"
                }
              },
              "additionalProperties": false
            },
            "shareUrl": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uri"
                },
                {
                  "type": "null"
                }
              ]
            },
            "signName": {
              "type": "string"
            },
            "available": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "date",
                  "label"
                ],
                "properties": {
                  "date": {
                    "type": "string"
                  },
                  "label": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            },
            "dateLabel": {
              "type": "string"
            },
            "zoneLabel": {
              "type": "string"
            },
            "disclosure": {
              "type": "string"
            },
            "zoneSource": {
              "enum": [
                "request",
                "assistant",
                "default"
              ],
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "get_horoscope"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_capabilities",
            "get_sky",
            "get_upcoming_events",
            "check_sky_fact",
            "get_horoscope",
            "open_chart_studio",
            "get_occasion_sky",
            "get_life_milestones",
            "get_compatibility",
            "find_chart_twins",
            "get_famous_chart",
            "get_birthday",
            "get_sky_calendar"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
get_horoscope annotations
{
  "title": "Horoscopes",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
open_chart_studio — Chart Studio
Advertised by the server during the last successful anonymous check.
Advertised read-only

Opens Chart Studio, an interactive birth chart the person fills in themselves: birth date, place, and time if they know it. Call it with no arguments and do not ask for birth details first. The chart is calculated inside the panel; you see only the parts the person chooses to share.

open_chart_studio input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {},
  "additionalProperties": false
}
open_chart_studio output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "title",
            "calculation",
            "initialChart",
            "sharing"
          ],
          "properties": {
            "title": {
              "type": "string",
              "const": "Chart Studio"
            },
            "sharing": {
              "type": "string",
              "const": "user-reviewed-selection-only"
            },
            "calculation": {
              "type": "string",
              "const": "browser-local"
            },
            "initialChart": {
              "type": "string",
              "const": "birth-details"
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "open_chart_studio"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_capabilities",
            "get_sky",
            "get_upcoming_events",
            "check_sky_fact",
            "get_horoscope",
            "open_chart_studio",
            "get_occasion_sky",
            "get_life_milestones",
            "get_compatibility",
            "find_chart_twins",
            "get_famous_chart",
            "get_birthday",
            "get_sky_calendar"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
open_chart_studio annotations
{
  "title": "Chart Studio",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_occasion_sky — The sky on a day
Advertised by the server during the last successful anonymous check.
Advertised read-only

Shows the sky on a day that matters to the person: a wedding, anniversary, birthday, a new home or another occasion. It gives the Sun and Moon signs, the Moon's phase, any retrograde planets, a card title and short lines they can use, and, with a place, sunset, golden hour, dusk, the Moon and the planets visible that evening. It needs the date; add the local time, the place's time zone and its coordinates if the person gives them. It also rates the date from 0 to 100 with a verdict and the astrological reasons (Venus, the Moon's phase and sign, retrograde planets); share the rating and its reasons plainly. When asked for the best days for an occasion, give the window as searchFrom and searchTo (up to 92 days, such as a whole month); it rates every day in it and returns the three best-rated days with their reasons, and the card for the best one unless a date is also given. When asked which of a few named dates is best, call it for each date and compare the ratings. It never guarantees how the day will go. For the printable card, copy the returned cardUrl exactly, including every field after #; do not reconstruct it from the conversation. If cardUrl is null, use the returned page link. If they want to share the rating, give them the returned shareUrl exactly.

get_occasion_sky input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "occasion"
  ],
  "properties": {
    "date": {
      "type": "string",
      "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$",
      "description": "The day, such as 2027-06-12 (years 1800–2199). Needed unless searchFrom and searchTo are given."
    },
    "time": {
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
      "description": "The local clock time, such as 19:00, if the person gives one. Needs zone."
    },
    "zone": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_+-]*(?:\\/[A-Za-z0-9_+-]+){0,3}$",
      "maxLength": 64,
      "minLength": 1,
      "description": "The place's time zone, such as Europe/Rome. Needed with a time or a place."
    },
    "names": {
      "type": "string",
      "maxLength": 60,
      "minLength": 1,
      "description": "Optional: up to two first names to print on the card, only if the person asks for them. Display only, not stored."
    },
    "place": {
      "type": "string",
      "maxLength": 80,
      "minLength": 1,
      "description": "Optional place name printed on the card, such as Florence, Italy. Display only: it is not used in the calculation and is not stored."
    },
    "latitude": {
      "type": "number",
      "maximum": 90,
      "minimum": -90,
      "description": "Optional. The place's latitude, used only to work out sunset, golden hour and the evening sky there. Give it with longitude and zone. Nothing is stored."
    },
    "occasion": {
      "enum": [
        "wedding",
        "anniversary",
        "met",
        "birthday",
        "pet",
        "home",
        "job",
        "graduation",
        "retirement",
        "gathering"
      ],
      "type": "string",
      "description": "What the day is: wedding, anniversary, met (the day they met), birthday, pet, home, job, graduation, retirement or gathering."
    },
    "searchTo": {
      "type": "string",
      "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$",
      "description": "The last day of the window to search, such as 2027-06-30, at most 92 days after searchFrom counting both days. Every day is rated and the three best come back."
    },
    "longitude": {
      "type": "number",
      "maximum": 180,
      "minimum": -180,
      "description": "Optional. The place's longitude, with latitude, for the evening sky. Nothing is stored."
    },
    "searchFrom": {
      "type": "string",
      "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$",
      "description": "To find the best days: the first day of the window to search, such as 2027-06-01. Give it with searchTo."
    }
  },
  "additionalProperties": false
}
get_occasion_sky output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "occasion",
            "date",
            "time",
            "zone",
            "place",
            "names",
            "card",
            "instant",
            "instantIs",
            "sky",
            "moonSignChange",
            "evening",
            "rating",
            "bestDays",
            "cardUrl",
            "shareUrl",
            "note"
          ],
          "properties": {
            "sky": {
              "type": "object",
              "required": [
                "bodies",
                "moon",
                "retrograde"
              ],
              "properties": {
                "moon": {
                  "type": "object",
                  "required": [
                    "phase",
                    "illuminationPercent",
                    "waxing"
                  ],
                  "properties": {
                    "phase": {
                      "type": "string"
                    },
                    "waxing": {
                      "type": "boolean"
                    },
                    "illuminationPercent": {
                      "type": "number"
                    }
                  },
                  "additionalProperties": false
                },
                "bodies": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "body",
                      "sign",
                      "degree",
                      "retrograde"
                    ],
                    "properties": {
                      "body": {
                        "type": "string"
                      },
                      "sign": {
                        "type": "string"
                      },
                      "degree": {
                        "type": "number"
                      },
                      "retrograde": {
                        "type": "boolean"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "retrograde": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            "card": {
              "type": "object",
              "required": [
                "title",
                "interpretation",
                "closing"
              ],
              "properties": {
                "title": {
                  "type": "string"
                },
                "closing": {
                  "type": "string"
                },
                "interpretation": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "date": {
              "type": "string"
            },
            "note": {
              "type": "string",
              "const": "Astrology’s reading of the day, for insight and fun, not a guarantee of how it will go."
            },
            "time": {
              "type": [
                "string",
                "null"
              ]
            },
            "zone": {
              "type": [
                "string",
                "null"
              ]
            },
            "names": {
              "type": [
                "string",
                "null"
              ]
            },
            "place": {
              "type": [
                "string",
                "null"
              ]
            },
            "rating": {
              "type": "object",
              "required": [
                "score",
                "verdict",
                "reasons"
              ],
              "properties": {
                "score": {
                  "type": "integer",
                  "maximum": 100,
                  "minimum": 0
                },
                "reasons": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "verdict": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "cardUrl": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uri"
                },
                {
                  "type": "null"
                }
              ]
            },
            "evening": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "sunrise",
                    "sunset",
                    "goldenHour",
                    "civilDusk",
                    "moonrise",
                    "moonset",
                    "moonHighest",
                    "planetsAfterDusk",
                    "flags"
                  ],
                  "properties": {
                    "flags": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "sunset": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "utc",
                            "local"
                          ],
                          "properties": {
                            "utc": {
                              "type": "string"
                            },
                            "local": {
                              "type": "string"
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "moonset": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "utc",
                            "local"
                          ],
                          "properties": {
                            "utc": {
                              "type": "string"
                            },
                            "local": {
                              "type": "string"
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "sunrise": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "utc",
                            "local"
                          ],
                          "properties": {
                            "utc": {
                              "type": "string"
                            },
                            "local": {
                              "type": "string"
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "moonrise": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "utc",
                            "local"
                          ],
                          "properties": {
                            "utc": {
                              "type": "string"
                            },
                            "local": {
                              "type": "string"
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "civilDusk": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "utc",
                            "local"
                          ],
                          "properties": {
                            "utc": {
                              "type": "string"
                            },
                            "local": {
                              "type": "string"
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "goldenHour": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "start",
                            "end"
                          ],
                          "properties": {
                            "end": {
                              "type": "object",
                              "required": [
                                "utc",
                                "local"
                              ],
                              "properties": {
                                "utc": {
                                  "type": "string"
                                },
                                "local": {
                                  "type": "string"
                                }
                              },
                              "additionalProperties": false
                            },
                            "start": {
                              "type": "object",
                              "required": [
                                "utc",
                                "local"
                              ],
                              "properties": {
                                "utc": {
                                  "type": "string"
                                },
                                "local": {
                                  "type": "string"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "moonHighest": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "at",
                            "altitude"
                          ],
                          "properties": {
                            "at": {
                              "type": "object",
                              "required": [
                                "utc",
                                "local"
                              ],
                              "properties": {
                                "utc": {
                                  "type": "string"
                                },
                                "local": {
                                  "type": "string"
                                }
                              },
                              "additionalProperties": false
                            },
                            "altitude": {
                              "type": "number"
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "planetsAfterDusk": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "instant": {
              "type": "object",
              "required": [
                "utc",
                "local"
              ],
              "properties": {
                "utc": {
                  "type": "string"
                },
                "local": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "bestDays": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "from",
                    "to",
                    "days",
                    "best"
                  ],
                  "properties": {
                    "to": {
                      "type": "string"
                    },
                    "best": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "date",
                          "score",
                          "verdict",
                          "reasons"
                        ],
                        "properties": {
                          "date": {
                            "type": "string"
                          },
                          "score": {
                            "type": "integer",
                            "maximum": 100,
                            "minimum": 0
                          },
                          "reasons": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "verdict": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": false
                      },
                      "maxItems": 3
                    },
                    "days": {
                      "type": "integer",
                      "maximum": 92,
                      "minimum": 1
                    },
                    "from": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "occasion": {
              "enum": [
                "wedding",
                "anniversary",
                "met",
                "birthday",
                "pet",
                "home",
                "job",
                "graduation",
                "retirement",
                "gathering"
              ],
              "type": "string"
            },
            "shareUrl": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uri"
                },
                {
                  "type": "null"
                }
              ]
            },
            "instantIs": {
              "enum": [
                "given-time",
                "local-noon",
                "utc-noon"
              ],
              "type": "string"
            },
            "moonSignChange": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "from",
                    "to"
                  ],
                  "properties": {
                    "to": {
                      "type": "string"
                    },
                    "from": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "get_occasion_sky"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_capabilities",
            "get_sky",
            "get_upcoming_events",
            "check_sky_fact",
            "get_horoscope",
            "open_chart_studio",
            "get_occasion_sky",
            "get_life_milestones",
            "get_compatibility",
            "find_chart_twins",
            "get_famous_chart",
            "get_birthday",
            "get_sky_calendar"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
get_occasion_sky annotations
{
  "title": "The sky on a day",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_life_milestones — Life milestones
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists astrology's life milestones from a birth date: each Jupiter return (about every 12 years), the Saturn returns (around 29, 58 and 88) and the Uranus opposition (early forties), with dates, ages and every pass of a retrograde loop, the next one coming, and how many full Moons and Mercury retrogrades the person has lived through. A birth date is enough; add the birth time and time zone if known. It makes no prediction. If they want to share it, give them the returned shareUrl exactly; it shows the milestone the card leads with, never the birth date.

get_life_milestones input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "birthDate"
  ],
  "properties": {
    "time": {
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
      "description": "The birth time on the local clock, if known. Needs zone."
    },
    "zone": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_+-]*(?:\\/[A-Za-z0-9_+-]+){0,3}$",
      "maxLength": 64,
      "minLength": 1,
      "description": "The birthplace's time zone, such as Europe/London. Needed with a time."
    },
    "birthDate": {
      "type": "string",
      "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$",
      "description": "The birth date, such as 1997-03-15."
    },
    "longitude": {
      "type": "number",
      "maximum": 180,
      "minimum": -180,
      "description": "The birthplace's longitude, if known, for birth times before standard time."
    }
  },
  "additionalProperties": false
}
get_life_milestones output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "birthDate",
            "timeKnown",
            "asOf",
            "milestones",
            "next",
            "numbers",
            "cardUrl",
            "shareUrl",
            "note"
          ],
          "properties": {
            "asOf": {
              "type": "string"
            },
            "next": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "kind",
                    "name",
                    "index",
                    "age",
                    "first",
                    "last",
                    "passes"
                  ],
                  "properties": {
                    "age": {
                      "type": "number"
                    },
                    "kind": {
                      "enum": [
                        "jupiter-return",
                        "saturn-return",
                        "uranus-opposition"
                      ],
                      "type": "string"
                    },
                    "last": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "first": {
                      "type": "string"
                    },
                    "index": {
                      "type": "number"
                    },
                    "passes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "at",
                          "retrograde"
                        ],
                        "properties": {
                          "at": {
                            "type": "string"
                          },
                          "retrograde": {
                            "type": "boolean"
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "note": {
              "type": "string",
              "const": "Dates of computed crossings and their traditional astrological names. Without a birth time, a pass can move by about a day."
            },
            "cardUrl": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uri"
                },
                {
                  "type": "null"
                }
              ]
            },
            "numbers": {
              "type": "object",
              "required": [
                "fullMoons",
                "mercuryRetrogrades",
                "jupiterReturns"
              ],
              "properties": {
                "fullMoons": {
                  "type": "number"
                },
                "jupiterReturns": {
                  "type": "number"
                },
                "mercuryRetrogrades": {
                  "type": "number"
                }
              },
              "additionalProperties": false
            },
            "shareUrl": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uri"
                },
                {
                  "type": "null"
                }
              ]
            },
            "birthDate": {
              "type": "string"
            },
            "timeKnown": {
              "type": "boolean"
            },
            "milestones": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "kind",
                  "name",
                  "index",
                  "age",
                  "first",
                  "last",
                  "passes"
                ],
                "properties": {
                  "age": {
                    "type": "number"
                  },
                  "kind": {
                    "enum": [
                      "jupiter-return",
                      "saturn-return",
                      "uranus-opposition"
                    ],
                    "type": "string"
                  },
                  "last": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "first": {
                    "type": "string"
                  },
                  "index": {
                    "type": "number"
                  },
                  "passes": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "at",
                        "retrograde"
                      ],
                      "properties": {
                        "at": {
                          "type": "string"
                        },
                        "retrograde": {
                          "type": "boolean"
                        }
                      },
                      "additionalProperties": false
                    }
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "get_life_milestones"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_capabilities",
            "get_sky",
            "get_upcoming_events",
            "check_sky_fact",
            "get_horoscope",
            "open_chart_studio",
            "get_occasion_sky",
            "get_life_milestones",
            "get_compatibility",
            "find_chart_twins",
            "get_famous_chart",
            "get_birthday",
            "get_sky_calendar"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
get_life_milestones annotations
{
  "title": "Life milestones",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
get_compatibility — Compare two charts
Advertised by the server during the last successful anonymous check.
Advertised read-only

Compares two people's birth charts: their Sun, Moon and rising signs, the closest contacts between their planets with what each traditionally means, and how their elements balance. Use it when someone asks about compatibility with a partner, friend or family member, or with a famous person. Each person needs a birth date; add a birth time, time zone and birthplace coordinates when known, and first names if they want them shown. To compare someone with a famous person Zodiacs publishes, give that side as { famous: "<name>" } instead: it uses their published chart for noon on their birth date, without a Moon or rising sign, and links to their page. If Zodiacs has no chart for that name it says so (found: false); never make one up. It returns a compatibility score out of 100 with scores for attraction, communication and long-term stability, a verdict and a headline: lead with the score and verdict in plain words, then the strongest and hardest contacts. Present it as astrology's reading, never a guarantee of how the relationship will turn out. If they want to share the score, give them the returned shareUrl exactly.

get_compatibility input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "a",
    "b"
  ],
  "properties": {
    "a": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "pattern": "^[^\\u0000-\\u001f\\u007f<>{}[\\]\\\\`]+$",
          "maxLength": 40,
          "minLength": 1,
          "description": "Optional first name to show on the card, only if the person wants one. Display only, not stored."
        },
        "time": {
          "type": "string",
          "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
          "description": "The birth time on the local clock, if known. Needs zone."
        },
        "zone": {
          "type": "string",
          "pattern": "^[A-Za-z][A-Za-z0-9_+-]*(?:\\/[A-Za-z0-9_+-]+){0,3}$",
          "maxLength": 64,
          "minLength": 1,
          "description": "The birthplace's time zone, such as Europe/Madrid. Needed with a time or a place."
        },
        "place": {
          "type": "string",
          "pattern": "^[^\\u0000-\\u001f\\u007f<>{}[\\]\\\\`]+$",
          "maxLength": 80,
          "minLength": 1,
          "description": "Optional birthplace name, such as Madrid, Spain. Display only, not stored."
        },
        "famous": {
          "type": "string",
          "pattern": "^[^\\u0000-\\u001f\\u007f<>{}[\\]\\\\`]+$",
          "maxLength": 80,
          "minLength": 1,
          "description": "Instead of birth details: the name of a famous person Zodiacs publishes a chart for, such as Frida Kahlo. Give it alone, without birthDate or any other field."
        },
        "latitude": {
          "type": "number",
          "maximum": 90,
          "minimum": -90,
          "description": "Optional. The birthplace's latitude; with a birth time it adds the rising sign. Give it with longitude and zone. Nothing is stored."
        },
        "birthDate": {
          "type": "string",
          "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$",
          "description": "The birth date, such as 1994-08-21 (years 1800–2199). Needed unless famous is given."
        },
        "longitude": {
          "type": "number",
          "maximum": 180,
          "minimum": -180,
          "description": "Optional. The birthplace's longitude, with latitude. Nothing is stored."
        }
      },
      "description": "The first person.",
      "additionalProperties": false
    },
    "b": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "pattern": "^[^\\u0000-\\u001f\\u007f<>{}[\\]\\\\`]+$",
          "maxLength": 40,
          "minLength": 1,
          "description": "Optional first name to show on the card, only if the person wants one. Display only, not stored."
        },
        "time": {
          "type": "string",
          "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
          "description": "The birth time on the local clock, if known. Needs zone."
        },
        "zone": {
          "type": "string",
          "pattern": "^[A-Za-z][A-Za-z0-9_+-]*(?:\\/[A-Za-z0-9_+-]+){0,3}$",
          "maxLength": 64,
          "minLength": 1,
          "description": "The birthplace's time zone, such as Europe/Madrid. Needed with a time or a place."
        },
        "place": {
          "type": "string",
          "pattern": "^[^\\u0000-\\u001f\\u007f<>{}[\\]\\\\`]+$",
          "maxLength": 80,
          "minLength": 1,
          "description": "Optional birthplace name, such as Madrid, Spain. Display only, not stored."
        },
        "famous": {
          "type": "string",
          "pattern": "^[^\\u0000-\\u001f\\u007f<>{}[\\]\\\\`]+$",
          "maxLength": 80,
          "minLength": 1,
          "description": "Instead of birth details: the name of a famous person Zodiacs publishes a chart for, such as Frida Kahlo. Give it alone, without birthDate or any other field."
        },
        "latitude": {
          "type": "number",
          "maximum": 90,
          "minimum": -90,
          "description": "Optional. The birthplace's latitude; with a birth time it adds the rising sign. Give it with longitude and zone. Nothing is stored."
        },
        "birthDate": {
          "type": "string",
          "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$",
          "description": "The birth date, such as 1994-08-21 (years 1800–2199). Needed unless famous is given."
        },
        "longitude": {
          "type": "number",
          "maximum": 180,
          "minimum": -180,
          "description": "Optional. The birthplace's longitude, with latitude. Nothing is stored."
        }
      },
      "description": "The second person, or { famous: \"<name>\" } for a famous person Zodiacs publishes.",
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
get_compatibility output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "anyOf": [
            {
              "type": "object",
              "required": [
                "a",
                "b",
                "score",
                "signPair",
                "contacts",
                "counts",
                "elements",
                "modalities",
                "pageUrl",
                "cardUrl",
                "shareUrl",
                "notes",
                "note"
              ],
              "properties": {
                "a": {
                  "type": "object",
                  "required": [
                    "name",
                    "label",
                    "birthDate",
                    "timeKnown",
                    "placed",
                    "place",
                    "sun",
                    "moon",
                    "rising",
                    "famous",
                    "url"
                  ],
                  "properties": {
                    "sun": {
                      "anyOf": [
                        {
                          "enum": [
                            "aries",
                            "taurus",
                            "gemini",
                            "cancer",
                            "leo",
                            "virgo",
                            "libra",
                            "scorpio",
                            "sagittarius",
                            "capricorn",
                            "aquarius",
                            "pisces"
                          ],
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "url": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "moon": {
                      "anyOf": [
                        {
                          "enum": [
                            "aries",
                            "taurus",
                            "gemini",
                            "cancer",
                            "leo",
                            "virgo",
                            "libra",
                            "scorpio",
                            "sagittarius",
                            "capricorn",
                            "aquarius",
                            "pisces"
                          ],
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "name": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "label": {
                      "type": "string"
                    },
                    "place": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "famous": {
                      "type": "boolean"
                    },
                    "placed": {
                      "type": "boolean"
                    },
                    "rising": {
                      "anyOf": [
                        {
                          "enum": [
                            "aries",
                            "taurus",
                            "gemini",
                            "cancer",
                            "leo",
                            "virgo",
                            "libra",
                            "scorpio",
                            "sagittarius",
                            "capricorn",
                            "aquarius",
                            "pisces"
                          ],
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "birthDate": {
                      "type": "string"
                    },
                    "timeKnown": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                },
                "b": {
                  "type": "object",
                  "required": [
                    "name",
                    "label",
                    "birthDate",
                    "timeKnown",
                    "placed",
                    "place",
                    "sun",
                    "moon",
                    "rising",
                    "famous",
                    "url"
                  ],
                  "properties": {
                    "sun": {
                      "anyOf": [
                        {
                          "enum": [
                            "aries",
                            "taurus",
                            "gemini",
                            "cancer",
                            "leo",
                            "virgo",
                            "libra",
                            "scorpio",
                            "sagittarius",
                            "capricorn",
                            "aquarius",
                            "pisces"
                          ],
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "url": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "moon": {
                      "anyOf": [
                        {
                          "enum": [
                            "aries",
                            "taurus",
                            "gemini",
                            "cancer",
                            "leo",
                            "virgo",
                            "libra",
                            "scorpio",
                            "sagittarius",
                            "capricorn",
                            "aquarius",
                            "pisces"
                          ],
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "name": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "label": {
                      "type": "string"
                    },
                    "place": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "famous": {
                      "type": "boolean"
                    },
                    "placed": {
                      "type": "boolean"
                    },
                    "rising": {
                      "anyOf": [
                        {
                          "enum": [
                            "aries",
                            "taurus",
                            "gemini",
                            "cancer",
                            "leo",
                            "virgo",
                            "libra",
                            "scorpio",
                            "sagittarius",
                            "capricorn",
                            "aquarius",
                            "pisces"
                          ],
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "birthDate": {
                      "type": "string"
                    },
                    "timeKnown": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                },
                "note": {
                  "type": "string",
                  "const": "Astrology’s reading of your two charts, for insight and fun, not a guarantee of how things will turn out."
                },
                "notes": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "score": {
                  "type": "object",
                  "required": [
                    "overall",
                    "areas",
                    "verdict",
                    "headline"
                  ],
                  "properties": {
                    "areas": {
                      "type": "object",
                      "required": [
                        "attraction",
                        "communication",
                        "stability"
                      ],
                      "properties": {
                        "stability": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991
                        },
                        "attraction": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991
                        },
                        "communication": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": -9007199254740991
                        }
                      },
                      "additionalProperties": false
                    },
                    "overall": {
                      "type": "integer",
                      "maximum": 100,
                      "minimum": 0
                    },
                    "verdict": {
                      "type": "string"
                    },
                    "headline": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                "counts": {
                  "type": "object",
                  "required": [
                    "easeful",
                    "charged",
                    "total",
                    "byAspect"
                  ],
                  "properties": {
                    "total": {
                      "type": "integer",
                      "maximum": 9007199254740991,
                      "minimum": 0
                    },
                    "charged": {
                      "type": "integer",
                      "maximum": 9007199254740991,
                      "minimum": 0
                    },
                    "easeful": {
                      "type": "integer",
                      "maximum": 9007199254740991,
                      "minimum": 0
                    },
                    "byAspect": {
                      "type": "object",
                      "required": [
                        "conjunction",
                        "sextile",
                        "square",
                        "trine",
                        "opposition"
                      ],
                      "properties": {
                        "trine": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        "square": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        "sextile": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        "opposition": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        "conjunction": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                },
                "cardUrl": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "pageUrl": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "contacts": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "aBody",
                      "bBody",
                      "aspect",
                      "orb",
                      "generational",
                      "line"
                    ],
                    "properties": {
                      "orb": {
                        "type": "number",
                        "minimum": 0
                      },
                      "line": {
                        "type": "string"
                      },
                      "aBody": {
                        "enum": [
                          "Sun",
                          "Moon",
                          "Mercury",
                          "Venus",
                          "Mars",
                          "Jupiter",
                          "Saturn",
                          "Uranus",
                          "Neptune",
                          "Pluto"
                        ],
                        "type": "string"
                      },
                      "bBody": {
                        "enum": [
                          "Sun",
                          "Moon",
                          "Mercury",
                          "Venus",
                          "Mars",
                          "Jupiter",
                          "Saturn",
                          "Uranus",
                          "Neptune",
                          "Pluto"
                        ],
                        "type": "string"
                      },
                      "aspect": {
                        "enum": [
                          "conjunction",
                          "sextile",
                          "square",
                          "trine",
                          "opposition"
                        ],
                        "type": "string"
                      },
                      "generational": {
                        "type": "boolean"
                      }
                    },
                    "additionalProperties": false
                  },
                  "maxItems": 8
                },
                "elements": {
                  "type": "object",
                  "required": [
                    "a",
                    "b"
                  ],
                  "properties": {
                    "a": {
                      "type": "object",
                      "required": [
                        "fire",
                        "earth",
                        "air",
                        "water"
                      ],
                      "properties": {
                        "air": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        "fire": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        "earth": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        "water": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        }
                      },
                      "additionalProperties": false
                    },
                    "b": {
                      "type": "object",
                      "required": [
                        "fire",
                        "earth",
                        "air",
                        "water"
                      ],
                      "properties": {
                        "air": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        "fire": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        "earth": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        "water": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                },
                "shareUrl": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "signPair": {
                  "anyOf": [
                    {
                      "type": "object",
                      "required": [
                        "slug",
                        "signs",
                        "same",
                        "element",
                        "modality",
                        "polarity"
                      ],
                      "properties": {
                        "same": {
                          "type": "boolean"
                        },
                        "slug": {
                          "type": "string"
                        },
                        "signs": {
                          "type": "array",
                          "items": {
                            "enum": [
                              "aries",
                              "taurus",
                              "gemini",
                              "cancer",
                              "leo",
                              "virgo",
                              "libra",
                              "scorpio",
                              "sagittarius",
                              "capricorn",
                              "aquarius",
                              "pisces"
                            ],
                            "type": "string"
                          },
                          "maxItems": 2,
                          "minItems": 2
                        },
                        "element": {
                          "type": "object",
                          "required": [
                            "label",
                            "note"
                          ],
                          "properties": {
                            "note": {
                              "type": "string"
                            },
                            "label": {
                              "type": "string"
                            }
                          },
                          "additionalProperties": false
                        },
                        "modality": {
                          "type": "object",
                          "required": [
                            "label",
                            "note"
                          ],
                          "properties": {
                            "note": {
                              "type": "string"
                            },
                            "label": {
                              "type": "string"
                            }
                          },
                          "additionalProperties": false
                        },
                        "polarity": {
                          "type": "string"
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "modalities": {
                  "type": "object",
                  "required": [
                    "a",
                    "b"
                  ],
                  "properties": {
                    "a": {
                      "type": "object",
                      "required": [
                        "cardinal",
                        "fixed",
                        "mutable"
                      ],
                      "properties": {
                        "fixed": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        "mutable": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        "cardinal": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        }
                      },
                      "additionalProperties": false
                    },
                    "b": {
                      "type": "object",
                      "required": [
                        "cardinal",
                        "fixed",
                        "mutable"
                      ],
                      "properties": {
                        "fixed": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        "mutable": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        },
                        "cardinal": {
                          "type": "integer",
                          "maximum": 9007199254740991,
                          "minimum": 0
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "found",
                "side",
                "query",
                "directoryUrl",
                "note"
              ],
              "properties": {
                "note": {
                  "type": "string",
                  "const": "Zodiacs has no chart for this name in its famous-people directory."
                },
                "side": {
                  "enum": [
                    "a",
                    "b"
                  ],
                  "type": "string"
                },
                "found": {
                  "type": "boolean",
                  "const": false
                },
                "query": {
                  "type": "string"
                },
                "directoryUrl": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            }
          ]
        },
        "tool": {
          "type": "string",
          "const": "get_compatibility"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_capabilities",
            "get_sky",
            "get_upcoming_events",
            "check_sky_fact",
            "get_horoscope",
            "open_chart_studio",
            "get_occasion_sky",
            "get_life_milestones",
            "get_compatibility",
            "find_chart_twins",
            "get_famous_chart",
            "get_birthday",
            "get_sky_calendar"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
get_compatibility annotations
{
  "title": "Compare two charts",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
find_chart_twins — Chart twins
Advertised by the server during the last successful anonymous check.
Advertised read-only

Finds famous people whose birth charts share the person's Sun sign, Moon sign or both, from the people Zodiacs publishes charts for, with a link to each person's chart. A birth date is enough for the Sun; the Moon needs the birth time and time zone. Use it when someone asks which famous people share their sign or chart. If they want to share it, give them the returned shareUrl exactly; it carries their signs, never the birth date.

find_chart_twins input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "birthDate"
  ],
  "properties": {
    "time": {
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
      "description": "The birth time on the local clock, if known. Needs zone. Without it only the Sun is compared."
    },
    "zone": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_+-]*(?:\\/[A-Za-z0-9_+-]+){0,3}$",
      "maxLength": 64,
      "minLength": 1,
      "description": "The birthplace's time zone, such as Europe/London. Needed with a time."
    },
    "latitude": {
      "type": "number",
      "maximum": 90,
      "minimum": -90,
      "description": "The birthplace's latitude, if known. Give it with longitude."
    },
    "birthDate": {
      "type": "string",
      "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$",
      "description": "The birth date, such as 1997-03-15."
    },
    "longitude": {
      "type": "number",
      "maximum": 180,
      "minimum": -180,
      "description": "The birthplace's longitude, if known, for birth times before standard time."
    }
  },
  "additionalProperties": false
}
find_chart_twins output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "birthDate",
            "timeKnown",
            "you",
            "twins",
            "total",
            "notes",
            "pageUrl",
            "shareUrl"
          ],
          "properties": {
            "you": {
              "type": "object",
              "required": [
                "sun",
                "moon"
              ],
              "properties": {
                "sun": {
                  "anyOf": [
                    {
                      "enum": [
                        "aries",
                        "taurus",
                        "gemini",
                        "cancer",
                        "leo",
                        "virgo",
                        "libra",
                        "scorpio",
                        "sagittarius",
                        "capricorn",
                        "aquarius",
                        "pisces"
                      ],
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "moon": {
                  "anyOf": [
                    {
                      "enum": [
                        "aries",
                        "taurus",
                        "gemini",
                        "cancer",
                        "leo",
                        "virgo",
                        "libra",
                        "scorpio",
                        "sagittarius",
                        "capricorn",
                        "aquarius",
                        "pisces"
                      ],
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": false
            },
            "notes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "total": {
              "type": "integer",
              "maximum": 9007199254740991,
              "minimum": 0
            },
            "twins": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "name",
                  "slug",
                  "shortDescription",
                  "born",
                  "shares",
                  "url"
                ],
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "born": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "slug": {
                    "type": "string"
                  },
                  "shares": {
                    "enum": [
                      "sun",
                      "moon",
                      "sun-and-moon"
                    ],
                    "type": "string"
                  },
                  "shortDescription": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              "maxItems": 12
            },
            "pageUrl": {
              "type": "string",
              "format": "uri"
            },
            "shareUrl": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uri"
                },
                {
                  "type": "null"
                }
              ]
            },
            "birthDate": {
              "type": "string"
            },
            "timeKnown": {
              "type": "boolean"
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "find_chart_twins"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_capabilities",
            "get_sky",
            "get_upcoming_events",
            "check_sky_fact",
            "get_horoscope",
            "open_chart_studio",
            "get_occasion_sky",
            "get_life_milestones",
            "get_compatibility",
            "find_chart_twins",
            "get_famous_chart",
            "get_birthday",
            "get_sky_calendar"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
find_chart_twins annotations
{
  "title": "Chart twins",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_famous_chart — A famous birth chart
Advertised by the server during the last successful anonymous check.
Advertised read-only

Looks up the birth chart of a famous person Zodiacs publishes: Sun and Moon signs and the planets' signs for their birth date, a short introduction and a link to their page. Use it when someone asks about a well-known person's chart or sign. If Zodiacs has no chart for that person, it says so; never make one up. If they want to share the chart, give them the returned shareUrl exactly.

get_famous_chart input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 80,
      "minLength": 2,
      "description": "The person's name, such as Ada Lovelace."
    }
  },
  "additionalProperties": false
}
get_famous_chart output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "oneOf": [
            {
              "type": "object",
              "required": [
                "found",
                "person",
                "alsoMatched",
                "note",
                "shareUrl"
              ],
              "properties": {
                "note": {
                  "type": "string"
                },
                "found": {
                  "type": "boolean",
                  "const": true
                },
                "person": {
                  "type": "object",
                  "required": [
                    "name",
                    "slug",
                    "shortDescription",
                    "born",
                    "birthplace",
                    "sun",
                    "moon",
                    "placements",
                    "lede",
                    "url",
                    "birthdayUrl"
                  ],
                  "properties": {
                    "sun": {
                      "type": "object",
                      "required": [
                        "sign",
                        "degree"
                      ],
                      "properties": {
                        "sign": {
                          "enum": [
                            "aries",
                            "taurus",
                            "gemini",
                            "cancer",
                            "leo",
                            "virgo",
                            "libra",
                            "scorpio",
                            "sagittarius",
                            "capricorn",
                            "aquarius",
                            "pisces"
                          ],
                          "type": "string"
                        },
                        "degree": {
                          "type": "number"
                        }
                      },
                      "additionalProperties": false
                    },
                    "url": {
                      "type": "string",
                      "format": "uri"
                    },
                    "born": {
                      "type": "string"
                    },
                    "lede": {
                      "type": "string"
                    },
                    "moon": {
                      "type": "object",
                      "required": [
                        "sign",
                        "degree"
                      ],
                      "properties": {
                        "sign": {
                          "anyOf": [
                            {
                              "enum": [
                                "aries",
                                "taurus",
                                "gemini",
                                "cancer",
                                "leo",
                                "virgo",
                                "libra",
                                "scorpio",
                                "sagittarius",
                                "capricorn",
                                "aquarius",
                                "pisces"
                              ],
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "degree": {
                          "type": [
                            "number",
                            "null"
                          ]
                        }
                      },
                      "additionalProperties": false
                    },
                    "name": {
                      "type": "string"
                    },
                    "slug": {
                      "type": "string"
                    },
                    "birthplace": {
                      "type": "string"
                    },
                    "placements": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "body",
                          "sign",
                          "degree",
                          "settled"
                        ],
                        "properties": {
                          "body": {
                            "enum": [
                              "Sun",
                              "Moon",
                              "Mercury",
                              "Venus",
                              "Mars",
                              "Jupiter",
                              "Saturn",
                              "Uranus",
                              "Neptune",
                              "Pluto"
                            ],
                            "type": "string"
                          },
                          "sign": {
                            "enum": [
                              "aries",
                              "taurus",
                              "gemini",
                              "cancer",
                              "leo",
                              "virgo",
                              "libra",
                              "scorpio",
                              "sagittarius",
                              "capricorn",
                              "aquarius",
                              "pisces"
                            ],
                            "type": "string"
                          },
                          "degree": {
                            "type": "number"
                          },
                          "settled": {
                            "type": "boolean"
                          }
                        },
                        "additionalProperties": false
                      },
                      "maxItems": 10,
                      "minItems": 10
                    },
                    "birthdayUrl": {
                      "type": "string",
                      "format": "uri"
                    },
                    "shortDescription": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                "shareUrl": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uri"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "alsoMatched": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "name",
                      "slug",
                      "url"
                    ],
                    "properties": {
                      "url": {
                        "type": "string",
                        "format": "uri"
                      },
                      "name": {
                        "type": "string"
                      },
                      "slug": {
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  },
                  "maxItems": 4
                }
              },
              "additionalProperties": false
            },
            {
              "type": "object",
              "required": [
                "found",
                "query",
                "suggestions",
                "directoryUrl",
                "note"
              ],
              "properties": {
                "note": {
                  "type": "string"
                },
                "found": {
                  "type": "boolean",
                  "const": false
                },
                "query": {
                  "type": "string"
                },
                "suggestions": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "name",
                      "slug",
                      "url"
                    ],
                    "properties": {
                      "url": {
                        "type": "string",
                        "format": "uri"
                      },
                      "name": {
                        "type": "string"
                      },
                      "slug": {
                        "type": "string"
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "directoryUrl": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "additionalProperties": false
            }
          ]
        },
        "tool": {
          "type": "string",
          "const": "get_famous_chart"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_capabilities",
            "get_sky",
            "get_upcoming_events",
            "check_sky_fact",
            "get_horoscope",
            "open_chart_studio",
            "get_occasion_sky",
            "get_life_milestones",
            "get_compatibility",
            "find_chart_twins",
            "get_famous_chart",
            "get_birthday",
            "get_sky_calendar"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
get_famous_chart annotations
{
  "title": "A famous birth chart",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_birthday — Your birthday
Advertised by the server during the last successful anonymous check.
Advertised read-only

Describes the sky on a birthday: the Sun's sign for that date, its traditional meaning, the decan, and whether the date falls on a cusp where the sign depends on the year or time. A month and day (05-03) is enough for general birthday facts. Use a full birth date only to resolve a cusp date's sign in that birth year or calculate a solar return, the moment the Sun comes back to its birth position, with a time and time zone if known. Longitude is only for historical local mean time; do not request coordinates for modern birthdays. It links to the date's birthday page and names the famous people Zodiacs publishes who were born on that day, as the page does. It makes no prediction. If they want to share it, give them the returned shareUrl exactly; it carries the month and day, never the year.

get_birthday input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "date": {
      "type": "string",
      "pattern": "^\\d{2}-\\d{2}$",
      "description": "A birthday without a year, as MM-DD, such as 05-03 for 3 May. This is enough for general birthday facts. Give this or birthDate."
    },
    "time": {
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
      "description": "The birth time on the local clock, if known. Needs zone."
    },
    "year": {
      "type": "integer",
      "maximum": 2199,
      "minimum": 1801,
      "description": "The year of the solar return. Defaults to the current year. Needs birthDate."
    },
    "zone": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_+-]*(?:\\/[A-Za-z0-9_+-]+){0,3}$",
      "maxLength": 64,
      "minLength": 1,
      "description": "The birthplace's time zone, such as Europe/London."
    },
    "birthDate": {
      "type": "string",
      "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$",
      "description": "The full birth date, such as 1997-05-03. Use only for the solar return or to resolve the sign of a cusp date in that birth year."
    },
    "longitude": {
      "type": "number",
      "maximum": 180,
      "minimum": -180,
      "description": "Use only for historical birth dates when the birthplace used local mean time, to convert its clock to UTC. Needs zone. Do not request coordinates for modern birthdays."
    }
  },
  "additionalProperties": false
}
get_birthday output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "month",
            "day",
            "label",
            "sunSpan",
            "sign",
            "signFrom",
            "boundary",
            "cusp",
            "decan",
            "sunAtBirth",
            "famous",
            "pageUrl",
            "shareUrl",
            "solarReturn",
            "note"
          ],
          "properties": {
            "day": {
              "type": "integer",
              "maximum": 31,
              "minimum": 1
            },
            "cusp": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "signs",
                    "wholeDayYears",
                    "splitYears",
                    "ingressUtcRange",
                    "summary",
                    "reading"
                  ],
                  "properties": {
                    "signs": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 2,
                      "minItems": 2
                    },
                    "reading": {
                      "anyOf": [
                        {
                          "anyOf": [
                            {
                              "type": "object",
                              "required": [
                                "year",
                                "kind",
                                "sign",
                                "text"
                              ],
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "whole"
                                },
                                "sign": {
                                  "type": "string"
                                },
                                "text": {
                                  "type": "string"
                                },
                                "year": {
                                  "type": "number"
                                }
                              },
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "required": [
                                "year",
                                "kind",
                                "before",
                                "after",
                                "atUtc",
                                "text"
                              ],
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "split"
                                },
                                "text": {
                                  "type": "string"
                                },
                                "year": {
                                  "type": "number"
                                },
                                "after": {
                                  "type": "string"
                                },
                                "atUtc": {
                                  "type": "string"
                                },
                                "before": {
                                  "type": "string"
                                }
                              },
                              "additionalProperties": false
                            }
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "summary": {
                      "type": "string"
                    },
                    "splitYears": {
                      "type": "number"
                    },
                    "wholeDayYears": {
                      "type": "object",
                      "required": [
                        "first",
                        "second"
                      ],
                      "properties": {
                        "first": {
                          "type": "number"
                        },
                        "second": {
                          "type": "number"
                        }
                      },
                      "additionalProperties": false
                    },
                    "ingressUtcRange": {
                      "anyOf": [
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          },
                          "maxItems": 2,
                          "minItems": 2
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "note": {
              "type": "string",
              "const": "Facts about the Sun on this date and their traditional meanings."
            },
            "sign": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "slug",
                    "name",
                    "element",
                    "modality",
                    "ruler",
                    "dates",
                    "meaning"
                  ],
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "slug": {
                      "type": "string"
                    },
                    "dates": {
                      "type": "string"
                    },
                    "ruler": {
                      "type": "string"
                    },
                    "element": {
                      "type": "string"
                    },
                    "meaning": {
                      "type": "string"
                    },
                    "modality": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "decan": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "first",
                    "last",
                    "rulers",
                    "text"
                  ],
                  "properties": {
                    "last": {
                      "type": "integer",
                      "maximum": 3,
                      "minimum": 1
                    },
                    "text": {
                      "type": "string"
                    },
                    "first": {
                      "type": "integer",
                      "maximum": 3,
                      "minimum": 1
                    },
                    "rulers": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "maxItems": 2,
                      "minItems": 1
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "label": {
              "type": "string"
            },
            "month": {
              "type": "integer",
              "maximum": 12,
              "minimum": 1
            },
            "famous": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "people",
                    "more"
                  ],
                  "properties": {
                    "more": {
                      "type": "integer",
                      "maximum": 9007199254740991,
                      "minimum": 0
                    },
                    "people": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "name",
                          "url"
                        ],
                        "properties": {
                          "url": {
                            "type": "string",
                            "format": "uri"
                          },
                          "name": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": false
                      },
                      "maxItems": 3,
                      "minItems": 1
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "pageUrl": {
              "type": "string",
              "format": "uri"
            },
            "sunSpan": {
              "type": "object",
              "required": [
                "from",
                "to",
                "years",
                "text"
              ],
              "properties": {
                "to": {
                  "type": "string"
                },
                "from": {
                  "type": "string"
                },
                "text": {
                  "type": "string"
                },
                "years": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "boundary": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "nearestDegrees",
                    "text"
                  ],
                  "properties": {
                    "text": {
                      "type": "string"
                    },
                    "nearestDegrees": {
                      "type": "number"
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "shareUrl": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uri"
                },
                {
                  "type": "null"
                }
              ]
            },
            "signFrom": {
              "anyOf": [
                {
                  "enum": [
                    "date",
                    "birth-year",
                    "birth-time"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "sunAtBirth": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "longitude",
                    "position",
                    "timeKnown"
                  ],
                  "properties": {
                    "position": {
                      "type": "string"
                    },
                    "longitude": {
                      "type": "number"
                    },
                    "timeKnown": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "solarReturn": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "year",
                    "instant",
                    "timeKnown",
                    "range",
                    "note"
                  ],
                  "properties": {
                    "note": {
                      "type": "string"
                    },
                    "year": {
                      "type": "integer",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991
                    },
                    "range": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "earliest",
                            "latest"
                          ],
                          "properties": {
                            "latest": {
                              "type": "object",
                              "required": [
                                "utc",
                                "local"
                              ],
                              "properties": {
                                "utc": {
                                  "type": "string"
                                },
                                "local": {
                                  "type": "string"
                                }
                              },
                              "additionalProperties": false
                            },
                            "earliest": {
                              "type": "object",
                              "required": [
                                "utc",
                                "local"
                              ],
                              "properties": {
                                "utc": {
                                  "type": "string"
                                },
                                "local": {
                                  "type": "string"
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "instant": {
                      "type": "object",
                      "required": [
                        "utc",
                        "local"
                      ],
                      "properties": {
                        "utc": {
                          "type": "string"
                        },
                        "local": {
                          "type": "string"
                        }
                      },
                      "additionalProperties": false
                    },
                    "timeKnown": {
                      "type": "boolean"
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "get_birthday"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_capabilities",
            "get_sky",
            "get_upcoming_events",
            "check_sky_fact",
            "get_horoscope",
            "open_chart_studio",
            "get_occasion_sky",
            "get_life_milestones",
            "get_compatibility",
            "find_chart_twins",
            "get_famous_chart",
            "get_birthday",
            "get_sky_calendar"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
get_birthday annotations
{
  "title": "Your birthday",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
get_sky_calendar — Sky calendar for your calendar app
Advertised by the server during the last successful anonymous check.
Advertised read-only

Gives the link to subscribe to Zodiacs' sky calendar in Google Calendar, Apple Calendar or Outlook: new and full Moons, eclipses and retrograde periods, updated automatically, with how to add it and the next few events. Use it when someone wants these in their own calendar. Available in English, Spanish, Portuguese, French, Italian and Russian. If they want to share the calendar, give them the returned shareUrl exactly; it shows the next event.

get_sky_calendar input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "language": {
      "enum": [
        "en",
        "es",
        "pt",
        "fr",
        "it",
        "ru"
      ],
      "type": "string",
      "description": "The language of the event titles: en (the default), es, pt, fr, it or ru."
    }
  },
  "additionalProperties": false
}
get_sky_calendar output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "language",
            "feedUrl",
            "subscribeUrl",
            "pageUrl",
            "shareUrl",
            "contains",
            "covers",
            "next",
            "howTo",
            "note"
          ],
          "properties": {
            "next": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "title",
                  "start",
                  "end"
                ],
                "properties": {
                  "end": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "start": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              "maxItems": 3
            },
            "note": {
              "type": "string"
            },
            "howTo": {
              "type": "object",
              "required": [
                "google",
                "apple",
                "outlook"
              ],
              "properties": {
                "apple": {
                  "type": "string"
                },
                "google": {
                  "type": "string"
                },
                "outlook": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "covers": {
              "type": "object",
              "required": [
                "from",
                "to"
              ],
              "properties": {
                "to": {
                  "type": "string"
                },
                "from": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "feedUrl": {
              "type": "string",
              "format": "uri"
            },
            "pageUrl": {
              "type": "string",
              "format": "uri"
            },
            "contains": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "minItems": 1
            },
            "language": {
              "enum": [
                "en",
                "es",
                "pt",
                "fr",
                "it",
                "ru"
              ],
              "type": "string"
            },
            "shareUrl": {
              "anyOf": [
                {
                  "type": "string",
                  "format": "uri"
                },
                {
                  "type": "null"
                }
              ]
            },
            "subscribeUrl": {
              "type": "string",
              "format": "uri"
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "get_sky_calendar"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_capabilities",
            "get_sky",
            "get_upcoming_events",
            "check_sky_fact",
            "get_horoscope",
            "open_chart_studio",
            "get_occasion_sky",
            "get_life_milestones",
            "get_compatibility",
            "find_chart_twins",
            "get_famous_chart",
            "get_birthday",
            "get_sky_calendar"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
get_sky_calendar annotations
{
  "title": "Sky calendar for your calendar app",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
get_natal_chart — Birth chart readout
Advertised by the server during the last successful anonymous check.
Advertised read-only

Reads one person's birth chart in the conversation when they have already given their birth date. If they have not, or want to explore it themselves, use open_chart_studio. It gives the Sun, Moon and rising signs, each planet's sign and degree, its house when the birth time and place are known, the closest aspects between the planets (the tightest by orb), and the balance of elements and modes, each with what astrology traditionally reads into it. Add the birth time, the birthplace's time zone and its latitude and longitude only as the person gives them, and never guess a birth time. When they name a town or city instead of coordinates, use find_birthplace first and pass its latitude, longitude and time zone. Without a time it says plainly what is unknown: the rising sign, the houses and, on a day the Moon changed sign, the Moon sign, which it gives as the two possibilities. When the birth time fell in a daylight saving change (a skipped or a repeated hour), timeNote says which instant the chart used; tell the person. If the birth date is under 18, do not frame the chart as romance or attraction. chartUrl opens the birth chart page and does not carry the birth date, time, place or coordinates; give it as the page to open, not as a link that holds their details.

get_natal_chart input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "birthDate"
  ],
  "properties": {
    "time": {
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
      "description": "The birth time on the local clock, such as 08:30, only if the person knows it. Never guess it. Needs zone."
    },
    "zone": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_+-]*(?:\\/[A-Za-z0-9_+-]+){0,3}$",
      "maxLength": 64,
      "minLength": 1,
      "description": "The birthplace's time zone, such as Europe/Madrid. Needed with a time or a place."
    },
    "place": {
      "type": "string",
      "pattern": "^[^\\u0000-\\u001f\\u007f<>{}[\\]\\\\`]+$",
      "maxLength": 80,
      "minLength": 1,
      "description": "Optional birthplace name, such as Madrid, Spain. Display only: it is not used in the calculation and is not stored."
    },
    "latitude": {
      "type": "number",
      "maximum": 90,
      "minimum": -90,
      "description": "Optional. The birthplace's latitude; with a birth time it adds the rising sign and the houses. Give it with longitude and zone. Nothing is stored."
    },
    "birthDate": {
      "type": "string",
      "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$",
      "description": "The birth date, such as 1990-05-03 (years 1800 to 2199)."
    },
    "longitude": {
      "type": "number",
      "maximum": 180,
      "minimum": -180,
      "description": "Optional. The birthplace's longitude, with latitude. Nothing is stored."
    }
  },
  "additionalProperties": false
}
get_natal_chart output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "birthDate",
            "time",
            "zone",
            "place",
            "timeKnown",
            "placed",
            "castFor",
            "houseSystem",
            "sun",
            "moon",
            "rising",
            "planets",
            "angles",
            "aspects",
            "balance",
            "unknown",
            "chartUrl",
            "under18",
            "note"
          ],
          "properties": {
            "sun": {
              "type": "object",
              "required": [
                "sign",
                "possibleSigns",
                "meaning",
                "pageUrl"
              ],
              "properties": {
                "sign": {
                  "anyOf": [
                    {
                      "enum": [
                        "aries",
                        "taurus",
                        "gemini",
                        "cancer",
                        "leo",
                        "virgo",
                        "libra",
                        "scorpio",
                        "sagittarius",
                        "capricorn",
                        "aquarius",
                        "pisces"
                      ],
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "meaning": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "pageUrl": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uri"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "possibleSigns": {
                  "type": "array",
                  "items": {
                    "enum": [
                      "aries",
                      "taurus",
                      "gemini",
                      "cancer",
                      "leo",
                      "virgo",
                      "libra",
                      "scorpio",
                      "sagittarius",
                      "capricorn",
                      "aquarius",
                      "pisces"
                    ],
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            "moon": {
              "type": "object",
              "required": [
                "sign",
                "possibleSigns",
                "meaning",
                "pageUrl"
              ],
              "properties": {
                "sign": {
                  "anyOf": [
                    {
                      "enum": [
                        "aries",
                        "taurus",
                        "gemini",
                        "cancer",
                        "leo",
                        "virgo",
                        "libra",
                        "scorpio",
                        "sagittarius",
                        "capricorn",
                        "aquarius",
                        "pisces"
                      ],
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "meaning": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "pageUrl": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uri"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "possibleSigns": {
                  "type": "array",
                  "items": {
                    "enum": [
                      "aries",
                      "taurus",
                      "gemini",
                      "cancer",
                      "leo",
                      "virgo",
                      "libra",
                      "scorpio",
                      "sagittarius",
                      "capricorn",
                      "aquarius",
                      "pisces"
                    ],
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            "note": {
              "type": "string",
              "const": "Astrology’s reading of a birth chart: tendencies to reflect on, not a prediction or a fixed destiny."
            },
            "time": {
              "type": [
                "string",
                "null"
              ]
            },
            "zone": {
              "type": [
                "string",
                "null"
              ]
            },
            "place": {
              "type": [
                "string",
                "null"
              ]
            },
            "angles": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "ascendant",
                    "midheaven"
                  ],
                  "properties": {
                    "ascendant": {
                      "type": "string"
                    },
                    "midheaven": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "placed": {
              "type": "boolean"
            },
            "rising": {
              "type": "object",
              "required": [
                "sign",
                "possibleSigns",
                "meaning",
                "pageUrl"
              ],
              "properties": {
                "sign": {
                  "anyOf": [
                    {
                      "enum": [
                        "aries",
                        "taurus",
                        "gemini",
                        "cancer",
                        "leo",
                        "virgo",
                        "libra",
                        "scorpio",
                        "sagittarius",
                        "capricorn",
                        "aquarius",
                        "pisces"
                      ],
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "meaning": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "pageUrl": {
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uri"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "possibleSigns": {
                  "type": "array",
                  "items": {
                    "enum": [
                      "aries",
                      "taurus",
                      "gemini",
                      "cancer",
                      "leo",
                      "virgo",
                      "libra",
                      "scorpio",
                      "sagittarius",
                      "capricorn",
                      "aquarius",
                      "pisces"
                    ],
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            "aspects": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "a",
                  "b",
                  "type",
                  "orb",
                  "line"
                ],
                "properties": {
                  "a": {
                    "enum": [
                      "Sun",
                      "Moon",
                      "Mercury",
                      "Venus",
                      "Mars",
                      "Jupiter",
                      "Saturn",
                      "Uranus",
                      "Neptune",
                      "Pluto"
                    ],
                    "type": "string"
                  },
                  "b": {
                    "enum": [
                      "Sun",
                      "Moon",
                      "Mercury",
                      "Venus",
                      "Mars",
                      "Jupiter",
                      "Saturn",
                      "Uranus",
                      "Neptune",
                      "Pluto"
                    ],
                    "type": "string"
                  },
                  "orb": {
                    "type": "number",
                    "minimum": 0
                  },
                  "line": {
                    "type": "string"
                  },
                  "type": {
                    "enum": [
                      "conjunction",
                      "sextile",
                      "square",
                      "trine",
                      "opposition"
                    ],
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              "maxItems": 8
            },
            "balance": {
              "type": "object",
              "required": [
                "elements",
                "modalities",
                "lines"
              ],
              "properties": {
                "lines": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "elements": {
                  "type": "object",
                  "required": [
                    "fire",
                    "earth",
                    "air",
                    "water"
                  ],
                  "properties": {
                    "air": {
                      "type": "integer",
                      "maximum": 9007199254740991,
                      "minimum": 0
                    },
                    "fire": {
                      "type": "integer",
                      "maximum": 9007199254740991,
                      "minimum": 0
                    },
                    "earth": {
                      "type": "integer",
                      "maximum": 9007199254740991,
                      "minimum": 0
                    },
                    "water": {
                      "type": "integer",
                      "maximum": 9007199254740991,
                      "minimum": 0
                    }
                  },
                  "additionalProperties": false
                },
                "modalities": {
                  "type": "object",
                  "required": [
                    "cardinal",
                    "fixed",
                    "mutable"
                  ],
                  "properties": {
                    "fixed": {
                      "type": "integer",
                      "maximum": 9007199254740991,
                      "minimum": 0
                    },
                    "mutable": {
                      "type": "integer",
                      "maximum": 9007199254740991,
                      "minimum": 0
                    },
                    "cardinal": {
                      "type": "integer",
                      "maximum": 9007199254740991,
                      "minimum": 0
                    }
                  },
                  "additionalProperties": false
                }
              },
              "additionalProperties": false
            },
            "castFor": {
              "type": "object",
              "required": [
                "utc",
                "basis"
              ],
              "properties": {
                "utc": {
                  "type": "string"
                },
                "basis": {
                  "enum": [
                    "birth-time",
                    "local-noon",
                    "utc-noon"
                  ],
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "planets": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "body",
                  "sign",
                  "possibleSigns",
                  "position",
                  "retrograde",
                  "house",
                  "signLine",
                  "houseLine",
                  "pageUrl"
                ],
                "properties": {
                  "body": {
                    "enum": [
                      "Sun",
                      "Moon",
                      "Mercury",
                      "Venus",
                      "Mars",
                      "Jupiter",
                      "Saturn",
                      "Uranus",
                      "Neptune",
                      "Pluto"
                    ],
                    "type": "string"
                  },
                  "sign": {
                    "anyOf": [
                      {
                        "enum": [
                          "aries",
                          "taurus",
                          "gemini",
                          "cancer",
                          "leo",
                          "virgo",
                          "libra",
                          "scorpio",
                          "sagittarius",
                          "capricorn",
                          "aquarius",
                          "pisces"
                        ],
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "house": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "maximum": 12,
                        "minimum": 1
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "pageUrl": {
                    "anyOf": [
                      {
                        "type": "string",
                        "format": "uri"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "position": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "signLine": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "houseLine": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "retrograde": {
                    "type": "boolean"
                  },
                  "possibleSigns": {
                    "type": "array",
                    "items": {
                      "enum": [
                        "aries",
                        "taurus",
                        "gemini",
                        "cancer",
                        "leo",
                        "virgo",
                        "libra",
                        "scorpio",
                        "sagittarius",
                        "capricorn",
                        "aquarius",
                        "pisces"
                      ],
                      "type": "string"
                    }
                  }
                },
                "additionalProperties": false
              },
              "maxItems": 10,
              "minItems": 10
            },
            "under18": {
              "type": "boolean"
            },
            "unknown": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "chartUrl": {
              "type": "string",
              "format": "uri"
            },
            "timeNote": {
              "type": "object",
              "required": [
                "kind",
                "shiftMinutes",
                "offsetUsed",
                "text"
              ],
              "properties": {
                "kind": {
                  "enum": [
                    "dst-gap",
                    "dst-fold"
                  ],
                  "type": "string"
                },
                "text": {
                  "type": "string"
                },
                "offsetUsed": {
                  "type": "string"
                },
                "shiftMinutes": {
                  "type": "number",
                  "minimum": 0
                }
              },
              "additionalProperties": false
            },
            "birthDate": {
              "type": "string"
            },
            "timeKnown": {
              "type": "boolean"
            },
            "houseSystem": {
              "anyOf": [
                {
                  "enum": [
                    "whole-sign"
                  ],
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "get_natal_chart"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_natal_chart",
            "get_horoscope_period",
            "get_chinese_zodiac",
            "get_personal_transits",
            "explain_astrology"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
get_natal_chart annotations
{
  "title": "Birth chart readout",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_horoscope_period — Monthly, yearly and weekly horoscopes
Advertised by the server during the last successful anonymous check.
Advertised read-only

Shows a Sun-sign horoscope for a month, a year, or a love or career week: the reading Zodiacs publishes for that period and the period's sky for the sign (planets changing sign, turning retrograde or direct, new and full Moons and eclipses) placed in the sign's solar houses; a month's sky leaves out the Moon's sign changes. Monthly readings are published from the first of each month; yearly readings are published for 2026 and 2027. A week is only for focus love or career: it adds that focus's daily readings in the week and keeps the sky events that bear on it. For a general week, and for today's or tomorrow's horoscope, use get_horoscope. When a reading is not published it says so and still gives the sky; never write a reading yourself in its place. If the person is under 18, do not use focus love and do not frame the reading as romance or attraction. Share the forecast plainly and confidently, with the reading-confidence label it returns. Do not call it for stock picks, investment advice, health predictions or guaranteed outcomes. Never guess the sign.

get_horoscope_period input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "sign",
    "period"
  ],
  "properties": {
    "date": {
      "type": "string",
      "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$",
      "description": "Any day in the month, year or week wanted, such as 2026-12-01 for December 2026. Leave it out for the person's current month, year or week."
    },
    "sign": {
      "enum": [
        "aries",
        "taurus",
        "gemini",
        "cancer",
        "leo",
        "virgo",
        "libra",
        "scorpio",
        "sagittarius",
        "capricorn",
        "aquarius",
        "pisces"
      ],
      "type": "string",
      "description": "Sun sign. Never guess it; ask the person if they have not said."
    },
    "zone": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_+-]*(?:\\/[A-Za-z0-9_+-]+){0,3}$",
      "maxLength": 64,
      "minLength": 1,
      "description": "The person's time zone, such as America/New_York, so the period and dates are their own. Without it, UTC."
    },
    "focus": {
      "enum": [
        "general",
        "love",
        "career"
      ],
      "type": "string",
      "description": "general (the default), love or career. For a week it adds that focus's daily readings; for every period it keeps the sky events that bear on it."
    },
    "period": {
      "enum": [
        "month",
        "year",
        "week"
      ],
      "type": "string",
      "description": "month, year or week."
    }
  },
  "additionalProperties": false
}
get_horoscope_period output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "status",
            "sign",
            "signName",
            "period",
            "focus",
            "from",
            "to",
            "label",
            "zone",
            "zoneSource",
            "reading",
            "focusReadings",
            "sky",
            "message",
            "available",
            "pageUrl",
            "confidence",
            "confidenceLabel",
            "disclosure"
          ],
          "properties": {
            "to": {
              "type": "string"
            },
            "sky": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "date",
                  "utc",
                  "kind",
                  "planet",
                  "sign",
                  "house",
                  "line"
                ],
                "properties": {
                  "utc": {
                    "type": "string"
                  },
                  "date": {
                    "type": "string"
                  },
                  "kind": {
                    "enum": [
                      "ingress",
                      "station",
                      "lunation",
                      "eclipse"
                    ],
                    "type": "string"
                  },
                  "line": {
                    "type": "string"
                  },
                  "sign": {
                    "type": "string"
                  },
                  "house": {
                    "type": "integer",
                    "maximum": 12,
                    "minimum": 1
                  },
                  "planet": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            },
            "from": {
              "type": "string"
            },
            "sign": {
              "enum": [
                "aries",
                "taurus",
                "gemini",
                "cancer",
                "leo",
                "virgo",
                "libra",
                "scorpio",
                "sagittarius",
                "capricorn",
                "aquarius",
                "pisces"
              ],
              "type": "string"
            },
            "zone": {
              "type": "string"
            },
            "focus": {
              "enum": [
                "general",
                "love",
                "career"
              ],
              "type": "string"
            },
            "label": {
              "type": "string"
            },
            "period": {
              "enum": [
                "month",
                "year",
                "week"
              ],
              "type": "string"
            },
            "status": {
              "enum": [
                "available",
                "sky-only"
              ],
              "type": "string"
            },
            "message": {
              "type": [
                "string",
                "null"
              ]
            },
            "pageUrl": {
              "type": "string",
              "format": "uri"
            },
            "reading": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "title",
                    "paragraphs",
                    "published"
                  ],
                  "properties": {
                    "title": {
                      "type": "string"
                    },
                    "published": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "paragraphs": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "text"
                        ],
                        "properties": {
                          "text": {
                            "type": "string"
                          },
                          "heading": {
                            "type": "string"
                          }
                        },
                        "additionalProperties": false
                      }
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "signName": {
              "type": "string"
            },
            "available": {
              "type": "object",
              "required": [
                "months",
                "years"
              ],
              "properties": {
                "years": {
                  "type": "array",
                  "items": {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991
                  }
                },
                "months": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            "confidence": {
              "type": "integer",
              "maximum": 95,
              "minimum": 40
            },
            "disclosure": {
              "type": "string"
            },
            "zoneSource": {
              "enum": [
                "request",
                "assistant",
                "default"
              ],
              "type": "string"
            },
            "focusReadings": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "date",
                  "title",
                  "paragraphs"
                ],
                "properties": {
                  "date": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "paragraphs": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "text"
                      ],
                      "properties": {
                        "text": {
                          "type": "string"
                        },
                        "heading": {
                          "type": "string"
                        }
                      },
                      "additionalProperties": false
                    }
                  }
                },
                "additionalProperties": false
              }
            },
            "confidenceLabel": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "get_horoscope_period"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_natal_chart",
            "get_horoscope_period",
            "get_chinese_zodiac",
            "get_personal_transits",
            "explain_astrology"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
get_horoscope_period annotations
{
  "title": "Monthly, yearly and weekly horoscopes",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
get_chinese_zodiac — Chinese zodiac
Advertised by the server during the last successful anonymous check.
Advertised read-only

Gives the Chinese zodiac animal, element and yin or yang for a birth date or a year, and the current year's animal. A birth date before that year's Lunar New Year belongs to the previous animal year; the answer gives the Lunar New Year date it used. With only a year, it says which animal applies to anyone born before that year's Lunar New Year. It adds the animal's traditional associations and its traditional pairings (the harmonious three, the six-harmony partner and the opposite animal), with links to the animal's page. Pass the person's time zone if you know it so the current year is their own. Without a zone the current year assumes UTC and the answer says so.

get_chinese_zodiac input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "year": {
      "type": "integer",
      "maximum": 2100,
      "minimum": 1901,
      "description": "A year, such as 1990, when the person gives only a year. The answer says which animal applies before that year's Lunar New Year."
    },
    "zone": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_+-]*(?:\\/[A-Za-z0-9_+-]+){0,3}$",
      "maxLength": 64,
      "minLength": 1,
      "description": "The person's time zone, such as Asia/Singapore, so the current year is worked out for their own date. Without it, UTC."
    },
    "birthDate": {
      "type": "string",
      "pattern": "^(?:19|20|21)\\d{2}-\\d{2}-\\d{2}$",
      "description": "The birth date, such as 1990-01-20 (1901 to 2100). A date before that year's Lunar New Year belongs to the previous animal. Give this or year."
    }
  },
  "additionalProperties": false
}
get_chinese_zodiac output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "from",
            "birthDate",
            "person",
            "boundary",
            "current",
            "today",
            "zone",
            "zoneNote",
            "guideUrl",
            "note"
          ],
          "properties": {
            "from": {
              "enum": [
                "birth-date",
                "year",
                "today"
              ],
              "type": "string"
            },
            "note": {
              "type": "string",
              "const": "Traditional associations of the Chinese calendar, for reflection: not a personality test or a prediction."
            },
            "zone": {
              "type": "string"
            },
            "today": {
              "type": "string"
            },
            "person": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "year",
                    "animal",
                    "element",
                    "yinYang",
                    "stemBranch",
                    "label",
                    "starts",
                    "ends",
                    "association",
                    "context",
                    "pairings"
                  ],
                  "properties": {
                    "ends": {
                      "type": "string"
                    },
                    "year": {
                      "type": "integer",
                      "maximum": 9007199254740991,
                      "minimum": -9007199254740991
                    },
                    "label": {
                      "type": "string"
                    },
                    "animal": {
                      "type": "object",
                      "required": [
                        "slug",
                        "name",
                        "pageUrl",
                        "branch",
                        "branchPinyin",
                        "position"
                      ],
                      "properties": {
                        "name": {
                          "type": "string"
                        },
                        "slug": {
                          "enum": [
                            "rat",
                            "ox",
                            "tiger",
                            "rabbit",
                            "dragon",
                            "snake",
                            "horse",
                            "goat",
                            "monkey",
                            "rooster",
                            "dog",
                            "pig"
                          ],
                          "type": "string"
                        },
                        "branch": {
                          "type": "string"
                        },
                        "pageUrl": {
                          "type": "string",
                          "format": "uri"
                        },
                        "position": {
                          "type": "integer",
                          "maximum": 12,
                          "minimum": 1
                        },
                        "branchPinyin": {
                          "type": "string"
                        }
                      },
                      "additionalProperties": false
                    },
                    "starts": {
                      "type": "string"
                    },
                    "context": {
                      "type": "string"
                    },
                    "element": {
                      "enum": [
                        "wood",
                        "fire",
                        "earth",
                        "metal",
                        "water"
                      ],
                      "type": "string"
                    },
                    "yinYang": {
                      "enum": [
                        "yin",
                        "yang"
                      ],
                      "type": "string"
                    },
                    "pairings": {
                      "type": "object",
                      "required": [
                        "harmony",
                        "partner",
                        "opposite",
                        "text"
                      ],
                      "properties": {
                        "text": {
                          "type": "string"
                        },
                        "harmony": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "required": [
                              "slug",
                              "name",
                              "pageUrl"
                            ],
                            "properties": {
                              "name": {
                                "type": "string"
                              },
                              "slug": {
                                "enum": [
                                  "rat",
                                  "ox",
                                  "tiger",
                                  "rabbit",
                                  "dragon",
                                  "snake",
                                  "horse",
                                  "goat",
                                  "monkey",
                                  "rooster",
                                  "dog",
                                  "pig"
                                ],
                                "type": "string"
                              },
                              "pageUrl": {
                                "type": "string",
                                "format": "uri"
                              }
                            },
                            "additionalProperties": false
                          },
                          "maxItems": 2,
                          "minItems": 2
                        },
                        "partner": {
                          "type": "object",
                          "required": [
                            "slug",
                            "name",
                            "pageUrl"
                          ],
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "slug": {
                              "enum": [
                                "rat",
                                "ox",
                                "tiger",
                                "rabbit",
                                "dragon",
                                "snake",
                                "horse",
                                "goat",
                                "monkey",
                                "rooster",
                                "dog",
                                "pig"
                              ],
                              "type": "string"
                            },
                            "pageUrl": {
                              "type": "string",
                              "format": "uri"
                            }
                          },
                          "additionalProperties": false
                        },
                        "opposite": {
                          "type": "object",
                          "required": [
                            "slug",
                            "name",
                            "pageUrl"
                          ],
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "slug": {
                              "enum": [
                                "rat",
                                "ox",
                                "tiger",
                                "rabbit",
                                "dragon",
                                "snake",
                                "horse",
                                "goat",
                                "monkey",
                                "rooster",
                                "dog",
                                "pig"
                              ],
                              "type": "string"
                            },
                            "pageUrl": {
                              "type": "string",
                              "format": "uri"
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    },
                    "stemBranch": {
                      "type": "string"
                    },
                    "association": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "current": {
              "type": "object",
              "required": [
                "year",
                "animal",
                "element",
                "yinYang",
                "stemBranch",
                "label",
                "starts",
                "ends"
              ],
              "properties": {
                "ends": {
                  "type": "string"
                },
                "year": {
                  "type": "integer",
                  "maximum": 9007199254740991,
                  "minimum": -9007199254740991
                },
                "label": {
                  "type": "string"
                },
                "animal": {
                  "type": "object",
                  "required": [
                    "slug",
                    "name",
                    "pageUrl",
                    "branch",
                    "branchPinyin",
                    "position"
                  ],
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "slug": {
                      "enum": [
                        "rat",
                        "ox",
                        "tiger",
                        "rabbit",
                        "dragon",
                        "snake",
                        "horse",
                        "goat",
                        "monkey",
                        "rooster",
                        "dog",
                        "pig"
                      ],
                      "type": "string"
                    },
                    "branch": {
                      "type": "string"
                    },
                    "pageUrl": {
                      "type": "string",
                      "format": "uri"
                    },
                    "position": {
                      "type": "integer",
                      "maximum": 12,
                      "minimum": 1
                    },
                    "branchPinyin": {
                      "type": "string"
                    }
                  },
                  "additionalProperties": false
                },
                "starts": {
                  "type": "string"
                },
                "element": {
                  "enum": [
                    "wood",
                    "fire",
                    "earth",
                    "metal",
                    "water"
                  ],
                  "type": "string"
                },
                "yinYang": {
                  "enum": [
                    "yin",
                    "yang"
                  ],
                  "type": "string"
                },
                "stemBranch": {
                  "type": "string"
                }
              },
              "additionalProperties": false
            },
            "boundary": {
              "anyOf": [
                {
                  "type": "object",
                  "required": [
                    "lunarNewYear",
                    "beforeNewYear",
                    "earlierAnimal",
                    "text"
                  ],
                  "properties": {
                    "text": {
                      "type": "string"
                    },
                    "lunarNewYear": {
                      "type": "string"
                    },
                    "beforeNewYear": {
                      "type": [
                        "boolean",
                        "null"
                      ]
                    },
                    "earlierAnimal": {
                      "anyOf": [
                        {
                          "type": "object",
                          "required": [
                            "slug",
                            "name",
                            "pageUrl"
                          ],
                          "properties": {
                            "name": {
                              "type": "string"
                            },
                            "slug": {
                              "enum": [
                                "rat",
                                "ox",
                                "tiger",
                                "rabbit",
                                "dragon",
                                "snake",
                                "horse",
                                "goat",
                                "monkey",
                                "rooster",
                                "dog",
                                "pig"
                              ],
                              "type": "string"
                            },
                            "pageUrl": {
                              "type": "string",
                              "format": "uri"
                            }
                          },
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "guideUrl": {
              "type": "string",
              "format": "uri"
            },
            "zoneNote": {
              "type": [
                "string",
                "null"
              ]
            },
            "birthDate": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "get_chinese_zodiac"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_natal_chart",
            "get_horoscope_period",
            "get_chinese_zodiac",
            "get_personal_transits",
            "explain_astrology"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
get_chinese_zodiac annotations
{
  "title": "Chinese zodiac",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
get_personal_transits — Your transits
Advertised by the server during the last successful anonymous check.
Advertised read-only

Lists dated transits to the person's own birth chart: when the moving planets make exact aspects to their natal planets (and to the rising degree and Midheaven when the birth time and place are known), with what astrology traditionally reads into each. Use it for my transits, what's coming up for me, or my year ahead, once the person has given a birth date; for a Sun-sign horoscope use get_horoscope or get_horoscope_period. Give the birth date, and the time, birthplace time zone and coordinates only as the person gives them; never guess a birth time. When they name a town or city instead of coordinates, use find_birthplace first and pass its latitude, longitude and time zone. Pass currentZone, where they live now, so the dates fall on their own clock. By default it covers the next 30 days; give from and to for any window up to 366 days (windows over 92 days keep to Jupiter through Pluto). The window cannot start before the birth date. A retrograde contact's pass number counts the whole loop, including passes outside the window. With mode year-ahead it gives the year's highlights instead: Jupiter and Saturn on the Sun, Moon, Mercury, Venus, Mars and rising degree, Uranus, Neptune and Pluto on the Sun, Moon, Mercury, Venus and Mars, the solar return, a Saturn return, Jupiter and Saturn changing sign (with the house it falls in when the time and place are known) and eclipses near natal planets. If the birth date is under 18, do not frame the lines as romance or attraction. Present each line plainly and confidently as astrology's reading, with its reading-confidence label, never as a guarantee, and never turn a line into health, financial or medical advice.

get_personal_transits input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "birthDate"
  ],
  "properties": {
    "to": {
      "type": "string",
      "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$",
      "description": "For window: the last day, at most 366 days after from. Defaults to a 30-day window, from included."
    },
    "from": {
      "type": "string",
      "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$",
      "description": "For window: the first day, such as 2026-11-01. Defaults to today."
    },
    "mode": {
      "enum": [
        "window",
        "year-ahead"
      ],
      "type": "string",
      "description": "window (the default): every exact contact between from and to. year-ahead: the year from today, with Jupiter and Saturn, the solar return, a Saturn return, sign changes and eclipses near the chart."
    },
    "time": {
      "type": "string",
      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$",
      "description": "The birth time on the local clock, only if the person knows it. Never guess it. Needs zone. Without it the Moon, rising degree and Midheaven are left out."
    },
    "zone": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_+-]*(?:\\/[A-Za-z0-9_+-]+){0,3}$",
      "maxLength": 64,
      "minLength": 1,
      "description": "The birthplace's time zone, such as Europe/Madrid. Needed with a time or a place."
    },
    "latitude": {
      "type": "number",
      "maximum": 90,
      "minimum": -90,
      "description": "Optional. The birthplace's latitude; with a birth time it adds the rising degree and Midheaven. Give it with longitude and zone. Nothing is stored."
    },
    "birthDate": {
      "type": "string",
      "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$",
      "description": "The birth date, such as 1990-05-03 (years 1800 to 2199)."
    },
    "longitude": {
      "type": "number",
      "maximum": 180,
      "minimum": -180,
      "description": "Optional. The birthplace's longitude, with latitude. Nothing is stored."
    },
    "currentZone": {
      "type": "string",
      "pattern": "^[A-Za-z][A-Za-z0-9_+-]*(?:\\/[A-Za-z0-9_+-]+){0,3}$",
      "maxLength": 64,
      "minLength": 1,
      "description": "Where the person lives now, such as Asia/Bangkok, so dates fall on their own clock. Without it, dates use the birthplace clock, or UTC if that is missing too, and the answer says which."
    }
  },
  "additionalProperties": false
}
get_personal_transits output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "mode",
            "birthDate",
            "timeKnown",
            "placed",
            "from",
            "to",
            "zone",
            "scanned",
            "contacts",
            "found",
            "highlights",
            "limits",
            "sun",
            "under18",
            "pageUrl",
            "note"
          ],
          "properties": {
            "to": {
              "type": "string"
            },
            "sun": {
              "type": [
                "string",
                "null"
              ]
            },
            "from": {
              "type": "string"
            },
            "mode": {
              "enum": [
                "window",
                "year-ahead"
              ],
              "type": "string"
            },
            "note": {
              "type": "string",
              "const": "Astrology’s reading of the sky meeting your birth chart, for reflection: not a guarantee, and not a forecast of health or money."
            },
            "zone": {
              "type": "string"
            },
            "found": {
              "type": "integer",
              "maximum": 9007199254740991,
              "minimum": 0
            },
            "limits": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "placed": {
              "type": "boolean"
            },
            "pageUrl": {
              "type": "string",
              "format": "uri"
            },
            "scanned": {
              "type": "object",
              "required": [
                "planets",
                "points"
              ],
              "properties": {
                "points": {
                  "type": "array",
                  "items": {
                    "enum": [
                      "Sun",
                      "Moon",
                      "Mercury",
                      "Venus",
                      "Mars",
                      "Jupiter",
                      "Saturn",
                      "Uranus",
                      "Neptune",
                      "Pluto",
                      "ASC",
                      "MC"
                    ],
                    "type": "string"
                  }
                },
                "planets": {
                  "type": "array",
                  "items": {
                    "enum": [
                      "Sun",
                      "Moon",
                      "Mercury",
                      "Venus",
                      "Mars",
                      "Jupiter",
                      "Saturn",
                      "Uranus",
                      "Neptune",
                      "Pluto"
                    ],
                    "type": "string"
                  }
                }
              },
              "additionalProperties": false
            },
            "under18": {
              "type": "boolean"
            },
            "contacts": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "date",
                  "exactUtc",
                  "planet",
                  "aspect",
                  "point",
                  "pass",
                  "passCount",
                  "firstPass",
                  "lastPass",
                  "confidence",
                  "confidenceLabel",
                  "title",
                  "line"
                ],
                "properties": {
                  "date": {
                    "type": "string"
                  },
                  "line": {
                    "type": "string"
                  },
                  "pass": {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 1
                  },
                  "point": {
                    "enum": [
                      "Sun",
                      "Moon",
                      "Mercury",
                      "Venus",
                      "Mars",
                      "Jupiter",
                      "Saturn",
                      "Uranus",
                      "Neptune",
                      "Pluto",
                      "ASC",
                      "MC"
                    ],
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "aspect": {
                    "enum": [
                      "conjunction",
                      "sextile",
                      "square",
                      "trine",
                      "opposition"
                    ],
                    "type": "string"
                  },
                  "planet": {
                    "enum": [
                      "Sun",
                      "Moon",
                      "Mercury",
                      "Venus",
                      "Mars",
                      "Jupiter",
                      "Saturn",
                      "Uranus",
                      "Neptune",
                      "Pluto"
                    ],
                    "type": "string"
                  },
                  "exactUtc": {
                    "type": "string"
                  },
                  "lastPass": {
                    "type": "string"
                  },
                  "firstPass": {
                    "type": "string"
                  },
                  "passCount": {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": 1
                  },
                  "confidence": {
                    "type": "integer",
                    "maximum": 95,
                    "minimum": 40
                  },
                  "confidenceLabel": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              },
              "maxItems": 60
            },
            "birthDate": {
              "type": "string"
            },
            "timeKnown": {
              "type": "boolean"
            },
            "highlights": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "date",
                  "endDate",
                  "kind",
                  "planet",
                  "line",
                  "confidence",
                  "confidenceLabel",
                  "house"
                ],
                "properties": {
                  "date": {
                    "type": "string"
                  },
                  "kind": {
                    "enum": [
                      "solar-return",
                      "aspect",
                      "ingress",
                      "eclipse",
                      "saturn-return"
                    ],
                    "type": "string"
                  },
                  "line": {
                    "type": "string"
                  },
                  "house": {
                    "anyOf": [
                      {
                        "type": "object",
                        "required": [
                          "number",
                          "line"
                        ],
                        "properties": {
                          "line": {
                            "type": "string"
                          },
                          "number": {
                            "type": "integer",
                            "maximum": 12,
                            "minimum": 1
                          }
                        },
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "planet": {
                    "type": "string"
                  },
                  "endDate": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "confidence": {
                    "type": "integer",
                    "maximum": 95,
                    "minimum": 40
                  },
                  "confidenceLabel": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "get_personal_transits"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_natal_chart",
            "get_horoscope_period",
            "get_chinese_zodiac",
            "get_personal_transits",
            "explain_astrology"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
get_personal_transits annotations
{
  "title": "Your transits",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
explain_astrology — Astrology explained
Advertised by the server during the last successful anonymous check.
Advertised read-only

Explains a basic astrology topic in plain words from Zodiacs' own pages, with links to them. Use it for what-does-X-mean questions, and for whether two Sun signs are compatible, such as Leo and Scorpio, which it answers from that sign-pair page. For two Sun signs as friends, include the word friendship: that answer is the element and modality pattern alone, with no romance, and it is the reading to give anyone under 18. For the person's own placements, use get_natal_chart. It covers a sign and its traits, a planet, a planet in a sign or a house, the houses or one house, aspects or one aspect, retrogrades and Mercury retrograde, Moon phases, the void-of-course Moon, eclipses, the rising sign or one sign rising, the Midheaven, the big three, cusps, the Saturn return, the solar return, elements, modalities, transits, synastry, Sun-sign pairs or the Chinese zodiac. Give the topic in a few words. If nothing matches, or the topic is tarot, numerology, horary, Vedic astrology or another system Zodiacs does not cover, it returns found: false with the topics it does explain; do not present an explainer of your own as Zodiacs'. If either person is under 18, give the friendship reading and do not frame the pair as romance or attraction.

explain_astrology input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "topic"
  ],
  "properties": {
    "topic": {
      "type": "string",
      "maxLength": 80,
      "minLength": 1,
      "description": "What to explain, in a few words: a sign (leo), a planet (Mercury), a placement (Moon in Scorpio, Jupiter in the 12th), the houses or one house (seventh house), aspects or one aspect (square), retrogrades or Mercury retrograde, Moon phases, the rising sign or a sign rising (Leo rising), the Midheaven, the big three, cusps, Saturn return, elements, modalities, transits, synastry, eclipses or the Chinese zodiac."
    }
  },
  "additionalProperties": false
}
explain_astrology output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "found",
            "query",
            "topic",
            "title",
            "paragraphs",
            "terms",
            "pages",
            "related",
            "topics",
            "message",
            "note"
          ],
          "properties": {
            "note": {
              "type": "string",
              "const": "An introduction to how astrology reads these ideas, not a claim that they determine anything."
            },
            "found": {
              "type": "boolean"
            },
            "pages": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "title",
                  "url"
                ],
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "title": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            },
            "query": {
              "type": "string"
            },
            "terms": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "term",
                  "definition",
                  "url"
                ],
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "term": {
                    "type": "string"
                  },
                  "definition": {
                    "type": "string"
                  }
                },
                "additionalProperties": false
              }
            },
            "title": {
              "type": [
                "string",
                "null"
              ]
            },
            "topic": {
              "type": [
                "string",
                "null"
              ]
            },
            "topics": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "message": {
              "type": [
                "string",
                "null"
              ]
            },
            "related": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "paragraphs": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "explain_astrology"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "get_natal_chart",
            "get_horoscope_period",
            "get_chinese_zodiac",
            "get_personal_transits",
            "explain_astrology"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
explain_astrology annotations
{
  "title": "Astrology explained",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
find_birthplace — Find a birthplace
Advertised by the server during the last successful anonymous check.
Advertised read-only

Resolves a public town or city name only, so the chart tools can use its coordinates and time zone. Give the place name, and a country when several places share it. It does not take a street address. Results come from the GeoNames list of places of 15,000 people or more, bundled with Zodiacs, so the name is not sent anywhere else, and nothing is stored. Each place includes a region, a country, coordinates rounded to two decimals, an IANA time zone, and the UTC offset for an optional date (historical daylight saving included). Pass that latitude, longitude and time zone to get_natal_chart, get_personal_transits, get_compatibility or get_occasion_sky. Never guess a birth time from a place.

find_birthplace input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "place"
  ],
  "properties": {
    "date": {
      "type": "string",
      "pattern": "^(?:18|19|20|21)\\d{2}-\\d{2}-\\d{2}$",
      "description": "Optional date, such as 1990-05-03 (years 1800 to 2199), for the UTC offset in force that day. Without it, the offset is for today."
    },
    "place": {
      "type": "string",
      "maxLength": 80,
      "minLength": 2,
      "description": "A town or city name, such as London or Almaty. Not a street address. Nothing is stored."
    },
    "country": {
      "type": "string",
      "maxLength": 60,
      "minLength": 2,
      "description": "Optional country when several places share the name, such as United Kingdom or Kazakhstan."
    }
  },
  "additionalProperties": false
}
find_birthplace output schema
{
  "type": "object",
  "anyOf": [
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "data",
        "links"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": true
        },
        "data": {
          "type": "object",
          "required": [
            "place",
            "country",
            "date",
            "places",
            "message",
            "source"
          ],
          "properties": {
            "date": {
              "type": "string"
            },
            "place": {
              "type": "string"
            },
            "places": {
              "type": "array",
              "items": {
                "type": "object",
                "required": [
                  "name",
                  "region",
                  "country",
                  "latitude",
                  "longitude",
                  "timeZone",
                  "offset",
                  "offsetMinutes"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "offset": {
                    "type": "string"
                  },
                  "region": {
                    "type": "string"
                  },
                  "country": {
                    "type": "string"
                  },
                  "latitude": {
                    "type": "number"
                  },
                  "timeZone": {
                    "type": "string"
                  },
                  "longitude": {
                    "type": "number"
                  },
                  "offsetMinutes": {
                    "type": "integer",
                    "maximum": 9007199254740991,
                    "minimum": -9007199254740991
                  }
                },
                "additionalProperties": false
              },
              "maxItems": 5
            },
            "source": {
              "type": "object",
              "required": [
                "name",
                "licence",
                "note"
              ],
              "properties": {
                "name": {
                  "type": "string",
                  "const": "GeoNames cities15000"
                },
                "note": {
                  "type": "string"
                },
                "licence": {
                  "type": "string",
                  "const": "CC BY 4.0"
                }
              },
              "additionalProperties": false
            },
            "country": {
              "type": [
                "string",
                "null"
              ]
            },
            "message": {
              "type": [
                "string",
                "null"
              ]
            }
          },
          "additionalProperties": false
        },
        "tool": {
          "type": "string",
          "const": "find_birthplace"
        },
        "links": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "title",
              "url"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "title": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    },
    {
      "type": "object",
      "required": [
        "schema",
        "ok",
        "tool",
        "error"
      ],
      "properties": {
        "ok": {
          "type": "boolean",
          "const": false
        },
        "tool": {
          "enum": [
            "find_birthplace"
          ],
          "type": "string"
        },
        "error": {
          "type": "object",
          "required": [
            "code",
            "message"
          ],
          "properties": {
            "code": {
              "type": "string"
            },
            "message": {
              "type": "string"
            },
            "retryAfterSeconds": {
              "type": "number"
            }
          },
          "additionalProperties": false
        },
        "schema": {
          "type": "string",
          "const": "zodiacs.ai-tool-result.v1"
        }
      },
      "additionalProperties": false
    }
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
find_birthplace annotations
{
  "title": "Find a birthplace",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

25 advertised

sky-events — Zodiacs sky calendar

Advertised by the server during the last successful anonymous check.

sky-events URI
ui://zodiacs/sky-events-v4.html

MIME type: text/html;profile=mcp-app

sky-events-legacy-3 — Zodiacs sky calendar

Advertised by the server during the last successful anonymous check.

sky-events-legacy-3 URI
ui://zodiacs/sky-events-v3.html

MIME type: text/html;profile=mcp-app

sky-events-legacy-2 — Zodiacs sky calendar

Advertised by the server during the last successful anonymous check.

sky-events-legacy-2 URI
ui://zodiacs/sky-events-v2.html

MIME type: text/html;profile=mcp-app

sky-events-legacy-1 — Zodiacs sky calendar

Advertised by the server during the last successful anonymous check.

sky-events-legacy-1 URI
ui://zodiacs/sky-events-v1.html

MIME type: text/html;profile=mcp-app

chart-studio — Zodiacs Chart Studio

Advertised by the server during the last successful anonymous check.

chart-studio URI
ui://zodiacs/chart-studio-v6.html

MIME type: text/html;profile=mcp-app

chart-studio-legacy-5 — Zodiacs Chart Studio

Advertised by the server during the last successful anonymous check.

chart-studio-legacy-5 URI
ui://zodiacs/chart-studio-v5.html

MIME type: text/html;profile=mcp-app

chart-studio-legacy-4 — Zodiacs Chart Studio

Advertised by the server during the last successful anonymous check.

chart-studio-legacy-4 URI
ui://zodiacs/chart-studio-v4.html

MIME type: text/html;profile=mcp-app

chart-studio-legacy-3 — Zodiacs Chart Studio

Advertised by the server during the last successful anonymous check.

chart-studio-legacy-3 URI
ui://zodiacs/chart-studio-v3.html

MIME type: text/html;profile=mcp-app

chart-studio-legacy-2 — Zodiacs Chart Studio

Advertised by the server during the last successful anonymous check.

chart-studio-legacy-2 URI
ui://zodiacs/chart-studio-v2.html

MIME type: text/html;profile=mcp-app

chart-studio-legacy-1 — Zodiacs Chart Studio

Advertised by the server during the last successful anonymous check.

chart-studio-legacy-1 URI
ui://zodiacs/chart-studio-v1.html

MIME type: text/html;profile=mcp-app

horoscopes — Zodiacs horoscopes

Advertised by the server during the last successful anonymous check.

horoscopes URI
ui://zodiacs/horoscopes-v6.html

MIME type: text/html;profile=mcp-app

horoscopes-legacy-5 — Zodiacs horoscopes

Advertised by the server during the last successful anonymous check.

horoscopes-legacy-5 URI
ui://zodiacs/horoscopes-v5.html

MIME type: text/html;profile=mcp-app

horoscopes-legacy-4 — Zodiacs horoscopes

Advertised by the server during the last successful anonymous check.

horoscopes-legacy-4 URI
ui://zodiacs/horoscopes-v4.html

MIME type: text/html;profile=mcp-app

horoscopes-legacy-3 — Zodiacs horoscopes

Advertised by the server during the last successful anonymous check.

horoscopes-legacy-3 URI
ui://zodiacs/horoscopes-v3.html

MIME type: text/html;profile=mcp-app

horoscopes-legacy-2 — Zodiacs horoscopes

Advertised by the server during the last successful anonymous check.

horoscopes-legacy-2 URI
ui://zodiacs/horoscopes-v2.html

MIME type: text/html;profile=mcp-app

horoscopes-legacy-1 — Zodiacs horoscopes

Advertised by the server during the last successful anonymous check.

horoscopes-legacy-1 URI
ui://zodiacs/horoscopes-v1.html

MIME type: text/html;profile=mcp-app

readings — Zodiacs readings

Advertised by the server during the last successful anonymous check.

readings URI
ui://zodiacs/readings-v3.html

MIME type: text/html;profile=mcp-app

occasions — Zodiacs occasions

Advertised by the server during the last successful anonymous check.

occasions URI
ui://zodiacs/occasions-v8.html

MIME type: text/html;profile=mcp-app

occasions-legacy-7 — Zodiacs occasions

Advertised by the server during the last successful anonymous check.

occasions-legacy-7 URI
ui://zodiacs/occasions-v7.html

MIME type: text/html;profile=mcp-app

occasions-legacy-6 — Zodiacs occasions

Advertised by the server during the last successful anonymous check.

occasions-legacy-6 URI
ui://zodiacs/occasions-v6.html

MIME type: text/html;profile=mcp-app

occasions-legacy-5 — Zodiacs occasions

Advertised by the server during the last successful anonymous check.

occasions-legacy-5 URI
ui://zodiacs/occasions-v5.html

MIME type: text/html;profile=mcp-app

occasions-legacy-4 — Zodiacs occasions

Advertised by the server during the last successful anonymous check.

occasions-legacy-4 URI
ui://zodiacs/occasions-v4.html

MIME type: text/html;profile=mcp-app

occasions-legacy-3 — Zodiacs occasions

Advertised by the server during the last successful anonymous check.

occasions-legacy-3 URI
ui://zodiacs/occasions-v3.html

MIME type: text/html;profile=mcp-app

occasions-legacy-2 — Zodiacs occasions

Advertised by the server during the last successful anonymous check.

occasions-legacy-2 URI
ui://zodiacs/occasions-v2.html

MIME type: text/html;profile=mcp-app

occasions-legacy-1 — Zodiacs occasions

Advertised by the server during the last successful anonymous check.

occasions-legacy-1 URI
ui://zodiacs/occasions-v1.html

MIME type: text/html;profile=mcp-app

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
1064 ms
95th percentile latency
1064 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 1064 ms · metadata changed · 19 tool(s), 25 resource(s), 0 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http zodiacs-mcp https://zodiacs.org/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add zodiacs-mcp --url https://zodiacs.org/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable zodiacs-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "zodiacs-mcp": {
      "url": "https://zodiacs.org/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "zodiacs-mcp": {
      "type": "streamableHttp",
      "url": "https://zodiacs.org/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start zodiacs-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "zodiacs-mcp": {
      "type": "http",
      "url": "https://zodiacs.org/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http zodiacs-mcp https://zodiacs.org/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://zodiacs.org/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "zodiacs-mcp": {
      "serverUrl": "https://zodiacs.org/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Zodiacs MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.