GEOMETRY
Deterministic calendars and cosmic date JSON for AI agents via MCP (Gregorian 1900-2100).
¿Debería usar esto?
Calidad y seguridad
Hallazgos (2)
- HIGH
- MEDIUMen get_name
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"mcp": {
"url": "https://mcp.geometry.app/mcp"
}
}
}Puntos de conexión remotos
https://mcp.geometry.app/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (8)
🟢get_compatibility(date_a, date_b)
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).
Esquema de entrada
{
"type": "object",
"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)"
}
},
"required": [
"date_a",
"date_b"
],
"additionalProperties": false
}🟢get_date(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.
Esquema de entrada
{
"type": "object",
"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)"
}
},
"required": [
"date"
],
"additionalProperties": false
}🟢get_name(full_name)
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).
Esquema de entrada
{
"type": "object",
"properties": {
"full_name": {
"type": "string",
"minLength": 1,
"description": "Person or word name to decode (whitespace-separated words; not a date)"
}
},
"required": [
"full_name"
],
"additionalProperties": false
}🟢get_age_spread(birth_date, as_of_date)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"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)"
},
"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)"
}
},
"required": [
"birth_date",
"as_of_date"
],
"additionalProperties": false
}🟢get_age_plate(age_no)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"age_no": {
"type": "integer",
"description": "Magian age board index (0..89 preferred; wraps via f_age_mod90)"
}
},
"required": [
"age_no"
],
"additionalProperties": false
}🟢get_long_range(birth_date, as_of_date)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"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)"
},
"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)"
}
},
"required": [
"birth_date",
"as_of_date"
],
"additionalProperties": false
}🟢get_team_chemistry(season_yr, team_code, scope, gametype, include_pair_matrix)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"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"
},
"scope": {
"type": "string",
"enum": [
"ws_champion",
"postseason"
],
"description": "ws_champion (default) or postseason active roster"
},
"gametype": {
"type": "string",
"description": "Postseason round when scope=postseason (default worldseries)"
},
"include_pair_matrix": {
"type": "boolean",
"description": "Reserved v2 — echoes pair_note when true"
}
},
"required": [
"season_yr",
"team_code"
],
"additionalProperties": false
}🟢get_plays_numerology(retro_id, season_yr, mode, lane, tier_max, ...)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"retro_id": {
"type": "string",
"minLength": 1,
"description": "Retrosheet player id e.g. ohtansh01, freef001"
},
"season_yr": {
"type": "integer",
"description": "Required for season/spotlight modes"
},
"mode": {
"type": "string",
"enum": [
"spotlight",
"season",
"career_summary"
],
"description": "season (default) | spotlight | career_summary"
},
"lane": {
"type": "string",
"enum": [
"hr",
"k",
"both"
],
"description": "Home runs, strikeouts, or both (default both)"
},
"tier_max": {
"type": "integer",
"description": "Max pattern tier 0-4 (spotlight defaults to 1)"
},
"game_dt": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional single-game filter YYYY-MM-DD"
},
"limit": {
"type": "integer",
"description": "Max event rows returned (default 100, max 500)"
}
},
"required": [
"retro_id"
],
"additionalProperties": false
}Prompts recomendados
get_compatibilityget_compatibilityComunidad
Evidencia