{"mcp_version": "2025-03-26", "server_name": "NatalAI Astrology MCP", "server_version": "1.0.0", "description": "Natal charts, transits, progressions and more for AI agents", "tools": [{"name": "natal_chart", "description": "Calculate natal astrology chart. If this API key has a saved cabinet chart, natal fields may be omitted. Otherwise prefer birth_datetime (ISO local, e.g. 1991-04-26T14:30) plus latitude, longitude, timezone, gender. If time unknown: birth_date + birth_time_unknown=true (do not invent time). On error, follow ACTION_REQUIRED in the tool result and retry.", "inputSchema": {"type": "object", "properties": {"birth_datetime": {"type": "string", "description": "Preferred: ISO local birth datetime, e.g. 1991-04-26T14:30. Sets birth_date + birth_time. If only a date is known, omit this and set birth_date + birth_time_unknown=true."}, "birth_date": {"type": "string", "description": "ISO date YYYY-MM-DD (if not using birth_datetime)"}, "birth_time": {"type": "string", "description": "HH:MM local time (if not using birth_datetime)"}, "birth_time_unknown": {"type": "boolean", "default": false, "description": "true if birth time is unknown \u2014 do not invent a time"}, "birth_place": {"type": "string", "description": "Human-readable place name"}, "latitude": {"type": "number"}, "longitude": {"type": "number"}, "timezone": {"type": "string", "description": "IANA timezone, e.g. Europe/Minsk"}, "chart_system": {"type": "string", "enum": ["western", "vedic_lahiri"], "default": "western"}, "house_system": {"type": "string", "description": "Western house system code (P=Placidus, K=Koch, \u2026)", "default": "P"}, "gender": {"type": "string", "enum": ["male", "female", "other"]}}, "required": []}}, {"name": "ephemeris_day", "description": "Planetary positions for a calendar date at noon UTC. Does NOT need birth data \u2014 use for general day sky when there is no personal chart. Prefer this over transits when the user only asks about the sky of a date.", "inputSchema": {"type": "object", "properties": {"date": {"type": "string", "description": "ISO date YYYY-MM-DD"}, "chart_system": {"type": "string", "enum": ["western", "vedic_lahiri"], "default": "western"}}, "required": ["date"]}}, {"name": "transits", "description": "Planet transits to a natal chart on a date. Needs transit_date. Natal may be omitted if the API key has a saved cabinet chart; otherwise ask the user for birth data and retry. For sky without natal use ephemeris_day.", "inputSchema": {"type": "object", "properties": {"natal": {"type": "object", "description": "Birth data. Optional when the API key has a saved cabinet chart. If omitted and no chart on the key, the tool error tells you to ask the user.", "properties": {"birth_datetime": {"type": "string", "description": "Preferred: ISO local birth datetime, e.g. 1991-04-26T14:30. Sets birth_date + birth_time. If only a date is known, omit this and set birth_date + birth_time_unknown=true."}, "birth_date": {"type": "string", "description": "ISO date YYYY-MM-DD (if not using birth_datetime)"}, "birth_time": {"type": "string", "description": "HH:MM local time (if not using birth_datetime)"}, "birth_time_unknown": {"type": "boolean", "default": false, "description": "true if birth time is unknown \u2014 do not invent a time"}, "birth_place": {"type": "string", "description": "Human-readable place name"}, "latitude": {"type": "number"}, "longitude": {"type": "number"}, "timezone": {"type": "string", "description": "IANA timezone, e.g. Europe/Minsk"}, "chart_system": {"type": "string", "enum": ["western", "vedic_lahiri"], "default": "western"}, "house_system": {"type": "string", "description": "Western house system code (P=Placidus, K=Koch, \u2026)", "default": "P"}, "gender": {"type": "string", "enum": ["male", "female", "other"]}}, "required": []}, "transit_date": {"type": "string", "description": "ISO date YYYY-MM-DD"}, "orb": {"type": "number", "default": 2.0}, "days_before": {"type": "integer", "default": 0}, "days_after": {"type": "integer", "default": 0}}, "required": ["transit_date"]}}, {"name": "transit_strength", "description": "Daily transit energy score (\u221210\u2026+10) for a natal chart. Needs transit_date. Natal optional if API key has a saved cabinet chart; otherwise ask user and retry. Without personal chart use ephemeris_day.", "inputSchema": {"type": "object", "properties": {"natal": {"type": "object", "description": "Birth data. Optional when the API key has a saved cabinet chart. If omitted and no chart on the key, the tool error tells you to ask the user.", "properties": {"birth_datetime": {"type": "string", "description": "Preferred: ISO local birth datetime, e.g. 1991-04-26T14:30. Sets birth_date + birth_time. If only a date is known, omit this and set birth_date + birth_time_unknown=true."}, "birth_date": {"type": "string", "description": "ISO date YYYY-MM-DD (if not using birth_datetime)"}, "birth_time": {"type": "string", "description": "HH:MM local time (if not using birth_datetime)"}, "birth_time_unknown": {"type": "boolean", "default": false, "description": "true if birth time is unknown \u2014 do not invent a time"}, "birth_place": {"type": "string", "description": "Human-readable place name"}, "latitude": {"type": "number"}, "longitude": {"type": "number"}, "timezone": {"type": "string", "description": "IANA timezone, e.g. Europe/Minsk"}, "chart_system": {"type": "string", "enum": ["western", "vedic_lahiri"], "default": "western"}, "house_system": {"type": "string", "description": "Western house system code (P=Placidus, K=Koch, \u2026)", "default": "P"}, "gender": {"type": "string", "enum": ["male", "female", "other"]}}, "required": []}, "transit_date": {"type": "string"}}, "required": ["transit_date"]}}, {"name": "progressions", "description": "Secondary progressions on a target date. Needs target_date. Natal optional if API key has a saved cabinet chart.", "inputSchema": {"type": "object", "properties": {"natal": {"type": "object", "description": "Birth data. Optional when the API key has a saved cabinet chart. If omitted and no chart on the key, the tool error tells you to ask the user.", "properties": {"birth_datetime": {"type": "string", "description": "Preferred: ISO local birth datetime, e.g. 1991-04-26T14:30. Sets birth_date + birth_time. If only a date is known, omit this and set birth_date + birth_time_unknown=true."}, "birth_date": {"type": "string", "description": "ISO date YYYY-MM-DD (if not using birth_datetime)"}, "birth_time": {"type": "string", "description": "HH:MM local time (if not using birth_datetime)"}, "birth_time_unknown": {"type": "boolean", "default": false, "description": "true if birth time is unknown \u2014 do not invent a time"}, "birth_place": {"type": "string", "description": "Human-readable place name"}, "latitude": {"type": "number"}, "longitude": {"type": "number"}, "timezone": {"type": "string", "description": "IANA timezone, e.g. Europe/Minsk"}, "chart_system": {"type": "string", "enum": ["western", "vedic_lahiri"], "default": "western"}, "house_system": {"type": "string", "description": "Western house system code (P=Placidus, K=Koch, \u2026)", "default": "P"}, "gender": {"type": "string", "enum": ["male", "female", "other"]}}, "required": []}, "target_date": {"type": "string"}, "type": {"type": "string", "enum": ["secondary"], "default": "secondary"}}, "required": ["target_date"]}}, {"name": "solar_return", "description": "Solar return chart for a year and location. Needs year, location_lat, location_lon. Natal optional if API key has a saved cabinet chart.", "inputSchema": {"type": "object", "properties": {"natal": {"type": "object", "description": "Birth data. Optional when the API key has a saved cabinet chart. If omitted and no chart on the key, the tool error tells you to ask the user.", "properties": {"birth_datetime": {"type": "string", "description": "Preferred: ISO local birth datetime, e.g. 1991-04-26T14:30. Sets birth_date + birth_time. If only a date is known, omit this and set birth_date + birth_time_unknown=true."}, "birth_date": {"type": "string", "description": "ISO date YYYY-MM-DD (if not using birth_datetime)"}, "birth_time": {"type": "string", "description": "HH:MM local time (if not using birth_datetime)"}, "birth_time_unknown": {"type": "boolean", "default": false, "description": "true if birth time is unknown \u2014 do not invent a time"}, "birth_place": {"type": "string", "description": "Human-readable place name"}, "latitude": {"type": "number"}, "longitude": {"type": "number"}, "timezone": {"type": "string", "description": "IANA timezone, e.g. Europe/Minsk"}, "chart_system": {"type": "string", "enum": ["western", "vedic_lahiri"], "default": "western"}, "house_system": {"type": "string", "description": "Western house system code (P=Placidus, K=Koch, \u2026)", "default": "P"}, "gender": {"type": "string", "enum": ["male", "female", "other"]}}, "required": []}, "year": {"type": "integer"}, "location_lat": {"type": "number"}, "location_lon": {"type": "number"}}, "required": ["year", "location_lat", "location_lon"]}}, {"name": "synastry", "description": "Synastry between two people. person_b is always required. person_a may be omitted if the API key has a saved cabinet chart.", "inputSchema": {"type": "object", "properties": {"person_a": {"type": "object", "description": "Birth data. Optional when the API key has a saved cabinet chart. If omitted and no chart on the key, the tool error tells you to ask the user.", "properties": {"birth_datetime": {"type": "string", "description": "Preferred: ISO local birth datetime, e.g. 1991-04-26T14:30. Sets birth_date + birth_time. If only a date is known, omit this and set birth_date + birth_time_unknown=true."}, "birth_date": {"type": "string", "description": "ISO date YYYY-MM-DD (if not using birth_datetime)"}, "birth_time": {"type": "string", "description": "HH:MM local time (if not using birth_datetime)"}, "birth_time_unknown": {"type": "boolean", "default": false, "description": "true if birth time is unknown \u2014 do not invent a time"}, "birth_place": {"type": "string", "description": "Human-readable place name"}, "latitude": {"type": "number"}, "longitude": {"type": "number"}, "timezone": {"type": "string", "description": "IANA timezone, e.g. Europe/Minsk"}, "chart_system": {"type": "string", "enum": ["western", "vedic_lahiri"], "default": "western"}, "house_system": {"type": "string", "description": "Western house system code (P=Placidus, K=Koch, \u2026)", "default": "P"}, "gender": {"type": "string", "enum": ["male", "female", "other"]}}, "required": []}, "person_b": {"type": "object", "description": "Birth data. Optional when the API key has a saved cabinet chart. If omitted and no chart on the key, the tool error tells you to ask the user.", "properties": {"birth_datetime": {"type": "string", "description": "Preferred: ISO local birth datetime, e.g. 1991-04-26T14:30. Sets birth_date + birth_time. If only a date is known, omit this and set birth_date + birth_time_unknown=true."}, "birth_date": {"type": "string", "description": "ISO date YYYY-MM-DD (if not using birth_datetime)"}, "birth_time": {"type": "string", "description": "HH:MM local time (if not using birth_datetime)"}, "birth_time_unknown": {"type": "boolean", "default": false, "description": "true if birth time is unknown \u2014 do not invent a time"}, "birth_place": {"type": "string", "description": "Human-readable place name"}, "latitude": {"type": "number"}, "longitude": {"type": "number"}, "timezone": {"type": "string", "description": "IANA timezone, e.g. Europe/Minsk"}, "chart_system": {"type": "string", "enum": ["western", "vedic_lahiri"], "default": "western"}, "house_system": {"type": "string", "description": "Western house system code (P=Placidus, K=Koch, \u2026)", "default": "P"}, "gender": {"type": "string", "enum": ["male", "female", "other"]}}, "required": []}, "person_a_name": {"type": "string", "default": "Person A"}, "person_b_name": {"type": "string", "default": "Person B"}}, "required": ["person_b"]}}, {"name": "vedic_natal", "description": "Vedic chart (Lahiri). Natal optional if API key has a saved cabinet chart; otherwise ask the user for birth data and retry.", "inputSchema": {"type": "object", "properties": {"natal": {"type": "object", "description": "Birth data. Optional when the API key has a saved cabinet chart. If omitted and no chart on the key, the tool error tells you to ask the user.", "properties": {"birth_datetime": {"type": "string", "description": "Preferred: ISO local birth datetime, e.g. 1991-04-26T14:30. Sets birth_date + birth_time. If only a date is known, omit this and set birth_date + birth_time_unknown=true."}, "birth_date": {"type": "string", "description": "ISO date YYYY-MM-DD (if not using birth_datetime)"}, "birth_time": {"type": "string", "description": "HH:MM local time (if not using birth_datetime)"}, "birth_time_unknown": {"type": "boolean", "default": false, "description": "true if birth time is unknown \u2014 do not invent a time"}, "birth_place": {"type": "string", "description": "Human-readable place name"}, "latitude": {"type": "number"}, "longitude": {"type": "number"}, "timezone": {"type": "string", "description": "IANA timezone, e.g. Europe/Minsk"}, "chart_system": {"type": "string", "enum": ["western", "vedic_lahiri"], "default": "western"}, "house_system": {"type": "string", "description": "Western house system code (P=Placidus, K=Koch, \u2026)", "default": "P"}, "gender": {"type": "string", "enum": ["male", "female", "other"]}}, "required": []}, "include_dasha": {"type": "boolean", "default": true}, "include_yogas": {"type": "boolean", "default": true}, "include_vargas": {"type": "array", "items": {"type": "string", "enum": ["D1", "D9", "D10"]}, "default": ["D1", "D9", "D10"]}}, "required": []}}, {"name": "aspect_patterns", "description": "Aspect configurations in a natal chart. Natal optional if API key has a saved cabinet chart.", "inputSchema": {"type": "object", "properties": {"natal": {"type": "object", "description": "Birth data. Optional when the API key has a saved cabinet chart. If omitted and no chart on the key, the tool error tells you to ask the user.", "properties": {"birth_datetime": {"type": "string", "description": "Preferred: ISO local birth datetime, e.g. 1991-04-26T14:30. Sets birth_date + birth_time. If only a date is known, omit this and set birth_date + birth_time_unknown=true."}, "birth_date": {"type": "string", "description": "ISO date YYYY-MM-DD (if not using birth_datetime)"}, "birth_time": {"type": "string", "description": "HH:MM local time (if not using birth_datetime)"}, "birth_time_unknown": {"type": "boolean", "default": false, "description": "true if birth time is unknown \u2014 do not invent a time"}, "birth_place": {"type": "string", "description": "Human-readable place name"}, "latitude": {"type": "number"}, "longitude": {"type": "number"}, "timezone": {"type": "string", "description": "IANA timezone, e.g. Europe/Minsk"}, "chart_system": {"type": "string", "enum": ["western", "vedic_lahiri"], "default": "western"}, "house_system": {"type": "string", "description": "Western house system code (P=Placidus, K=Koch, \u2026)", "default": "P"}, "gender": {"type": "string", "enum": ["male", "female", "other"]}}, "required": []}}, "required": []}}]}