Skip to main content
Glama
astrolog-mcp

astrolog-mcp

by 0xctx

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_chart_dataA

Call this when someone asks to calculate a natal chart (birth chart) for a birth date, time and place: where the Sun, Moon, planets, houses and angles fall, and their aspects. Why: the numbers come from the configured engine with fixed settings, so the same input always gives the same numbers. With ENGINE=stub they are placeholders, and the text starts with a PLACEHOLDER line. Returns: a headline of the Sun, Moon and Ascendant positions; each requested body with sign, degree, minute, retrograde flag and house; the twelve house cusps; the four angles (ASC, MC, DSC, IC); the aspects, which are by default the 8 tightest of the five major aspects between bodies; the total count and a truncated flag; and the house system, the harmonic, the version of the engine that made the numbers, UT moment and place. Aspects: "aspects" chooses the set. "major" (default) reads the five major aspects between bodies, and nothing else; its output is unchanged. "all" reads the 17 vibrational aspects, such as semisquare, quincunx, quintile, septile and novile, between bodies and the angles ASC and MC, with each orb 16 degrees divided by the aspect's harmonic, and the five major ones at the wider of that and their major orb (trine 6, square 6, sextile 4), so the "all" set holds every major aspect (with aspect_limit 0, every one is listed). Only "all" reads the angles as targets and adds a strength to each item and set to the list. "aspect_limit" is how many to list, 8 by default; 0 lists every aspect. Harmonic H, from 1 to 10000 and 1 when left out, multiplies every longitude by H, and the houses and angles shown are the harmonic multiples of the natal ones, not recalculated cusps. Input ayanamsa sets the zodiac: tropical by default, or lahiri, fagan_bradley, raman or krishnamurti for sidereal longitudes; a sidereal result names the ayanamsa in meta. Gives positions and facts only, with no interpretation. Pass either place, or latitude, longitude and timezone.

get_transit_dataA

Call this when someone asks what the sky holds at one moment, now or at a given date and time, against a natal chart: which planets are transiting and which natal points they aspect at that moment. Why: the natal chart and the sky come from the configured engine with fixed settings, so the same input always gives the same numbers. With ENGINE=stub they are placeholders, and the text starts with a PLACEHOLDER line. Inputs: birth_date and birth_time give the birth moment in the local time of the birth place, with place, or with latitude, longitude and timezone. house_system names the natal house system. ayanamsa sets the zodiac of both the natal chart and the sky. harmonic sets the harmonic of both. bodies limits the transiting bodies, and so the midpoints made of them; the natal chart is always whole. transit_date and transit_time give the moment of the sky, with transit_timezone for its zone; leave out both for the sky now. Returns: the transiting bodies with sign, degree, minute and retrograde flag; the aspects, ranked by orb for the default reading and by strength for the others, the 15 tightest unless aspect_limit says otherwise, with the total and a truncated flag; and the sky moment, the birth moment, the house system and the harmonic. Reading: aspects is "major" (default) or "all" (17 vibrational aspects). A point pairing (T to N) takes each aspect's own transit orb; any pairing with a midpoint takes the classic midpoint orb. include lists the pairings, in any order: "points" (default: transiting bodies to natal points, T to N), "to_natal_midpoints" (to natal midpoints, T to Nm), "transit_midpoints" (midpoints of transiting bodies to natal points, Tm to N) and "midpoint_to_midpoint" (transit midpoints to natal midpoints, Tm to Nm). Every row names its pairing, the points or midpoint pairs involved, orb, strength and phase (applying, separating or unknown). The default reading keeps its keys, order, orb and strength, and only a row whose phase is unknown changes its applying (false) and text ("phase unknown"); any other reading ranks by strength. Every row has the same keys. min_strength keeps the aspects at or above a strength from 0 to 1, and aspect_limit sets how many to list, with 0 for all. Leave out transit_date and transit_time for the sky now. With harmonic above 1, the natal chart and the sky are both multiplied by the harmonic (longitude times harmonic, mod 360), and every longitude returned is that harmonic chart's. Input ayanamsa sets the zodiac for both the natal chart and the sky: tropical by default, or lahiri, fagan_bradley, raman or krishnamurti for sidereal longitudes; a sidereal result names the ayanamsa in meta. Gives positions and facts only, with no interpretation.

get_composite_dataA

