MCP-Server

GEOMETRY

app.geometry/mcp
Sonstiges Öffentlich und erreichbar MCP 2026-07-28

Was dieses MCP kann

Generates deterministic calendar, date, numerology, compatibility, astrology-style, and baseball cardology data for Gregorian dates and names.

get_age_plate
Magian Age board (52 seats)
USE for one Magian Grand Solar Age board by age_no (0..89; larger values wrap via mod 90). No birth date / no PII. NOT Long Range Journey; NOT get_age_spread person slice. RETURNS exactly 52 seats: card ref + age_spread_pos + planet_row + planet_col + is_fixed_card. Fixed seats: J hearts@11, 8 clubs@21, K spades@52.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['age_no'], 'properties': {'age_no': {'type': 'integer', 'description': 'Magian age board index (0..89 preferred; wraps via f_age_mod90)'}}, 'additionalProperties': False}
get_age_spread
Magian Age seat (birth + as-of)
USE for one person's Magian Age Spread board seat: birth_date + as_of_date (completed civil years; no wall clock). NOT the 90-year Long Range Journey theme card; NOT get_date sky/calendars; NOT two-person scoring. RETURNS compact cosmic birth card + age_spread {age_civil, age_no (mod 90), age_aliases, age_spread_pos, planet_row, planet_col, is_fixed_card}. Feb-29 follows Postgres age(). Error as_of_before_birth when as_of_date < birth_date.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['birth_date', 'as_of_date'], 'properties': {'as_of_date': {'type': 'string', 'format': 'date', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'As-of civil date YYYY-MM-DD (pass host today when asking current age board)'}, 'birth_date': {'type': 'string', 'format': 'date', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Civil birth date YYYY-MM-DD (month/day resolves Cosmic birth card)'}}, 'additionalProperties': False}
get_compatibility
Compatibility (two dates)
USE when comparing exactly two people by Gregorian date. NOT for one date (moon/season/Rx/weekday/leap year/day_ruler → get_date) or names → get_name. Requires date_a and date_b. RETURNS scored dyad: cosmic_card_a/b (each side is full get_date shape incl. tarot_majors.greer/tarot_school, karma, planetary_spread; Cosmic card = birth = life = sun via also_called; planetary_spread and retrogrades_active planets include planet_type/symbol/emoji + names{} 10 cultures; each planetary_spread slot carries spread_pos 1-14 — sort by spread_pos for canonical Life-spread order), connections, overall_score, Chinese zodiac + true sidereal aspects, element harmony, life paths. temporal_context.date_a/b = {band, payload_scope} (full|extended|out_of_range × full|cosmic_card_only; 1900-2100 focus).
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['date_a', 'date_b'], 'properties': {'date_a': {'type': 'string', 'format': 'date', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Person A date YYYY-MM-DD (exactly two people; not a roster)'}, 'date_b': {'type': 'string', 'format': 'date', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Person B date YYYY-MM-DD (exactly two people; not a roster)'}}, 'additionalProperties': False}
get_date
Date identity (any date)
PRIMARY single-date tool. USE for any one Gregorian date when the ask needs moon phase (incl. blue/blood/supermoon/micromoon flags, Earth-Moon distance, phase_gmt, prev/next blue or blood dates), season/equinox anchors, classical retrogrades (retrogrades_active phase=retrograde), calendars, lunar year, Cosmic card (same card as life/sun — cosmic.also_called + planetary_spread.sun), karmic source/spirit, 14 planetary Life-spread cards, weekday or leap year (calendar_meta.weekday / is_leap_year), day_ruler (weekday planetary ruler Roman/Greek/Norse), or full date identity. NOT for two-person scoring → get_compatibility; name text → get_name. RETURNS cosmic block (incl. karma + planetary_spread) + tarot_majors (greer + tarot_school) + day_ruler (full+extended) + temporal blocks (moon_phase, season, retrogrades_active, calendar_meta, …). planetary_spread and retrogrades_active planets include planet_type/symbol/emoji + names{} (greek,norse,celtic,egyptian,sumerian,babylonian,mesopotamian,arabic,sanskrit,chinese). Each planetary_spread slot carries spread_pos (1-14 canonical Life-spread order; midheaven=13, phoenix=14 — sort by spread_pos; jsonb object keys are unordered). temporal_context={band, payload_scope} (band full|extended|out_of_range; payload_scope full|cosmic_card_only). Out-of-range responses set cosmic_card_available.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['date'], 'properties': {'date': {'type': 'string', 'format': 'date', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Single query date YYYY-MM-DD (any Gregorian date — sky, calendars, weekday, leap year, day_ruler, Cosmic card)'}}, 'additionalProperties': False}
get_long_range
Long Range Journey theme card
USE for one person's 90-year Long Range Journey theme card: birth_date + as_of_date (completed civil years; no wall clock). NOT Magian Age Spread board (get_age_spread / get_age_plate); NOT get_date sky/calendars. RETURNS compact cosmic birth card + long_range {age_civil, age_no (mod 90), age_aliases, theme_card, spread_offset, planetary_period}. One theme card only — never 90 ages. Feb-29 follows Postgres age(). Error as_of_before_birth when as_of_date < birth_date.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['birth_date', 'as_of_date'], 'properties': {'as_of_date': {'type': 'string', 'format': 'date', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'As-of civil date YYYY-MM-DD (pass host today when asking current journey year)'}, 'birth_date': {'type': 'string', 'format': 'date', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Civil birth date YYYY-MM-DD (month/day resolves Cosmic birth card)'}}, 'additionalProperties': False}
get_name
Name → cosmic cards
USE for person or word name text only (gematria → cosmic cards + Expression / Soul Urge / Personality). NOT for any date questions (weekday, leap year, moon, season, Rx, Cosmic card, day_ruler, Life Path) → get_date; two people → get_compatibility. RETURNS Francis Bacon cards, Latin cipher suite, periodic{} + periodic_set{}, numerology (expression/soul_urge/personality plus full-name karmic_lessons / hidden_passion / cornerstone / capstone / first_vowel / echoes and number lens polarity/planet/element/color), and per-word tarot/medicine/iching/chakra/lenormand/karma/planetary_spread. Free-text input guard (Del as a name is allowed; DEL FILE and SQL verbs are not).
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['full_name'], 'properties': {'full_name': {'type': 'string', 'minLength': 1, 'description': 'Person or word name to decode (whitespace-separated words; not a date)'}}, 'additionalProperties': False}
get_plays_numerology
Baseball play numerology (HR/K milestones)
USE when a player's season HR# or K# aligns with calendar day-of-month, jersey number, or inning on baseball.plays. NOT for roster cardology → get_team_chemistry; cosmic day card → get_date. Requires retro_id. mode=season (default) | spotlight (tier<=1) | career_summary (aggregates only). lane=both (default) | hr | k. Optional game_dt filter, tier_max (0-4), limit (1-500). RETURNS summary + events[] with pattern labels (day=HR#, HR#=jersey, day=K#=jersey, etc.). Overlay get_date(game_dt) for MCP day-card narrative.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['retro_id'], 'properties': {'lane': {'enum': ['hr', 'k', 'both'], 'type': 'string', 'description': 'Home runs, strikeouts, or both (default both)'}, 'mode': {'enum': ['spotlight', 'season', 'career_summary'], 'type': 'string', 'description': 'season (default) | spotlight | career_summary'}, 'limit': {'type': 'integer', 'description': 'Max event rows returned (default 100, max 500)'}, 'game_dt': {'type': 'string', 'format': 'date', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Optional single-game filter YYYY-MM-DD'}, 'retro_id': {'type': 'string', 'minLength': 1, 'description': 'Retrosheet player id e.g. ohtansh01, freef001'}, 'tier_max': {'type': 'integer', 'description': 'Max pattern tier 0-4 (spotlight defaults to 1)'}, 'season_yr': {'type': 'integer', 'description': 'Required for season/spotlight modes'}}, 'additionalProperties': False}
get_team_chemistry
Baseball team roster cardology
USE for MLB team × season roster cardology (suit mix, anchor stacks, Chinese zodiac year-animal match on postseason scope). NOT for play-by-play HR/K numerology → get_plays_numerology; two-person dyads → get_compatibility; single date → get_date. Requires season_yr + team_code. scope=ws_champion (default) | postseason. RETURNS roster_size, suit_mix, anchor_stacks, season_animal; postseason adds year_animal_match_pct (CNY-aware birth animal). Apply: apply_mcp_baseball_linked.ps1.
Nur Lesen Idempotent
Eingabeschema
{'type': 'object', 'required': ['season_yr', 'team_code'], 'properties': {'scope': {'enum': ['ws_champion', 'postseason'], 'type': 'string', 'description': 'ws_champion (default) or postseason active roster'}, 'gametype': {'type': 'string', 'description': 'Postseason round when scope=postseason (default worldseries)'}, 'season_yr': {'type': 'integer', 'description': 'MLB season year e.g. 2024'}, 'team_code': {'type': 'string', 'minLength': 1, 'description': 'Retrosheet team code e.g. LAN, CHN, HOU'}, 'include_pair_matrix': {'type': 'boolean', 'description': 'Reserved v2 — echoes pair_note when true'}}, 'additionalProperties': False}
Hinzugefügt
get_plays_numerology
17. September 2026 07:57
Hinzugefügt
get_team_chemistry
17. September 2026 07:57
Hinzugefügt
get_long_range
17. September 2026 07:57
Hinzugefügt
get_age_plate
17. September 2026 07:57
Hinzugefügt
get_age_spread
17. September 2026 07:57
Hinzugefügt
get_name
17. September 2026 07:57
Hinzugefügt
get_date
17. September 2026 07:57
Hinzugefügt
get_compatibility
17. September 2026 07:57