Naelos.ai MCP
An official MCP server providing accurate, read-only astrology calculations based on NASA JPL ephemerides. It allows AI assistants to compute birth charts, transits, synastry, returns, progressions, and timing events without estimation, supporting clients like Claude, ChatGPT, and Cursor.
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.
https://mcp.naelos.ai/mcpWhat you can do with it
- Calculate birth charts with planetary positions and aspects
- Determine exact transits of planets over a specific date range
- Compute synastry aspects between two individuals' charts
- Find solar or lunar returns for a given location and date
Source and maintenance
Protocol and capabilities
- Server
- naelos-ai 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 10 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
10 advertised
natal_chart — Birth chart
A complete natal (birth) chart: every planet's sign, degree and house, the Ascendant and Midheaven, retrogrades, and the aspects between planets with exact orbs. Calculated from NASA JPL data by Naelos Ephemeris.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"date",
"latitude",
"longitude",
"timezone"
],
"properties": {
"date": {
"type": "string",
"pattern": "^[+-]?\\d{4,5}-\\d{2}-\\d{2}$",
"description": "Birth date, YYYY-MM-DD"
},
"time": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$",
"description": "Local clock time, HH:MM (24-hour). If unknown, omit: noon is used, and houses and angles are then unreliable."
},
"place": {
"type": "string",
"maxLength": 120,
"description": "Birthplace name, echoed back so the user can check the coordinates"
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Birthplace latitude in decimal degrees (north positive)"
},
"timezone": {
"type": "string",
"description": "IANA time zone of the birthplace, e.g. America/New_York. Historical daylight saving is applied from it."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Birthplace longitude in decimal degrees (east positive)"
},
"house_system": {
"enum": [
"placidus",
"whole_sign",
"koch",
"equal",
"campanus",
"regiomontanus",
"porphyry",
"meridian",
"morinus"
],
"type": "string",
"description": "House system (default placidus)"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}sky_now — The sky at a moment
Where every planet is at a moment (now by default): sign, degree, retrograde, and the aspects between them. Give a place to add houses and angles. Works for any date from 13,200 BC to AD 17,191.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"datetime_utc": {
"type": "string",
"pattern": "^[+-]?\\d{4,5}-\\d{2}-\\d{2}T\\d{2}:\\d{2}",
"description": "The moment in UTC, YYYY-MM-DDTHH:MM (default now)"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}planet_position — One planet at any date
One body's tropical position on a date, anywhere from 13,200 BC to AD 17,191, with its speed and whether it is retrograde. For historical and ancient dates; dates before 1582 are proleptic Gregorian.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"body",
"date"
],
"properties": {
"body": {
"enum": [
"sun",
"moon",
"mercury",
"venus",
"mars",
"jupiter",
"saturn",
"uranus",
"neptune",
"pluto",
"true_node",
"chiron"
],
"type": "string"
},
"date": {
"type": "string",
"pattern": "^[+-]?\\d{4,5}-\\d{2}-\\d{2}$"
},
"time_utc": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$",
"description": "HH:MM UTC (default 12:00)"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}transits — Transits to a birth chart
Every exact transit of the planets (Sun to Pluto; the Moon is left out as it aspects everything monthly) to a birth chart's planets, Ascendant and Midheaven over a span, with the exact date of each and whether the planet is retrograde. Major aspects: conjunction, sextile, square, trine, opposition.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"date",
"latitude",
"longitude",
"timezone"
],
"properties": {
"date": {
"type": "string",
"pattern": "^[+-]?\\d{4,5}-\\d{2}-\\d{2}$",
"description": "Birth date, YYYY-MM-DD"
},
"days": {
"type": "integer",
"maximum": 366,
"minimum": 1,
"description": "Length of the span in days (default 30, at most 366)"
},
"from": {
"type": "string",
"pattern": "^[+-]?\\d{4,5}-\\d{2}-\\d{2}$",
"description": "Start date (default today)"
},
"time": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$",
"description": "Local clock time, HH:MM (24-hour). If unknown, omit: noon is used, and houses and angles are then unreliable."
},
"place": {
"type": "string",
"maxLength": 120,
"description": "Birthplace name, echoed back so the user can check the coordinates"
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Birthplace latitude in decimal degrees (north positive)"
},
"timezone": {
"type": "string",
"description": "IANA time zone of the birthplace, e.g. America/New_York. Historical daylight saving is applied from it."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Birthplace longitude in decimal degrees (east positive)"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}synastry — Synastry between two people
The aspects between two people's birth charts (each one's planets to the other's), with exact orbs and strength.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"person_a",
"person_b"
],
"properties": {
"person_a": {
"type": "object",
"required": [
"date",
"latitude",
"longitude",
"timezone"
],
"properties": {
"date": {
"type": "string",
"pattern": "^[+-]?\\d{4,5}-\\d{2}-\\d{2}$",
"description": "Birth date, YYYY-MM-DD"
},
"time": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$",
"description": "Local clock time, HH:MM (24-hour). If unknown, omit: noon is used, and houses and angles are then unreliable."
},
"place": {
"type": "string",
"maxLength": 120,
"description": "Birthplace name, echoed back so the user can check the coordinates"
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Birthplace latitude in decimal degrees (north positive)"
},
"timezone": {
"type": "string",
"description": "IANA time zone of the birthplace, e.g. America/New_York. Historical daylight saving is applied from it."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Birthplace longitude in decimal degrees (east positive)"
}
},
"description": "First person's birth data"
},
"person_b": {
"type": "object",
"required": [
"date",
"latitude",
"longitude",
"timezone"
],
"properties": {
"date": {
"type": "string",
"pattern": "^[+-]?\\d{4,5}-\\d{2}-\\d{2}$",
"description": "Birth date, YYYY-MM-DD"
},
"time": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$",
"description": "Local clock time, HH:MM (24-hour). If unknown, omit: noon is used, and houses and angles are then unreliable."
},
"place": {
"type": "string",
"maxLength": 120,
"description": "Birthplace name, echoed back so the user can check the coordinates"
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Birthplace latitude in decimal degrees (north positive)"
},
"timezone": {
"type": "string",
"description": "IANA time zone of the birthplace, e.g. America/New_York. Historical daylight saving is applied from it."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Birthplace longitude in decimal degrees (east positive)"
}
},
"description": "Second person's birth data"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}returns — Solar or lunar return
The solar return for a year (the moment the Sun returns to its birth position, the chart for that year) or the lunar return nearest now, cast for the birthplace or another location.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"date",
"latitude",
"longitude",
"timezone",
"kind"
],
"properties": {
"date": {
"type": "string",
"pattern": "^[+-]?\\d{4,5}-\\d{2}-\\d{2}$",
"description": "Birth date, YYYY-MM-DD"
},
"kind": {
"enum": [
"solar",
"lunar"
],
"type": "string"
},
"time": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$",
"description": "Local clock time, HH:MM (24-hour). If unknown, omit: noon is used, and houses and angles are then unreliable."
},
"year": {
"type": "integer",
"maximum": 17180,
"minimum": -13190,
"description": "Solar return year (default this year)"
},
"place": {
"type": "string",
"maxLength": 120,
"description": "Birthplace name, echoed back so the user can check the coordinates"
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Birthplace latitude in decimal degrees (north positive)"
},
"timezone": {
"type": "string",
"description": "IANA time zone of the birthplace, e.g. America/New_York. Historical daylight saving is applied from it."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Birthplace longitude in decimal degrees (east positive)"
},
"return_latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Where the person is for the return, if not the birthplace"
},
"return_longitude": {
"type": "number",
"maximum": 180,
"minimum": -180
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}progressions — Progressions and solar arc, now
The progressed chart as of today: secondary progressions (a day after birth for each year of life) or solar arc directions (every point moved by the Sun's progressed arc).
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"date",
"latitude",
"longitude",
"timezone"
],
"properties": {
"date": {
"type": "string",
"pattern": "^[+-]?\\d{4,5}-\\d{2}-\\d{2}$",
"description": "Birth date, YYYY-MM-DD"
},
"time": {
"type": "string",
"pattern": "^\\d{2}:\\d{2}$",
"description": "Local clock time, HH:MM (24-hour). If unknown, omit: noon is used, and houses and angles are then unreliable."
},
"place": {
"type": "string",
"maxLength": 120,
"description": "Birthplace name, echoed back so the user can check the coordinates"
},
"method": {
"enum": [
"secondary",
"solar_arc"
],
"type": "string",
"description": "Default secondary"
},
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Birthplace latitude in decimal degrees (north positive)"
},
"timezone": {
"type": "string",
"description": "IANA time zone of the birthplace, e.g. America/New_York. Historical daylight saving is applied from it."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Birthplace longitude in decimal degrees (east positive)"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}timing_events — Ingresses, lunations and stations
Between two dates: planets changing sign, new and full Moons (and quarters), and retrograde and direct stations, each with its exact moment in UTC. At most two years per call.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"pattern": "^[+-]?\\d{4,5}-\\d{2}-\\d{2}$"
},
"from": {
"type": "string",
"pattern": "^[+-]?\\d{4,5}-\\d{2}-\\d{2}$"
},
"kinds": {
"type": "array",
"items": {
"enum": [
"ingresses",
"lunations",
"stations"
],
"type": "string"
},
"description": "Default all three"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}eclipses — Eclipses
Solar and lunar eclipses between two dates (up to 20 years per call), with type, the exact moment of greatest eclipse and the eclipse degree. Works across the full 15,000-year span.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"from",
"to"
],
"properties": {
"to": {
"type": "string",
"pattern": "^[+-]?\\d{4,5}-\\d{2}-\\d{2}$"
},
"from": {
"type": "string",
"pattern": "^[+-]?\\d{4,5}-\\d{2}-\\d{2}$"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}naelos_library — Naelos's national and empire charts
Which national charts (198) and empire charts (19) Naelos holds, each researched and sourced, with the founding event it is cast for. The charts themselves, with their times, places and readings, are in Naelos's Mundane suite.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"search": {
"type": "string",
"maxLength": 60,
"description": "Filter by name, e.g. France"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}Prompts
Not advertised
Resources
Not advertised
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
- 204 ms
- 95th percentile latency
- 204 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 204 ms · metadata changed · 10 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http naelos-ai-mcp https://mcp.naelos.ai/mcpCodex
codex mcp add naelos-ai-mcp --url https://mcp.naelos.ai/mcpCursor
{
"mcpServers": {
"naelos-ai-mcp": {
"url": "https://mcp.naelos.ai/mcp"
}
}
}Cline
{
"mcpServers": {
"naelos-ai-mcp": {
"type": "streamableHttp",
"url": "https://mcp.naelos.ai/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"naelos-ai-mcp": {
"type": "http",
"url": "https://mcp.naelos.ai/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http naelos-ai-mcp https://mcp.naelos.ai/mcpClaude Desktop
{
"mcpServers": {
"naelos-ai-mcp": {
"url": "https://mcp.naelos.ai/mcp"
}
}
}Windsurf
{
"mcpServers": {
"naelos-ai-mcp": {
"serverUrl": "https://mcp.naelos.ai/mcp"
}
}
}Let your agent find its tools
Find servers like Naelos.ai MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other ai and machine learning servers
Do you run Naelos.ai MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.