Call this when someone asks how two people's charts combine, as one merged composite chart or as a Davison midpoint chart. Why: both charts come from the configured engine with fixed settings, so the same two people always give the same numbers. With ENGINE=stub they are placeholders, and the text starts with a PLACEHOLDER line. Returns: the composite's bodies with sign, degree, minute, retrograde flag and house; the twelve house cusps; the four angles (ASC, MC, DSC, IC); the aspects, which are by default the 8 tightest of the five major aspects between its bodies, with the total count and a truncated flag; and the kind, the two birth moments in UT, the Davison midpoint moment when the kind is davison, the house system and the engine's version. Aspects: "aspects" chooses the set. "major" (default) reads the five major aspects between the bodies, and nothing else; its output is unchanged. "all" reads the 17 vibrational aspects, such as semisquare, quincunx, quintile, septile and novile, between the bodies and the angles ASC and MC, with each orb 16 degrees divided by the aspect's harmonic, and the five major ones at the wider of that and their major orb (trine 6, square 6, sextile 4), so the "all" set holds every major aspect (with aspect_limit 0, every one is listed). Only "all" reads the angles as targets and adds a strength to each item and set to the list. "aspect_limit" is how many to list, 8 by default; 0 lists every aspect. A composite has no moment of its own: it uses the two birth moments and places. Input ayanamsa sets the zodiac of the composite: tropical by default, or lahiri, fagan_bradley, raman or krishnamurti for sidereal longitudes; a sidereal result names the ayanamsa in meta. Gives positions and facts only, with no interpretation. Give each person as place, or as latitude, longitude and timezone.

get_harmonic_midpointsA

Call this when someone asks which midpoint structures a birth chart has in one harmonic, such as harmonic 5 or 7, for a birth date, time and place. Why: the chart is cast once by the configured engine, each longitude is multiplied by the harmonic, and the classic midpoint method tests every pair of points, so the same input always gives the same structures. With ENGINE=stub they are placeholders, and the text starts with a PLACEHOLDER line. Returns: a headline with the structure count and the tightest structure; the harmonic positions of the bodies, Ascendant and Midheaven; up to limit structures (default 12, at most 50) ranked by orb, each with its focus point, the two points whose midpoint it is, the aspect, orb, strength and the midpoint's sign and degree; the total count; and the harmonic, house system, UT moment, place and provenance. Input ayanamsa sets the zodiac the longitudes are multiplied in: tropical by default, or lahiri, fagan_bradley, raman or krishnamurti for sidereal longitudes; a sidereal result names the ayanamsa in meta. Gives positions and facts only, with no interpretation. Pass either place, or latitude, longitude and timezone. One harmonic per call.

get_daily_transitsA

Call this when someone asks what one whole local day holds for a birth chart, such as today's transits for a person: the transits and midpoint contacts ranked highest by score on one local day, when each goes exact, which transiting objects change sign or natal house, which change retrograde direction, and what the Moon does that day. Why: the natal chart comes from the configured engine, and the sky is read at local midnight, at the middle of the day and at the next midnight, as three engine reads in parallel with the same zodiac. Aspects, midpoints, exact times and the ranking are arithmetic on those positions, so the same input always gives the same numbers. With ENGINE=stub they are placeholders. Returns: a headline, the day's bounds and length, and the aspect hits across the pairings T to N, T to Nm, Tm to N and Tm to Nm, ranked by score, each with its orb, score, applying or separating, and its exact time, to the minute, or null; the sign and natal house changes with their times; the retrograde changes with their times; and the Moon's sign changes and its aspects that day, including a transiting midpoint that holds the Moon. Each list is up to limit (default 10, at most 50) with its total and a truncated flag. It also gives the codes the engine did not compute, the house system, the natal moment, the place and the provenance. Inputs: birth_date, birth_time and place, or latitude, longitude and timezone; date, the local day; day_timezone, the day's IANA zone, which defaults to the natal timezone; house_system; ayanamsa (tropical by default, or lahiri, fagan_bradley, raman or krishnamurti for sidereal longitudes), applied to the natal chart and every sky sample; aspects, "major" (default) or "all"; harmonic, from 1 up to 432 divided by the day's hours, rounded down; limit; and min_strength, which keeps only hits whose score, to two places, is at least that. The score is orb tightness times weight, divided by 1.5 (weight 1 plus 0.25 for an outer transiting body plus 0.25 for a key natal point). Tightness is 1 at exact and 0 at the edge of the orb. Gives positions and facts only, with no interpretation.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation4/5

The tools are largely distinct: natal chart, composite chart, harmonic midpoints, moment transits, and daily transits. The only notable overlap is get_transit_data versus get_daily_transits, both transit calculations, though the descriptions clearly separate a single moment from a whole local day.

Naming Consistency5/5

All five tools use a consistent get_<noun phrase> pattern in snake_case. The minor variation between _data suffixes and direct nouns does not break the predictable convention.

Tool Count5/5

Five tools is well-scoped for a focused astrology calculation server. Each tool covers a distinct chart or transit operation, with no filler or redundant entries.

Completeness4/5

The surface covers core natal, transit, daily transit, composite, and harmonic midpoint workflows. Notable gaps remain, such as synastry between two natal charts, progressions, and return charts, but core chart-data retrieval is well covered.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues