NatalChart.AI Astrology

Swiss Ephemeris astrology: natal charts, transits, synastry, solar returns and astrocartography.

Should I use this

Quality & Safety

B
Description quality
88%
Schema completeness
77%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (4)

  • LOWTool 'transits' description lacks action verbin transits
  • LOWTool 'synastry' description lacks action verbin synastry
  • LOWTool 'solar_return' description lacks action verbin solar_return
  • LOWTool 'location_score' description lacks action verbin location_score

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,968Tokens (tool definitions)
~2.6 KBTypical response size
Significant attention impact (2.32% of 128k context)

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-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools