Birth charts, Big Three and sky events with explicit uncertainty. Free; birth data never stored.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Calculate a complete natal chart for “my birth chart”, “tema natale”, “calcola tema natale”: planets, Ascendant, Whole Sign houses, major aspects, uncertainty and one-line meanings with links. Approximate times need a ±15,30,60 or 120 minute window; supports fold choice and historic offset override. Ask for missing birth time and birthplace instead of guessing. If the user does not know the time, explicitly use unknown: no Ascendant or houses, and both Moon signs when applicable. No birth data is stored or logged, including request bodies, queries, access logs, stats and errors.
Language code. Published: en, it. Other codes fall back to English with a language.note.
Calculate a complete natal chart for “my birth chart”, “tema natale”, “calcola tema natale”: planets, Ascendant, Whole Sign houses, major aspects, uncertainty and one-line meanings with links. Approximate times need a ±15,30,60 or 120 minute window; supports fold choice and historic offset override. Ask for missing birth time and birthplace instead of guessing. If the user does not know the time, explicitly use unknown: no Ascendant or houses, and both Moon signs when applicable. No birth data is stored or logged, including request bodies, queries, access logs, stats and errors.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language code. Published: en, it. Other codes fall back to English with a language.note. |
| latitude | number | |
| place_id | integer | |
| timezone | string | |
| ambiguity | string | |
| longitude | number | |
| birth_date* | string | |
| birth_time | string | |
| time_precision* | string | |
| approx_window_minutes | any | |
| utc_offset_override_sec | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"birth_date",
"time_precision"
],
"properties": {
"lang": {
"type": "string",
"default": "en",
"maxLength": 35,
"description": "Language code. Published: en, it. Other codes fall back to English with a language.note."
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"place_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"timezone": {
"type": "string",
"pattern": "^[A-Za-z0-9_+-]+(?:\\/[A-Za-z0-9_+-]+)*$",
"maxLength": 100,
"minLength": 1
},
"ambiguity": {
"enum": [
"earlier",
"later"
],
"type": "string"
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"birth_date": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"birth_time": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d(:[0-5]\\d)?$"
},
"time_precision": {
"enum": [
"exact",
"approximate",
"unknown"
],
"type": "string"
},
"approx_window_minutes": {
"anyOf": [
{
"type": "number",
"const": 15
},
{
"type": "number",
"const": 30
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 120
}
]
},
"utc_offset_override_sec": {
"type": "integer",
"maximum": 86400,
"minimum": -86400
}
},
"additionalProperties": false
}Calculate Sun sign, Moon sign and rising sign together for “what is my rising sign”, “my moon sign”, “my Big Three”, “qual è il mio ascendente”, “segno lunare”, “Sole Luna ascendente”. Returns uncertainty, one-line meanings and reference links. Ask for missing birth time and birthplace instead of guessing. If the user does not know the time, explicitly use unknown: no Ascendant or houses, and both Moon signs when applicable. No birth data is stored or logged, including request bodies, queries, access logs, stats and errors.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language code. Published: en, it. Other codes fall back to English with a language.note. |
| latitude | number | |
| place_id | integer | |
| timezone | string | |
| ambiguity | string | |
| longitude | number | |
| birth_date* | string | |
| birth_time | string | |
| time_precision |
Calculate new, first quarter, full and last quarter Moon: “when is the next full Moon”, “quando è la luna piena”, “calendario lunare”. Supply from_date, to_date and IANA timezone. Date range is [from,to) UTC, max 400 days; output local times, signs and uncertainty. No birth data is stored or logged, including request bodies, queries, access logs, stats and errors.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language code. Published: en, it. Other codes fall back to English with a language.note. |
| to_date* | string | |
| timezone* | string | |
| from_date* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"from_date",
"to_date",
"timezone"
],
"properties": {
"lang": {
"type": "string",
"default": "en",
"maxLength": 35,
"description": "Language code. Published: en, it. Other codes fall back to English with a language.note."
},
"to_date": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"timezone": {
"type": "string",
"pattern": "^[A-Za-z0-9_+-]+(?:\\/[A-Za-z0-9_+-]+)*$",
"maxLength": 100,
"minLength": 1
},
"from_date": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"additionalProperties": false
}Read the free corpus meaning of a placement: “Venus in Leo”, “Moon in the 7th house”, “rising sign Libra”, “Venere in Leone”, “Luna in settima casa”, “ascendente Bilancia”. Supply canonical English ids for body_or_angle and sign, or house 1–12. One sign or one house per call; no sign/house returns the body meaning. Interpretation is symbolic, not a scientific prediction. No birth data is stored or logged, including request bodies, queries, access logs, stats and errors.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language code. Published: en, it. Other codes fall back to English with a language.note. |
| sign | string | |
| house | integer | |
| body_or_angle* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"body_or_angle"
],
"properties": {
"lang": {
"type": "string",
"default": "en",
"maxLength": 35,
"description": "Language code. Published: en, it. Other codes fall back to English with a language.note."
},
"sign": {
"enum": [
"aries",
"taurus",
"gemini",
"cancer",
"leo",
"virgo",
"libra",
"scorpio",
"sagittarius",
"capricorn",
"aquarius",
"pisces"
],
"type": "string"
},
"house": {
"type": "integer",
"maximum": 12,
"minimum": 1
},
"body_or_angle": {
"enum": [
"sun",
"moon",
"mercury",
"venus",
"mars",
"jupiter",
"saturn",
"uranus",
"neptune",
"pluto",
"ascendant"
],
"type": "string"
}
},
"additionalProperties": false
}Compute the current sky or a specified ISO instant: “where is Venus today”, “where are the planets today”, “dove si trova Venere oggi”, “cielo di oggi”. Returns tropical geocentric positions, retrograde flags and Moon phase/illumination. Defaults to now and UTC. No birth data is stored or logged, including request bodies, queries, access logs, stats and errors.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language code. Published: en, it. Other codes fall back to English with a language.note. |
| datetime | string | |
| timezone | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"lang": {
"type": "string",
"default": "en",
"maxLength": 35,
"description": "Language code. Published: en, it. Other codes fall back to English with a language.note."
},
"datetime": {
"type": "string",
"format": "date-time",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
},
"timezone": {
"type": "string",
"default": "UTC",
"pattern": "^[A-Za-z0-9_+-]+(?:\\/[A-Za-z0-9_+-]+)*$",
"maxLength": 100,
"minLength": 1
}
},
"additionalProperties": false
}Find retrograde periods by planet and year: “when is Mercury retrograde in 2027”, “quando è Mercurio retrogrado”. Mercury through Pluto, 1900–2099; includes stations, pre/post shadows and uncertainty windows. A station estimate is not an exact-to-the-second fact. No birth data is stored or logged, including request bodies, queries, access logs, stats and errors.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language code. Published: en, it. Other codes fall back to English with a language.note. |
| year* | integer | |
| planet* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"planet",
"year"
],
"properties": {
"lang": {
"type": "string",
"default": "en",
"maxLength": 35,
"description": "Language code. Published: en, it. Other codes fall back to English with a language.note."
},
"year": {
"type": "integer",
"maximum": 2099,
"minimum": 1900
},
"planet": {
"enum": [
"mercury",
"venus",
"mars",
"jupiter",
"saturn",
"uranus",
"neptune",
"pluto"
],
"type": "string"
}
},
"additionalProperties": false
}Find when a planet enters a zodiac sign: “when does Venus enter Leo”, “quando entra Venere in Leone”, “ingressi nei segni”. Includes retrograde re-entries and uncertainty windows. Supply dates [from,to) UTC, max 400 days. No birth data is stored or logged, including request bodies, queries, access logs, stats and errors.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language code. Published: en, it. Other codes fall back to English with a language.note. |
| planet* | string | |
| to_date* | string | |
| from_date* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"planet",
"from_date",
"to_date"
],
"properties": {
"lang": {
"type": "string",
"default": "en",
"maxLength": 35,
"description": "Language code. Published: en, it. Other codes fall back to English with a language.note."
},
"planet": {
"enum": [
"sun",
"moon",
"mercury",
"venus",
"mars",
"jupiter",
"saturn",
"uranus",
"neptune",
"pluto"
],
"type": "string"
},
"to_date": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"from_date": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
}
},
"additionalProperties": false
}Find the Sun zodiac sign from a birth date for “what is my zodiac sign”, “che segno sono”, “segno per data”. Handles cusp dates with ingress and uncertainty, never guesses; ask for timezone when supplying time. Without timezone considers all possible local-day conversions. No birth data is stored or logged, including request bodies, queries, access logs, stats and errors.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language code. Published: en, it. Other codes fall back to English with a language.note. |
| timezone | string | |
| birth_date* | string | |
| birth_time | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"birth_date"
],
"properties": {
"lang": {
"type": "string",
"default": "en",
"maxLength": 35,
"description": "Language code. Published: en, it. Other codes fall back to English with a language.note."
},
"timezone": {
"type": "string",
"pattern": "^[A-Za-z0-9_+-]+(?:\\/[A-Za-z0-9_+-]+)*$",
"maxLength": 100,
"minLength": 1
},
"birth_date": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"birth_time": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d(:[0-5]\\d)?$"
}
},
"additionalProperties": false
}Find disambiguated birthplace candidates and GeoNames ids for “where was I born”, “luogo di nascita”, “cerca città”. Ask the user to choose when more than one plausible match exists; never guess. No birth data is stored or logged, including request bodies, queries, access logs, stats and errors.
| Argument | Type | Description |
|---|---|---|
| lang | string | Language code. Published: en, it. Other codes fall back to English with a language.note. |
| query* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query"
],
"properties": {
"lang": {
"type": "string",
"default": "en",
"maxLength": 35,
"description": "Language code. Published: en, it. Other codes fall back to English with a language.note."
},
"query": {
"type": "string",
"pattern": "^[^\\x00-\\x1f]*$",
"maxLength": 100,
"minLength": 2
}
},
"additionalProperties": false
}| string |
| approx_window_minutes | any |
| utc_offset_override_sec | integer |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"birth_date",
"time_precision"
],
"properties": {
"lang": {
"type": "string",
"default": "en",
"maxLength": 35,
"description": "Language code. Published: en, it. Other codes fall back to English with a language.note."
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"place_id": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"timezone": {
"type": "string",
"pattern": "^[A-Za-z0-9_+-]+(?:\\/[A-Za-z0-9_+-]+)*$",
"maxLength": 100,
"minLength": 1
},
"ambiguity": {
"enum": [
"earlier",
"later"
],
"type": "string"
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"birth_date": {
"type": "string",
"format": "date",
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
},
"birth_time": {
"type": "string",
"pattern": "^([01]\\d|2[0-3]):[0-5]\\d(:[0-5]\\d)?$"
},
"time_precision": {
"enum": [
"exact",
"approximate",
"unknown"
],
"type": "string"
},
"approx_window_minutes": {
"anyOf": [
{
"type": "number",
"const": 15
},
{
"type": "number",
"const": 30
},
{
"type": "number",
"const": 60
},
{
"type": "number",
"const": 120
}
]
},
"utc_offset_override_sec": {
"type": "integer",
"maximum": 86400,
"minimum": -86400
}
},
"additionalProperties": false
}