NatalChart.AI Astrology
Swiss Ephemeris astrology: natal charts, transits, synastry, solar returns and astrocartography.
Should I use this
Quality & Safety
Findings (4)
- LOWin transits
- LOWin synastry
- LOWin solar_return
- LOWin location_score
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"astrology": {
"url": "https://www.natalchart.ai/mcp"
}
}
}Remote endpoints
https://www.natalchart.ai/mcpstreamable-httpWhat it can do
Tool inventory
Tools (10)
🟢natal_chart(birth, part)
A natal chart from birth data. "part" picks what to return: full (everything: bodies with sign, degree, speed, retrograde flag and house; the angles; twelve Placidus cusps; aspects with orbs; element and quality balance; fixed-star contacts), short (Sun, Moon and Ascendant, each body's sign, retrograde bodies, dominant element and quality), or one part: planets, angles, houses, aspects, elements, fixed-stars. Full by default.
Input Schema
{
"type": "object",
"properties": {
"birth": {
"type": "object",
"required": [
"date",
"latitude",
"longitude"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "Birth date, YYYY-MM-DD, 1800 to 2399.",
"examples": [
"1991-09-06"
]
},
"time": {
"type": [
"string",
"null"
],
"description": "Local birth time, HH:mm, 24-hour. null when unknown: the chart is computed for noon and everything that depends on the time is withheld.",
"examples": [
"18:30"
]
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"examples": [
50.4501
]
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"examples": [
30.5234
]
},
"timezone": {
"type": "string",
"description": "IANA time zone. Leave it out to resolve it from the coordinates; historical daylight-saving rules are applied to the date.",
"examples": [
"Europe/Kyiv"
]
}
}
},
"part": {
"type": "string",
"enum": [
"short",
"full",
"planets",
"angles",
"houses",
"aspects",
"elements",
"fixed-stars"
],
"default": "full"
}
},
"required": [
"birth"
]
}🟢daily_transits(birth, date)
The calculated day: the sky at noon UTC, the Moon's phase, the sky events of the coming week and, with birth data, every transit to the natal chart with its orb. No generated text.
Input Schema
{
"type": "object",
"properties": {
"birth": {
"type": "object",
"required": [
"date",
"latitude",
"longitude"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "Birth date, YYYY-MM-DD, 1800 to 2399.",
"examples": [
"1991-09-06"
]
},
"time": {
"type": [
"string",
"null"
],
"description": "Local birth time, HH:mm, 24-hour. null when unknown: the chart is computed for noon and everything that depends on the time is withheld.",
"examples": [
"18:30"
]
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"examples": [
50.4501
]
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"examples": [
30.5234
]
},
"timezone": {
"type": "string",
"description": "IANA time zone. Leave it out to resolve it from the coordinates; historical daylight-saving rules are applied to the date.",
"examples": [
"Europe/Kyiv"
]
}
}
},
"date": {
"type": "string",
"format": "date",
"description": "The day to compute, today (UTC) by default."
}
},
"required": []
}🟢sky(date)
Planetary positions, Moon phase and the coming week's sky events for a date (?date=YYYY-MM-DD, today by default).
Input Schema
{
"type": "object",
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "YYYY-MM-DD, today (UTC) by default."
}
}
}🟢usage
Your plan, today's count and when the pool refills. Costs nothing.
Input Schema
{
"type": "object",
"properties": {}
}🟢transits(birth, from, to)
Every transit event in a window of up to 92 days: exact transit-to-natal aspects by date, sign ingresses and stations. (API Pro)
Input Schema
{
"type": "object",
"properties": {
"birth": {
"type": "object",
"required": [
"date",
"latitude",
"longitude"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "Birth date, YYYY-MM-DD, 1800 to 2399.",
"examples": [
"1991-09-06"
]
},
"time": {
"type": [
"string",
"null"
],
"description": "Local birth time, HH:mm, 24-hour. null when unknown: the chart is computed for noon and everything that depends on the time is withheld.",
"examples": [
"18:30"
]
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"examples": [
50.4501
]
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"examples": [
30.5234
]
},
"timezone": {
"type": "string",
"description": "IANA time zone. Leave it out to resolve it from the coordinates; historical daylight-saving rules are applied to the date.",
"examples": [
"Europe/Kyiv"
]
}
}
},
"from": {
"type": "string",
"format": "date"
},
"to": {
"type": "string",
"format": "date",
"description": "At most 92 days after from; 30 days by default."
}
},
"required": [
"birth"
]
}🟢synastry(personA, personB)
Two charts compared: inter-chart aspects with orbs, house overlays both ways and a score per life sphere. (API Pro)
Input Schema
{
"type": "object",
"properties": {
"personA": {
"type": "object",
"required": [
"date",
"latitude",
"longitude"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "Birth date, YYYY-MM-DD, 1800 to 2399.",
"examples": [
"1991-09-06"
]
},
"time": {
"type": [
"string",
"null"
],
"description": "Local birth time, HH:mm, 24-hour. null when unknown: the chart is computed for noon and everything that depends on the time is withheld.",
"examples": [
"18:30"
]
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"examples": [
50.4501
]
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"examples": [
30.5234
]
},
"timezone": {
"type": "string",
"description": "IANA time zone. Leave it out to resolve it from the coordinates; historical daylight-saving rules are applied to the date.",
"examples": [
"Europe/Kyiv"
]
}
}
},
"personB": {
"type": "object",
"required": [
"date",
"latitude",
"longitude"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "Birth date, YYYY-MM-DD, 1800 to 2399.",
"examples": [
"1991-09-06"
]
},
"time": {
"type": [
"string",
"null"
],
"description": "Local birth time, HH:mm, 24-hour. null when unknown: the chart is computed for noon and everything that depends on the time is withheld.",
"examples": [
"18:30"
]
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"examples": [
50.4501
]
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"examples": [
30.5234
]
},
"timezone": {
"type": "string",
"description": "IANA time zone. Leave it out to resolve it from the coordinates; historical daylight-saving rules are applied to the date.",
"examples": [
"Europe/Kyiv"
]
}
}
}
},
"required": [
"personA",
"personB"
]
}🟢solar_return(birth, year, location)
The solar return chart for a year, cast for the birth place or another location. (API Pro)
Input Schema
{
"type": "object",
"properties": {
"birth": {
"type": "object",
"required": [
"date",
"latitude",
"longitude"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "Birth date, YYYY-MM-DD, 1800 to 2399.",
"examples": [
"1991-09-06"
]
},
"time": {
"type": [
"string",
"null"
],
"description": "Local birth time, HH:mm, 24-hour. null when unknown: the chart is computed for noon and everything that depends on the time is withheld.",
"examples": [
"18:30"
]
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"examples": [
50.4501
]
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"examples": [
30.5234
]
},
"timezone": {
"type": "string",
"description": "IANA time zone. Leave it out to resolve it from the coordinates; historical daylight-saving rules are applied to the date.",
"examples": [
"Europe/Kyiv"
]
}
}
},
"year": {
"type": "integer",
"minimum": 1900,
"maximum": 2100
},
"location": {
"type": "object",
"properties": {
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
}
}
}
},
"required": [
"birth",
"year"
]
}🟢best_days(birth, activity, from, to, timezone)
Every day of a window of up to 62 days scored for one activity (general, business, romance, health, creative, travel, home, clarity): helping and hindering transits, Moon phase and sign, void of course. The five best days first. (API Pro)
Input Schema
{
"type": "object",
"properties": {
"birth": {
"type": "object",
"required": [
"date",
"latitude",
"longitude"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "Birth date, YYYY-MM-DD, 1800 to 2399.",
"examples": [
"1991-09-06"
]
},
"time": {
"type": [
"string",
"null"
],
"description": "Local birth time, HH:mm, 24-hour. null when unknown: the chart is computed for noon and everything that depends on the time is withheld.",
"examples": [
"18:30"
]
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"examples": [
50.4501
]
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"examples": [
30.5234
]
},
"timezone": {
"type": "string",
"description": "IANA time zone. Leave it out to resolve it from the coordinates; historical daylight-saving rules are applied to the date.",
"examples": [
"Europe/Kyiv"
]
}
}
},
"activity": {
"type": "string",
"enum": [
"general",
"business",
"romance",
"health",
"creative",
"travel",
"home",
"clarity"
]
},
"from": {
"type": "string",
"format": "date"
},
"to": {
"type": "string",
"format": "date",
"description": "At most 62 days after from; 30 days by default."
},
"timezone": {
"type": "string",
"description": "IANA zone that sets where each day begins. UTC by default."
}
},
"required": [
"birth"
]
}🟢location_score(birth, location)
One place against one chart: the relocated angles, the planets on them with orbs, and a score for each life sphere. (API Pro)
Input Schema
{
"type": "object",
"properties": {
"birth": {
"type": "object",
"required": [
"date",
"latitude",
"longitude"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "Birth date, YYYY-MM-DD, 1800 to 2399.",
"examples": [
"1991-09-06"
]
},
"time": {
"type": [
"string",
"null"
],
"description": "Local birth time, HH:mm, 24-hour. null when unknown: the chart is computed for noon and everything that depends on the time is withheld.",
"examples": [
"18:30"
]
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"examples": [
50.4501
]
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"examples": [
30.5234
]
},
"timezone": {
"type": "string",
"description": "IANA time zone. Leave it out to resolve it from the coordinates; historical daylight-saving rules are applied to the date.",
"examples": [
"Europe/Kyiv"
]
}
}
},
"location": {
"type": "object",
"required": [
"latitude",
"longitude"
],
"properties": {
"latitude": {
"type": "number"
},
"longitude": {
"type": "number"
},
"name": {
"type": "string"
}
}
}
},
"required": [
"birth",
"location"
]
}🟢best_cities(birth, focus, region, limit)
The catalogue of major cities ranked for one chart, overall or by chosen life spheres, worldwide or in one region. (API Pro)
Input Schema
{
"type": "object",
"properties": {
"birth": {
"type": "object",
"required": [
"date",
"latitude",
"longitude"
],
"properties": {
"date": {
"type": "string",
"format": "date",
"description": "Birth date, YYYY-MM-DD, 1800 to 2399.",
"examples": [
"1991-09-06"
]
},
"time": {
"type": [
"string",
"null"
],
"description": "Local birth time, HH:mm, 24-hour. null when unknown: the chart is computed for noon and everything that depends on the time is withheld.",
"examples": [
"18:30"
]
},
"latitude": {
"type": "number",
"minimum": -90,
"maximum": 90,
"examples": [
50.4501
]
},
"longitude": {
"type": "number",
"minimum": -180,
"maximum": 180,
"examples": [
30.5234
]
},
"timezone": {
"type": "string",
"description": "IANA time zone. Leave it out to resolve it from the coordinates; historical daylight-saving rules are applied to the date.",
"examples": [
"Europe/Kyiv"
]
}
}
},
"focus": {
"type": "array",
"items": {
"type": "string",
"enum": [
"identity",
"love",
"body",
"money",
"home",
"mind"
]
}
},
"region": {
"type": "string",
"enum": [
"Europe",
"North America",
"Latin America",
"Middle East & Africa",
"Asia",
"Oceania"
]
},
"limit": {
"type": "integer",
"minimum": 3,
"maximum": 12
}
},
"required": [
"birth"
]
}Community
Evidence