Astro-MCP calculates astrological chart data from the ephemeris-mcp Swiss Ephemeris backend. It also provides database-backed natal chart graphics through an MCP resource and a human-facing HTTP URL.
The server does not interpret charts. Calculation tools return structured data; rendered chart delivery returns graphic artifacts.
Agent or human client
|
v
astro-mcp v0.2.0
| MCP client
v
ephemeris-mcp
Astro-MCP handles person storage, timezone conversion, astrological calculations, stable chart rendering, MCP tools/resources, dashboard routes, and HTTP chart delivery. Ephemeris-MCP handles astronomical calculations.
The persons database stores:
birth_datetime: naive local time with no offsettimezone: IANA timezone nameExample:
birth_datetime = 1953-03-23T21:05:00
timezone = America/Chicago
_get_person_birth_data() is the single conversion point for database-backed chart calls. It combines the local datetime with the IANA timezone and produces the UTC value used by the ephemeris client.
Direct calculation tools require UTC or offset-aware ISO 8601 datetimes. Database-backed calculation tools require only a person ID or nickname.
For historical dates, provide the IANA timezone. zoneinfo handles historical Local Mean Time where applicable.
The current tool surface includes:
get_planetary_positionscalculate_natal_chartcalculate_transit_chartcalculate_synastry_chartcalculate_composite_chartcalculate_davison_chartget_transit_previewget_composite_transit_previewget_davison_transit_previewget_karmic_relationship_summarycalculate_natal_chart_by_idcalculate_transit_chart_by_idcalculate_synastry_chart_by_idcalculate_composite_chart_by_idcalculate_davison_chart_by_idget_transit_preview_by_idperson_managelist_house_systemsCalculation tools return structured data. There are no render_* MCP tools in v0.2.0.
The implemented chart resource template is:
astro://charts/natal/{person_id}
Example:
astro://charts/natal/einstein
Reading this resource resolves the person from the database, calculates the natal chart, invokes the existing natal chart renderer, and returns the graphic artifact. The agent can read the resource and save or attach the returned artifact.
Only database-backed natal chart delivery is implemented in v0.2.0.
/charts/natal/{person_id}.{format}
Examples:
/charts/natal/einstein.svg
/charts/natal/einstein.png
The route returns the existing rendered artifact with the correct image MIME type. It shares the artifact-generation path with the MCP resource.
The chart drawing implementation is stable and is not part of the v0.2.0 delivery change. Delivery code calls the existing renderer; it does not alter chart geometry, layout, styles, colors, dimensions, or format conversion.
The server also exposes interpretation guides:
astro://guides/natal-astrologyastro://guides/karmic-astrologyastro://guides/relationship-astrologyastro://guides/financial-astrologyastro://guides/server-guidecalculate_natal_chart_by_id(person_id="einstein")
Read resource: astro://charts/natal/einstein
GET /charts/natal/einstein.svg
calculate_natal_chart(
birth_datetime="1990-05-15T10:30:00+01:00",
latitude=47.07,
longitude=15.42
)
Calculation tools use structured error results. Resource reads and HTTP chart requests reject unknown persons and unsupported request values. A person resource requires an identifier that resolves by database ID or nickname.
The following are not implemented as chart resources in this version:
They must not be described as available chart resources until implemented.