The Model Context Protocol — an open standard that lets AI apps call external tools. Add GEOMETRY once; any MCP client (Claude, ChatGPT, Cursor, and others) can query it mid-conversation. What is RAG?
Retrieval-Augmented Generation — an AI pattern that fetches facts from a tool or database before answering, instead of inventing them. Do I need an account to try?
No. Paste
https://mcp.geometry.app/mcp and ask. Plans and keys apply when you want a metered Free plan or paid tier — see Where your key goes.
Which AI client should I use?Prefer Claude (Claude Code or Claude Desktop) for natural-language questions — enable Geometry once and it stays in-thread. ChatGPT works on the same URL but needs
@geometry Call get_… and a new chat if the tool drops — see ChatGPT quirks. Cursor / Codex / VS Code are fine if you already work there.
ChatGPT won’t call the tool, drops it, or picks the wrong one?Type
@geometry Call get_date for … — name the tool; the Plugins + chip is unreliable and often vanishes. If a later turn says the tool “isn’t available,” start a new chat (normal ChatGPT behavior, not a GEOMETRY outage). Use get_date for any single-date fact (moon, season, Rx, calendar_meta, day_ruler). Claude does not need @ after one enable. Full quirk table: Quickstart → ChatGPT quirks.
Which tool for which question?
Is there a REST / HTTP API?
Soft launch is MCP-only. Prefer MCP. Branded HTTP at
api.geometry.app is deferred (reserved DNS, no public routes yet) — demand-driven later, not cancelled. See HTTP API.
Is the data stable?Yes. The date range and its systems are pre-computed and versioned — same call, same answer today, tomorrow, and next year. See Quickstart. What are the calendar boundaries?
Published coverage is 1900-01-01 through 2100-12-31. Within that window, bare
YYYY-MM-DD fields can mean different things — cultural year starts vs GMT sky-event days. Full explanation: When it covers → Calendar boundaries.
What’s cardology?A date-to-playing-card system (Cards of Destiny tradition) with a relationship / connection layer. GEOMETRY serves a machine-readable version of it — each month/day maps to one Cosmic card. Cosmic card A / Cosmic card B — what are those?
On
get_compatibility, Cosmic card A is the Cosmic card for date_a, and Cosmic card B for date_b. Each side also carries a full date profile (same shape as get_date). Tool inputs are always date / date_a / date_b.
Is this astrology? Do you claim it predicts anything?GEOMETRY serves the data of traditional symbolic systems — deterministically. Interpretation belongs to your product. What does it cost?
The free MCP URL needs no account. Metered Free and paid plans are in the Developer Portal — current prices on geometry.app/pricing. Checkout is Zuplo then Stripe — Billing. Where is my data stored? Do you see my users’ questions?
GEOMETRY is a read-only reference lookup. Calls take dates or names (tool inputs), return JSON, and are not used to build user profiles. Where is the full JSON / contract?
Docs samples are shortened on purpose. Every successful tool call returns the complete JSON. For
get_date, the only input is date — there is no full=true flag. “Full payload” and “raw JSON” mean that complete object.
How do I see the full JSON in chat?Ask something like:
give raw json for date 1985-03-15 card. That tells the agent to paste the tool result instead of summarizing. If you read the MCP or HTTP response in code, you already have the full object.
Why does alchemical_symbol look like a water wave or garbage emoji in a JSON file my AI saved?The live tool is fine. Rare Unicode glyphs (especially U+1F700–U+1F77F alchemical symbols) often get rewritten incorrectly when an LLM regenerates or “exports” JSON from memory. Example: live
get_name returned phosphorus 🝁 (U+1F741) and oxygen 🜊 (U+1F70A); a chat-saved copy flipped those to lookalike codepoints / emoji. Cards, cipher sums, element names, and atomic numbers in that same file can still match.
Use: the live MCP/HTTP tool response — not a hand-rewritten chat artifact. What stays reliable in those copies: ordinary text and numbers. What to double-check: glyph fields (alchemical_symbol, and any other rare symbols). Ask the model to paste the tool output without rewriting, or check codepoints. See get_name.
Which timezone decides when a cultural year starts?It depends on the system. Chinese and Vietnamese lunar years use CST (UTC+8), Vedic samvatsara uses IST (UTC+5:30), Hebrew and Dreamspell are timezone-neutral, and Persian uses the equinox in GMT. Tools take a bare
YYYY-MM-DD with no time or zone; no conversion runs at request time. Full table: When it covers → Calendar boundaries.
Why doesn’t your Nowruz match my Persian calendar library?GEOMETRY anchors Persian years to the equinox in GMT. Iran’s official Solar Hijri rule uses Tehran local time and rolls to the next day when the equinox falls after Tehran solar noon. The two disagree on roughly a quarter to a third of years — including 2026 (GEOMETRY March 20, Iran March 21). Documented convention, not a bug. See When it covers → Calendar boundaries. How were moon / season / retrograde dates calculated?
Offline with the Swiss Ephemeris Python stack, then stored as lookups. Requests do not run a live ephemeris. Each date in the payload is the Gregorian day of the instant in GMT. Library: pyswisseph. See When it covers. Your moon phase date is one day off from mine.
Usually a timezone difference. GEOMETRY publishes the GMT day; a local almanac may use local time. Local dates differ roughly
offset ÷ 24 of the time — about a third of the time at UTC+8 or UTC−8. Convert in your app if you need local dates. See When it covers → Calendar boundaries.
Was that date a blue moon / blood moon / supermoon / micromoon?Call
get_date and read moon_phase. These are deterministic GMT calendar / ephemeris facts following standard NASA / almanac rules — not interpretation. Full flag reference (is_supermoon, is_blood_moon, distance thresholds, prev/next neighbors): Field glossary → Named moons. (“Wolf moon” is just January’s full moon — a calendar nickname, not a product flag.)
Where are the karmic cards and planetary spreads?On
get_date: under cosmic.karma (source = past, spirit = future) and cosmic.planetary_spread (14 Life-spread slots: sun = the Cosmic card, then moon … rahu, midheaven, phoenix). On get_compatibility: same blocks for Cosmic card A and Cosmic card B — path ….cosmic.karma / ….cosmic.planetary_spread on each side’s date profile (inputs date_a / date_b).
How do I sort planetary_spread?JSON object keys are unordered. Every slot has
spread_pos (1–14). Sort ascending on that field — sun=1 … midheaven=13, phoenix=14. See get_date → Planetary spread order.
Is the Sun card different from the Cosmic card / Life card?No. Cosmic card = birth card = life card = sun card — one card. Live JSON may list those aliases under
cosmic.also_called and planetary_spread.sun.
Why doesn’t my sign match another app?
GEOMETRY returns five wheels under astro_wheels (tropical, Vedic rasi, Fagan-Bradley, sidereal IAU, true sidereal). They can disagree on the same date — that is by design, not a bug. Match the wheel your source uses. sidereal_iau and sidereal_true both use unequal widths that follow the sky; GEOMETRY recommends sidereal_true when you need a default. Full table: Astro wheels.
How do I get help?Start at Support — docs and portal first. Human GitHub Issues are for paid plans only. Free / keyless use is self-serve. Card and invoices → Billing (Stripe Customer Portal). Company?
Goqo Labs · product geometry.app · builders: self-serve docs