Tarot MCP Server by RoxyAPI
Server Details
Tarot card meanings, spreads and seeded reproducible readings for AI agents, one API key.
- Status
- Healthy
- Uptime
- 99.9% over 43 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 10 tools
Most tools have clearly distinct purposes: reference (get cards), draws (daily, draw, yes/no), and specific spreads (career, celtic cross, custom, love, three-card). However, 'get_tarot_cards' and 'get_tarot_cards_id' are similar (list vs detail), and the various spread endpoints (career, celtic cross, custom, love, three_card) all share the pattern of drawing cards with position-specific interpretations, though their descriptions differentiate them well.
The naming follows a mostly consistent pattern: 'get_tarot_cards', 'post_tarot_daily', 'post_tarot_spreads_career', etc. The use of 'get' for reference and 'post' for actions is consistent. Minor deviation: 'get_tarot_cards_id' uses an '_id' suffix which is slightly out of line with the rest (could be 'get_tarot_card'), and the spread endpoints all share the same prefix, which is fine.
With 10 tools, the count is appropriate for a tarot API covering card exploration, draws, and multiple spreads. It's on the higher end but each tool provides a distinct function. The number of spread-specific endpoints (career, love, three-card, celtic cross) could be seen as slightly redundant, but they serve different user needs. Overall, well-scoped.
The toolset covers the main use cases: retrieving card data, performing draws, and offering several common spreads. It lacks a tool for creating or managing custom spreads beyond the immediate draw (though custom spread does allow defining positions), and there is no tool for getting a reading history or managing users. Those are minor gaps; the core functionality is complete for a tarot API.
Available Tools
10 toolsget_tarot_cardsList all 78 tarot cards - Tarot deck catalog APIARead-onlyInspect
Retrieve the complete Rider-Waite-Smith tarot deck of 78 cards. The 22 Major Arcana (numbered 0-21) carry life lessons, spiritual themes, and karmic influences like The Fool, Death, The Tower; the 56 Minor Arcana (4 suits × 14 cards each) cover daily situations and practical matters. Filter by arcana type (major for spiritual guidance, minor for everyday concerns), suit (cups for emotions and relationships, wands for creativity and passion, swords for intellect and conflict, pentacles for material wealth and finances), or card number (Ace=1 for new beginnings, 2-10 for progression, Page=11 for messages, Knight=12 for action, Queen=13 for mastery, King=14 for authority). Returns lightweight basic card data. Use GET /cards/{id} for full upright and reversed interpretations with keywords. Perfect for building tarot reference libraries, card databases, learning applications, or browsing the complete traditional deck used by professional tarot readers worldwide.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| suit | No | Filter minor arcana by suit. Cups=emotions/relationships, Wands=creativity/passion, Swords=intellect/conflict, Pentacles=material/finances. Only applies to minor arcana cards. | |
| limit | No | Maximum items to return per page. Range: 1-100, default 20. | |
| arcana | No | Filter by arcana type. Major arcana (0-21) represents life lessons and spiritual themes. Minor arcana (Ace-King in 4 suits) represents daily situations and practical matters. | |
| number | No | Filter by card number. Major Arcana: 0 (The Fool) through 21 (The World). Minor Arcana: 1 (Ace) through 14 (King). Combine with arcana or suit filters for precise results. | |
| offset | No | Number of items to skip for pagination. Default 0. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
Output Schema
| Name | Required | Description |
|---|---|---|
| cards | Yes | |
| limit | Yes | |
| total | Yes | |
| offset | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds behavioral context: it returns 'lightweight basic card data' and points to GET /cards/{id} for full interpretations, thereby disclosing what this endpoint does not return. It also describes the deck contents and filter semantics. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, which is good. However, it is verbose, repeats a lot of schema-provided filter detail, and ends with a promotional sentence ('Perfect for building tarot reference libraries... used by professional tarot readers worldwide') that does not earn its place. It is not tight enough for a 5, but the main content is relevant enough for a 3.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema (7 parameters, 100% coverage, enums), the true output schema, and read-only annotations, the description does not need to explain return structure or pagination mechanics. It provides sufficient narrative context about what the deck contains, how to filter, and when to use the detail endpoint. No critical usage information is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. However, the description adds meaning beyond the schema: it maps number values to named cards (Page=11 for messages, Knight=12 for action, Queen=13 for mastery, King=14 for authority), expands suit meanings, and clarifies arcana significance in ways the schema only summarizes. This extra semantic layer earns a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Retrieve the complete Rider-Waite-Smith tarot deck of 78 cards.' It clearly distinguishes itself from get_tarot_cards_id by covering the full deck rather than a single card, and from the post_tarot_* siblings by being a read/list endpoint. The scope and resource are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names the alternative GET /cards/{id} and says it provides full upright/reversed interpretations and keywords, implying this endpoint is for lightweight listing. It also states the intended use cases ('tarot reference libraries, card databases, learning applications'). It does not explicitly mention all siblings like post_tarot_draw, but their post/random nature is obvious enough; the main alternative is covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tarot_cards_idGet tarot card by id - Tarot card meaning APIARead-onlyInspect
Retrieve comprehensive details for a specific tarot card from the traditional Rider-Waite-Smith deck including complete upright meanings (card drawn normally) and reversed meanings (inverted/upside down interpretations for nuanced guidance). Each card provides keywords for quick reference, full interpretations (400+ words each for upright and reversed orientations), and guidance across life domains: love and relationships, career and professional growth, finances and material success, health and wellbeing, spirituality and personal development. Major Arcana cards (0-21) reveal deep spiritual lessons and life-changing themes. Minor Arcana cards (Ace through King in Cups, Wands, Swords, Pentacles) address practical daily situations and specific challenges. Use card ID in kebab-case format: Major Arcana like "fool", "magician", "death", "tower", or Minor Arcana like "ace-of-cups", "seven-of-wands", "queen-of-swords", "king-of-pentacles". Major Arcana IDs carry no leading article, though one is accepted, so "the-star" and "star" both return The Star. Essential for detailed tarot study, reading interpretations, divination apps, fortune-telling platforms, spiritual guidance tools, and professional tarot learning applications.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Card identifier. Major arcana: "fool", "magician", "death". Minor arcana: "ace-of-cups", "seven-of-wands", "queen-of-swords", "king-of-pentacles". Casing and separators are flexible, so "Fool" and "ACE_OF_CUPS" both resolve, and a leading definite article is optional, so "the-star" resolves to "star". The canonical form, and the one every response echoes, is kebab-case with no article. | |
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| name | Yes | |
| suit | No | |
| arcana | Yes | |
| number | Yes | |
| upright | Yes | |
| imageUrl | Yes | |
| keywords | Yes | |
| reversed | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavioral context beyond that: flexible ID parsing ('Fool' and 'ACE_OF_CUPS' both resolve) and optional leading-article handling ('the-star' resolves to 'star'). No mention of rate limits or pagination, but those are not indicated as concerns for this tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is substantial (~200 words) but earns its length: it front-loads the core purpose, then logically progresses through content coverage, ID formats, and use cases. The final enumeration of application types is slightly redundant with the opening use-case framing, but the structure keeps the most decision-relevant information first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation. The description covers the card content, ID formats and flexibility, arcana distinctions, and target use cases; the schema covers lang fallback and compact shaping. Nothing an agent needs to invoke this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — all three parameters (id, lang, compact) have detailed schema-level descriptions including examples, defaults, and behavior. The description reinforces the ID format and article flexibility, but since the schema already documents this thoroughly, the description adds only marginal value beyond structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Retrieve comprehensive details for a specific tarot card from the traditional Rider-Waite-Smith deck', stating a specific verb, resource, and scope. It clearly differentiates from siblings by focusing on a single-card lookup with upright and reversed meanings, which none of the spread/draw siblings claim.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit use-case context ('Essential for detailed tarot study, reading interpretations, divination apps...') that tells an agent when this tool fits. However, it never names the sibling it is not — notably get_tarot_cards for bulk listing — so no explicit when-not-to-use or alternative routing is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_tarot_dailyDaily tarot card - Card of the day APIARead-onlyInspect
Receive a single tarot card for daily guidance and reflection. This endpoint uses seeded randomness to ensure the same seed gets the same card on the same day, perfect for "Card of the Day" features. Provide a seed (userId, email hash, session token) for reproducible consistency, or omit for anonymous daily draws. Returns card with keywords, full meaning, and a daily message summary. Great for tarot apps, wellness platforms, morning ritual apps, and journaling tools.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Date for the reading in YYYY-MM-DD format. Defaults to today (UTC). Useful for viewing past daily readings or pre-generating future ones. | |
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| seed | No | Optional seed for reproducible readings. Same seed + same date = same card every time. Pass any unique identifier (userId, email hash, session token). Omit for anonymous daily readings. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. |
Output Schema
| Name | Required | Description |
|---|---|---|
| card | Yes | |
| date | Yes | |
| seed | Yes | |
| dailyMessage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/destructive annotations, the description explains meaningful behavior: seeded randomness, consistent same-seed/same-date results, anonymous fallback draws, and a deterministic daily card. It adds real behavioral context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then provides seed behavior, return contents, and use cases without excessive fluff. The final sentence listing target apps is useful but slightly promotional, keeping it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and annotations cover safety, the description supplies the essential usage context: deterministic daily draws, seed handling, and result contents. It does not explicitly contrast with sibling draw/spread endpoints, but the tool is simple enough that this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds valuable seed semantics: 'Provide a seed... for reproducible consistency, or omit for anonymous daily draws.' It reinforces the seed parameter's behavior in a way that helps correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Receive a single tarot card for daily guidance and reflection.' It clearly differentiates from sibling spread/draw tools by emphasizing 'single tarot card' and 'Card of the Day' behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear when-to-use context: daily guidance, 'Card of the Day' features, tarot/wellness/journaling apps, and reproducible daily draws. It does not explicitly name alternative sibling tools or state when not to use it, but the intended usage is unmistakable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_tarot_drawDraw tarot cards - Seeded tarot draw APIARead-onlyInspect
Draw 1-78 tarot cards from the complete Rider-Waite-Smith deck with seeded reproducibility for consistent personalized readings. Provide an optional seed string (like "user123-2025-12-27" or "readingId") to ensure the same seed always returns identical cards in the exact same order, which is essential for daily tarot features, personalized user experiences, shareable readings, or reproducible testing. Omit seed for true random draws each time. Control card reversals (upright vs reversed or inverted orientations, where reversed cards provide alternative meanings when drawn upside down) and duplicates (traditional deck draws each of 78 cards once, or oracle-style allows repeating same card). Each drawn card includes position number, reversal state (boolean), keywords for quick interpretation, full meaning text (400+ words), authentic Rider-Waite imagery, and card metadata. Perfect for custom spread builders, random card generators, automated tarot reading platforms, daily card features, meditation apps, journaling prompts, divination tools, and any application requiring reproducible or random tarot draws from the industry-standard 78-card deck (22 Major Arcana spiritual lessons + 56 Minor Arcana practical guidance across 4 suits).
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| seed | No | Optional seed for reproducible results. Same seed = same cards in same order. Use format like "userId-date" for daily consistency, or "readingId" for shareable readings. Omit for true randomness. | |
| count | Yes | Number of cards to draw (1-78). Common values: 1 for daily card, 3 for past-present-future, 5 for relationship spread, 10 for Celtic Cross. Drawing 78 returns the entire shuffled deck. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. | |
| allowReversals | No | Whether cards can appear reversed (upside down). Reversed cards have different meanings. Set false for upright-only readings. Default: true (50% chance of reversal per card). | |
| allowDuplicates | No | Whether same card can be drawn multiple times. Set false for traditional deck behavior (each card drawn only once). Set true for statistical analysis or oracle-style readings. Default: false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| cards | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/non-destructive annotations, the description discloses key runtime behavior: same seed always returns identical cards in order, omitted seed gives true randomness, reversal/duplicate controls affect draw semantics, and each card includes position, reversal boolean, keywords, 400+ word meaning text, imagery, and metadata. This gives an agent a rich model of what to expect without needing to inspect the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The first sentence front-loads the core action, and the rest is organized around seed behavior, reversal/duplicate controls, output contents, and use cases. It is somewhat long and ends in a marketing-heavy list with deck trivia, but most sentences still contribute actionable information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with six parameters, read-only annotations, and an output schema, the description combined with the schema covers behavior, determinism, card content, and applications. There is no obvious missing information an agent would need to invoke it correctly; only explicit sibling differentiation is absent, which is already reflected in the usage score.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains all six parameters. The description reinforces the seed, reversal, and duplicate concepts and mentions common counts, but it does not add significant meaning for lang or compact beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: draw 1-78 cards from the complete Rider-Waite-Smith deck, with a clear seeded-reproducibility angle. It clearly targets arbitrary card draws rather than fixed spreads, but it does not explicitly reference or distinguish itself from sibling tools like post_tarot_spreads_custom or get_tarot_cards.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete use-case guidance such as daily tarot features, shareable readings, reproducible testing, custom spread builders, and random generators, which implies when this tool is appropriate. It does not explicitly say when not to use it or name alternative tools, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_tarot_spreads_careerCareer spread, 7 cards - Career tarot reading APIARead-onlyInspect
Perform a comprehensive 7-card career tarot spread using SWOT analysis framework (Strengths, Weaknesses, Opportunities, Threats) for professional guidance, business decisions, and vocational clarity. This career-focused reading examines seven strategic business aspects: Current Situation (your present professional position and workplace energy), Strengths (your professional assets, talents, and competitive advantages), Weaknesses (areas needing development, skill gaps, or limiting beliefs), Opportunities (potential growth paths, new ventures, or doors opening), Threats (obstacles, competition, or external challenges), Advice (actionable guidance for navigating your career path), and Outcome (where your professional journey is heading if you follow the guidance). Perfect for career coaching platforms, professional development apps, business consulting tools, job search websites, entrepreneurship platforms, and executive coaching services. Use for career transitions, job offers evaluation, promotion decisions, starting a business, workplace conflicts, finding your calling, or strategic career planning. Combines traditional tarot wisdom with modern SWOT business analysis for practical professional insight. Ideal for employees, entrepreneurs, freelancers, career changers, and anyone seeking vocational direction.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| seed | No | Optional seed for reproducible results. The same seed always draws the same seven cards into the same career positions, which is what lets a reading be shared or re-rendered. Omit for a random draw. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. | |
| question | No | Optional querent question to focus the career spread. It is echoed back on the reading and gives the seven career positions their context. Omit for general work and vocation guidance. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| spread | Yes | |
| summary | No | |
| question | No | |
| positions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds useful context about the spread's content and framework, but it does not disclose behavioral details beyond that, such as randomness or reproducibility, though seed behavior is documented in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly long and repetitive, with promotional phrases like 'Perfect for career coaching platforms' and 'Ideal for employees, entrepreneurs, freelancers' adding little information. The key action is front-loaded, but many sentences do not earn their place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description thoroughly explains the seven card positions, the SWOT framework, and the intended use cases, while an output schema is present to define return values. Annotations cover the read-only safety profile, so nothing critical is missing for invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already documented meaningfully (lang, seed, compact, question). The description adds no parameter-specific semantics beyond what the schema provides, but the schema fully carries that burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence names a specific operation: performing a 7-card career tarot spread with a SWOT analysis framework. The detailed description of the seven positions makes it clearly distinguishable from love, three-card, celtic-cross, and other spread siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly enumerates use cases such as career transitions, job offer evaluation, promotion decisions, and workplace conflicts, plus target audiences. It does not explicitly contrast with sibling spread tools or state when not to use it, so it misses exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_tarot_spreads_celtic_crossCeltic Cross spread, 10 cards - Tarot spread APIARead-onlyInspect
Perform the legendary Celtic Cross spread, the most comprehensive and detailed tarot reading available, used by professional tarot readers worldwide for over a century. This 10-card layout reveals the complete picture of any situation through distinct positions: Present Situation (what is happening now), Challenge (obstacles crossing your path), Distant Past (root causes), Recent Past (recent influences), Best Outcome (potential positive result), Near Future (what is approaching in weeks ahead), Your Approach (your attitude and self-perception), External Influences (environment and other people impact), Hopes and Fears (your desires and anxieties), and Final Outcome (where everything is headed). Perfect for life-changing decisions, complex relationship questions, career transitions, spiritual guidance, and deep self-discovery. Ideal for professional tarot apps, life coaching platforms, spiritual wellness websites, and divination tools requiring authoritative comprehensive readings. Each card position provides layered insight combining traditional tarot wisdom with modern psychological interpretation for actionable guidance.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| seed | No | Optional seed for reproducible results. The same seed always draws the same ten cards into the same Celtic Cross positions, which is what lets a reading be shared or re-rendered. Omit for a random draw. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. | |
| question | No | Optional querent question to focus the Celtic Cross. It is echoed back on the reading and gives the ten positions their context. Omit for a general reading of the situation. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| spread | Yes | |
| summary | No | |
| question | No | |
| positions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool read-only and non-destructive, lowering the burden. The description adds context about what the reading reveals (positions and interpretations) but does not go beyond the schema and annotations to disclose operational behaviors like randomness or determinism, which are left to the seed parameter schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is excessively verbose, with repeated marketing superlatives ('legendary', 'most comprehensive and detailed', 'authoritative comprehensive readings') and redundant use-case phrasing ('Perfect for...', 'Ideal for...'). The core purpose is front-loaded, but many sentences do not earn their place and dilute clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the verbosity, the description gives a thorough overview of the 10 positions and their meanings, which is essential for understanding what the spread offers. Combined with a full input schema and an output schema, an agent has enough context to invoke the tool correctly, though the description could be tighter and compare with sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter definitions fully explain lang, seed, compact, and question. The description adds no additional parameter-level meaning, which is acceptable given the baseline for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Perform the legendary Celtic Cross spread'. The 10 positions and their meanings clearly identify this as a distinct comprehensive spread tool, distinguishing it from the simpler sibling spread tools even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists appropriate use cases ('Perfect for life-changing decisions, complex relationship questions, career transitions...') and target contexts. It does not explicitly mention alternatives or when not to use it, but the context is clear and there are no misleading exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_tarot_spreads_customCustom spread builder - Configurable tarot spread APIARead-onlyInspect
Build and perform your own custom tarot spread with personalized positions and interpretations (1-10 cards). This flexible endpoint lets you create unique spread layouts for any purpose: define your own position names, meanings, and card count to match your specific needs or therapeutic framework. Perfect for therapists using tarot in counseling, coaches creating signature spreads, app developers building custom reading features, spiritual practitioners with proprietary methods, or anyone wanting to design specialized layouts beyond traditional spreads. Create spreads for specific themes like chakra readings (7 cards), lunar phases (8 cards), elements (4 cards), goals setting (any count), shadow work, inner child healing, decision matrices, or creative problem-solving. Each position requires a name and interpretation, so you define what each card position represents in your reading. The API draws the exact number of cards you specify and maps them to your custom positions. No pre-generated summary is provided, so you interpret the reading based on your framework. Ideal for innovative tarot apps, therapeutic tools, personal development platforms, spiritual coaching services, or experimental divination methods. Maximum 10 positions to maintain reading clarity and practical interpretation time.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| seed | No | Optional seed for reproducible results. Same seed with the same positions produces identical card draws for consistent divination. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. | |
| question | No | Optional querent question to focus the custom tarot reading. Provides context for position-specific interpretations. | |
| positions | Yes | Array of 1-10 custom position definitions for your tarot spread. Each position gets one drawn card with a position-specific interpretation. | |
| spreadName | No | Optional name for your custom tarot spread layout. Used as the spread identifier in the response. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| spread | Yes | |
| question | No | |
| positions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=true and destructiveHint=false, but the description adds valuable behavioral details: 'The API draws the exact number of cards you specify and maps them to your custom positions,' 'No pre-generated summary is provided, so you interpret the reading based on your framework,' and 'Maximum 10 positions to maintain reading clarity.' These insights go beyond the structured annotations and set expectations for what the tool does not do.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is far too long and includes promotional language that does not aid tool selection or invocation, such as lists of use cases ('chakra readings, lunar phases, elements...') and repetitive audience descriptions ('therapists using tarot in counseling, coaches creating signature spreads...'). The core information is diluted by many non-essential sentences; a concise version stating 'create custom spreads with user-defined position names and interpretations' would suffice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the rich input schema (100% coverage), output schema, and annotations, the description is mostly complete: it explains the custom spread concept, the mapping of cards to positions, the absence of a pre-generated summary, and the 10-position limit. It falls slightly short on explicit comparison to sibling tools, but overall an agent can correctly invoke the tool with the provided information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all 6 parameters, including nested properties of 'positions'. The description does not add new parameter-level semantics beyond what the schema already provides—it repeats the idea that each position has a name and interpretation, and mentions the 1-10 card count, which is already in the schema's minItems/maxItems. Baseline 3 is appropriate because the schema carries the parameter documentation burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Build and perform your own custom tarot spread with personalized positions and interpretations (1-10 cards).' It clearly distinguishes this from sibling tools by emphasizing the customizable positions and 'beyond traditional spreads' context. The title and description align, making the tool's purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when this tool is appropriate: 'Perfect for therapists... coaches... app developers...' and 'anyone wanting to design specialized layouts beyond traditional spreads.' It implies use for custom layouts but does not explicitly name alternatives or state when not to use it (e.g., 'use a dedicated spread endpoint for standard layouts'), so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_tarot_spreads_loveLove spread, 5 cards - Relationship tarot reading APIARead-onlyInspect
Perform a specialized 5-card relationship tarot spread analyzing romantic connections, emotional dynamics, and partnership potential. This love-focused reading examines five crucial relationship aspects: You (your current emotional state, needs, and what you bring to the relationship), Partner/Other (their emotional perspective, desires, and energy), Relationship Dynamic (the current energy and connection between you both), Challenge (obstacles needing attention, healing, or communication), and Outcome (where this romantic connection is naturally heading). Perfect for dating apps, relationship counseling platforms, matchmaking services, wellness apps, and romantic guidance tools. Provides deep insight into new relationships, existing partnerships, potential connections, breakup recovery, or self-love journeys. Ideal for understanding compatibility, resolving conflicts, strengthening bonds, or deciding whether to pursue or continue a relationship. Each position reveals emotional truths combining traditional tarot relationship wisdom with modern relationship psychology. Use for individual readings or couples readings to gain perspective on romantic situations from singleness to marriage.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| seed | No | Optional seed for reproducible results. The same seed always draws the same five cards into the same love positions, which is what lets a reading be shared or re-rendered. Omit for a random draw. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. | |
| question | No | Optional querent question to focus the love spread. It is echoed back on the reading and gives the five relationship positions their context. Omit for general relationship guidance. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| spread | Yes | |
| summary | No | |
| question | No | |
| positions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds the structural behavior of the reading, namely the five relationship positions, but it does not disclose operational traits like randomness, seed reproducibility, or response shape, which are left to the schema and output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single long marketing paragraph with heavy repetition: 'Perfect for...', 'Ideal for...', and 'Provides deep insight...' restate similar ideas. The first sentence is useful, but much of the subsequent text does not earn its place and should be substantially trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema and fully documented parameters, an agent has the structured information needed to invoke the tool correctly. The description supplies the love-domain context and use cases, making the overall package complete, though some completeness is carried by the schema rather than the description itself.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all four parameters (lang, seed, compact, question) are already documented in structured form. The description adds no parameter-level meaning, such as how seed enables reproducible draws or how compact changes response shape, so it stays at the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Perform a specialized 5-card relationship tarot spread' and then enumerates the five positions (You, Partner/Other, Relationship Dynamic, Challenge, Outcome). This clearly distinguishes the tool from siblings like post_tarot_spreads_career or post_tarot_spreads_three_card by both card count and romantic focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear application context, such as 'Perfect for dating apps, relationship counseling platforms, matchmaking services' and 'Use for individual readings or couples readings.' It does not explicitly name alternative tools or state when not to use this spread, so it lacks explicit exclusion guidance but still conveys when it is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_tarot_spreads_three_cardThree card spread, past present future - Tarot spread APIARead-onlyInspect
Perform the classic three-card tarot spread revealing Past, Present, and Future. Past is what led to this situation, Present the current energy and circumstances, and Future the likely outcome if the current path continues. The most popular beginner-friendly spread, perfect for quick insights, daily guidance, or exploring specific questions. Each position includes a drawn card with reversal state, keywords, full meaning, and position-specific interpretation. Returns a summary connecting all three cards. Ideal for tarot reading apps, decision-making tools, and personal growth platforms. Optionally provide a seed for reproducible readings.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| seed | No | Optional seed for reproducible results. Same seed = same 3 cards in same positions. Useful for sharing readings, testing, or ensuring users get consistent results. Omit for random draws. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. | |
| question | No | Optional specific question to focus the reading. Examples: "What should I know about my relationship?", "How can I improve my finances?", "What is blocking my creative growth?" Leave empty for general guidance. |
Output Schema
| Name | Required | Description |
|---|---|---|
| seed | No | |
| spread | Yes | |
| summary | No | |
| question | No | |
| positions | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe-read nature is covered. The description adds meaningful behavioral context: each position returns a drawn card with reversal state, keywords, full meaning, position-specific interpretation, and a connecting summary. This goes beyond the annotation baseline without contradicting it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and position meanings in the first two sentences. The later sentences are useful but include some borderline filler such as 'Ideal for tarot reading apps, decision-making tools, and personal growth platforms,' which adds use-case color more than operational guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for this tool: no required parameters, an output schema exists, and the description explains what the spread reveals, what each position means, what each result includes, and how the optional seed affects reproducibility. There are no operational gaps an agent needs filled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all four parameters. The description only restates the seed's purpose ('Optionally provide a seed for reproducible readings') and otherwise adds no parameter semantics beyond the schema. Baseline 3 is appropriate since the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Perform the classic three-card tarot spread revealing Past, Present, and Future.' It clearly defines each position and distinguishes itself from the love, career, and celtic-cross sibling tools by the three-card structure and beginner-friendly framing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: 'perfect for quick insights, daily guidance, or exploring specific questions' and 'Ideal for tarot reading apps, decision-making tools, and personal growth platforms.' It does not explicitly contrast itself with the specialized spread variants, but the general-purpose framing is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_tarot_yes_noYes or no answer - Yes no tarot reading APIARead-onlyInspect
Ask a specific question and receive a yes, no, or maybe answer based on a single tarot card draw. Upright cards indicate "Yes" with positive energy, reversed cards indicate "No" with caution, and certain inherently ambiguous cards (The Hanged Man, Wheel of Fortune, Temperance, Two of Swords, Four of Swords) return "Maybe" regardless of orientation since their energy signals pause, reflection, or shifting circumstances. Major Arcana cards give strong definitive answers, Minor Arcana cards give qualified nuanced answers. Returns the answer, strength level, drawn card details, and a contextual interpretation explaining why. Perfect for decision-making apps, quick guidance tools, fortune-telling chatbots, and interactive tarot experiences. Optionally provide a seed for reproducible answers.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English. | en |
| seed | No | Optional seed for reproducible results. Same seed + same question = same answer. Useful for testing, sharing readings, or ensuring consistency. Omit for random draws each time. | |
| compact | No | Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {"__cols":[names],"__rows":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens. | |
| question | No | Your specific yes/no question. Be clear and focused. Good: "Should I move to a new city?" Bad: "What should I do about my life?" The more specific the question, the more useful the tarot guidance. |
Output Schema
| Name | Required | Description |
|---|---|---|
| card | Yes | |
| seed | No | |
| answer | Yes | |
| question | No | |
| strength | Yes | |
| interpretation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the readOnlyHint/destructiveHint annotations by disclosing the upright/reversed mapping, the specific ambiguous cards that always return Maybe, the Major vs Minor Arcana strength distinction, and the shape of the returned guidance. This gives an agent a reliable mental model of the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized and front-loaded with the core behavior, then the card interpretation rules, return contents, and use cases. The 'Perfect for...' sentence is somewhat promotional and not needed for tool invocation, but the overall structure is clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-required-parameter tool with a full output schema, the description covers the important behavioral rules, return payload, reproducibility, and appropriate use cases. Nothing an agent needs to decide whether or how to call it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds a little emphasis on question specificity and seed reproducibility, but it largely restates what the schema already provides rather than adding new semantic depth.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: ask a question and receive a yes/no/maybe answer from a single tarot card draw. It clearly differentiates from sibling tools like post_tarot_daily or post_tarot_spreads_* by focusing on the binary guidance use case.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use it, listing decision-making apps, quick guidance tools, fortune-telling chatbots, and interactive tarot experiences. It does not explicitly say when not to use it or name alternatives, but the intended scenario is unmistakable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Changed
get_tarot_cards4 fields changed- added
Input schema / properties / number / maximumAdded value: +21 - added
Input schema / properties / number / minimumAdded value: +0 - added
Input schema / properties / offset / defaultAdded value: +0 - added
Input schema / properties / offset / minimumAdded value: +0
1 tool update
- Changed
get_tarot_cards6 fields changed- removed
Input schema / properties / number / maximumRemoved value: -21 - removed
Input schema / properties / number / minimumRemoved value: -0 - changed
Input schema / properties / number / typePrevious value: -[ - "integer", - "null" -]New value: +"integer" - removed
Input schema / properties / offset / defaultRemoved value: -0 - removed
Input schema / properties / offset / minimumRemoved value: -0 - changed
Input schema / properties / offset / typePrevious value: -[ - "integer", - "null" -]New value: +"integer"
10 tool updates
- Changed
get_tarot_cards1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "cards": { + "items": { + "properties": { + "arcana": { + "enum": [ + "major", + "minor" + ], + "type": "string" + }, + "id": { + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "name": { + "type": "string" + }, + "number": { + "type": "number" + }, + "suit": { + "enum": [ + "cups", + "wands", + "swords", + "pentacles" + ], + "type": "string" + } + }, + "required": [ + "id", + "name", + "arcana", + "number", + "imageUrl" + ], + "type": "object" + }, + "type": "array" + }, + "limit": { + "type": "number" + }, + "offset": { + "type": "number" + }, + "total": { + "type": "number" + } + }, + "required": [ + "total", + "limit", + "offset", + "cards" + ], + "type": "object" +}
- Changed
get_tarot_cards_id1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "arcana": { + "enum": [ + "major", + "minor" + ], + "type": "string" + }, + "id": { + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "keywords": { + "properties": { + "reversed": { + "items": { + "type": "string" + }, + "type": "array" + }, + "upright": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "upright", + "reversed" + ], + "type": "object" + }, + "name": { + "type": "string" + }, + "number": { + "type": "number" + }, + "reversed": { + "properties": { + "career": { + "type": "string" + }, + "description": { + "type": "string" + }, + "finances": { + "type": "string" + }, + "health": { + "type": "string" + }, + "keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "love": { + "type": "string" + }, + "spirituality": { + "type": "string" + } + }, + "required": [ + "keywords", + "description" + ], + "type": "object" + }, + "suit": { + "enum": [ + "cups", + "wands", + "swords", + "pentacles" + ], + "type": "string" + }, + "upright": { + "properties": { + "career": { + "type": "string" + }, + "description": { + "type": "string" + }, + "finances": { + "type": "string" + }, + "health": { + "type": "string" + }, + "keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "love": { + "type": "string" + }, + "spirituality": { + "type": "string" + } + }, + "required": [ + "keywords", + "description" + ], + "type": "object" + } + }, + "required": [ + "id", + "name", + "arcana", + "number", + "keywords", + "upright", + "reversed", + "imageUrl" + ], + "type": "object" +}
- Changed
post_tarot_daily1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "card": { + "properties": { + "arcana": { + "enum": [ + "major", + "minor" + ], + "type": "string" + }, + "career": { + "type": "string" + }, + "finances": { + "type": "string" + }, + "health": { + "type": "string" + }, + "id": { + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "love": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "name": { + "type": "string" + }, + "number": { + "type": "number" + }, + "position": { + "type": "number" + }, + "reversed": { + "type": "boolean" + }, + "spirituality": { + "type": "string" + }, + "suit": { + "enum": [ + "cups", + "wands", + "swords", + "pentacles" + ], + "type": "string" + } + }, + "required": [ + "id", + "name", + "arcana", + "position", + "reversed", + "keywords", + "meaning", + "imageUrl" + ], + "type": "object" + }, + "dailyMessage": { + "type": "string" + }, + "date": { + "type": "string" + }, + "seed": { + "type": "string" + } + }, + "required": [ + "date", + "seed", + "card", + "dailyMessage" + ], + "type": "object" +}
- Changed
post_tarot_draw1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "cards": { + "items": { + "properties": { + "arcana": { + "enum": [ + "major", + "minor" + ], + "type": "string" + }, + "career": { + "type": "string" + }, + "finances": { + "type": "string" + }, + "health": { + "type": "string" + }, + "id": { + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "love": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "name": { + "type": "string" + }, + "number": { + "type": "number" + }, + "position": { + "type": "number" + }, + "reversed": { + "type": "boolean" + }, + "spirituality": { + "type": "string" + }, + "suit": { + "enum": [ + "cups", + "wands", + "swords", + "pentacles" + ], + "type": "string" + } + }, + "required": [ + "id", + "name", + "arcana", + "position", + "reversed", + "keywords", + "meaning", + "imageUrl" + ], + "type": "object" + }, + "type": "array" + }, + "seed": { + "type": "string" + } + }, + "required": [ + "cards" + ], + "type": "object" +}
- Changed
post_tarot_spreads_career1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "positions": { + "items": { + "properties": { + "card": { + "properties": { + "arcana": { + "enum": [ + "major", + "minor" + ], + "type": "string" + }, + "career": { + "type": "string" + }, + "finances": { + "type": "string" + }, + "health": { + "type": "string" + }, + "id": { + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "love": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "name": { + "type": "string" + }, + "number": { + "type": "number" + }, + "position": { + "type": "number" + }, + "reversed": { + "type": "boolean" + }, + "spirituality": { + "type": "string" + }, + "suit": { + "enum": [ + "cups", + "wands", + "swords", + "pentacles" + ], + "type": "string" + } + }, + "required": [ + "id", + "name", + "arcana", + "position", + "reversed", + "keywords", + "meaning", + "imageUrl" + ], + "type": "object" + }, + "interpretation": { + "type": "string" + }, + "name": { + "type": "string" + }, + "position": { + "type": "number" + } + }, + "required": [ + "position", + "name", + "interpretation", + "card" + ], + "type": "object" + }, + "type": "array" + }, + "question": { + "type": "string" + }, + "seed": { + "type": "string" + }, + "spread": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "spread", + "positions" + ], + "type": "object" +}
- Changed
post_tarot_spreads_celtic_cross1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "positions": { + "items": { + "properties": { + "card": { + "properties": { + "arcana": { + "enum": [ + "major", + "minor" + ], + "type": "string" + }, + "career": { + "type": "string" + }, + "finances": { + "type": "string" + }, + "health": { + "type": "string" + }, + "id": { + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "love": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "name": { + "type": "string" + }, + "number": { + "type": "number" + }, + "position": { + "type": "number" + }, + "reversed": { + "type": "boolean" + }, + "spirituality": { + "type": "string" + }, + "suit": { + "enum": [ + "cups", + "wands", + "swords", + "pentacles" + ], + "type": "string" + } + }, + "required": [ + "id", + "name", + "arcana", + "position", + "reversed", + "keywords", + "meaning", + "imageUrl" + ], + "type": "object" + }, + "interpretation": { + "type": "string" + }, + "name": { + "type": "string" + }, + "position": { + "type": "number" + } + }, + "required": [ + "position", + "name", + "interpretation", + "card" + ], + "type": "object" + }, + "type": "array" + }, + "question": { + "type": "string" + }, + "seed": { + "type": "string" + }, + "spread": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "spread", + "positions" + ], + "type": "object" +}
- Changed
post_tarot_spreads_custom1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "positions": { + "items": { + "properties": { + "card": { + "properties": { + "arcana": { + "enum": [ + "major", + "minor" + ], + "type": "string" + }, + "career": { + "type": "string" + }, + "finances": { + "type": "string" + }, + "health": { + "type": "string" + }, + "id": { + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "love": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "name": { + "type": "string" + }, + "number": { + "type": "number" + }, + "position": { + "type": "number" + }, + "reversed": { + "type": "boolean" + }, + "spirituality": { + "type": "string" + }, + "suit": { + "enum": [ + "cups", + "wands", + "swords", + "pentacles" + ], + "type": "string" + } + }, + "required": [ + "id", + "name", + "arcana", + "position", + "reversed", + "keywords", + "meaning", + "imageUrl" + ], + "type": "object" + }, + "interpretation": { + "type": "string" + }, + "name": { + "type": "string" + }, + "position": { + "type": "number" + } + }, + "required": [ + "position", + "name", + "interpretation", + "card" + ], + "type": "object" + }, + "type": "array" + }, + "question": { + "type": "string" + }, + "seed": { + "type": "string" + }, + "spread": { + "type": "string" + } + }, + "required": [ + "spread", + "positions" + ], + "type": "object" +}
- Changed
post_tarot_spreads_love1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "positions": { + "items": { + "properties": { + "card": { + "properties": { + "arcana": { + "enum": [ + "major", + "minor" + ], + "type": "string" + }, + "career": { + "type": "string" + }, + "finances": { + "type": "string" + }, + "health": { + "type": "string" + }, + "id": { + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "love": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "name": { + "type": "string" + }, + "number": { + "type": "number" + }, + "position": { + "type": "number" + }, + "reversed": { + "type": "boolean" + }, + "spirituality": { + "type": "string" + }, + "suit": { + "enum": [ + "cups", + "wands", + "swords", + "pentacles" + ], + "type": "string" + } + }, + "required": [ + "id", + "name", + "arcana", + "position", + "reversed", + "keywords", + "meaning", + "imageUrl" + ], + "type": "object" + }, + "interpretation": { + "type": "string" + }, + "name": { + "type": "string" + }, + "position": { + "type": "number" + } + }, + "required": [ + "position", + "name", + "interpretation", + "card" + ], + "type": "object" + }, + "type": "array" + }, + "question": { + "type": "string" + }, + "seed": { + "type": "string" + }, + "spread": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "spread", + "positions" + ], + "type": "object" +}
- Changed
post_tarot_spreads_three_card1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "positions": { + "items": { + "properties": { + "card": { + "properties": { + "arcana": { + "enum": [ + "major", + "minor" + ], + "type": "string" + }, + "career": { + "type": "string" + }, + "finances": { + "type": "string" + }, + "health": { + "type": "string" + }, + "id": { + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "love": { + "type": "string" + }, + "meaning": { + "type": "string" + }, + "name": { + "type": "string" + }, + "number": { + "type": "number" + }, + "position": { + "type": "number" + }, + "reversed": { + "type": "boolean" + }, + "spirituality": { + "type": "string" + }, + "suit": { + "enum": [ + "cups", + "wands", + "swords", + "pentacles" + ], + "type": "string" + } + }, + "required": [ + "id", + "name", + "arcana", + "position", + "reversed", + "keywords", + "meaning", + "imageUrl" + ], + "type": "object" + }, + "interpretation": { + "type": "string" + }, + "name": { + "type": "string" + }, + "position": { + "type": "number" + } + }, + "required": [ + "position", + "name", + "interpretation", + "card" + ], + "type": "object" + }, + "type": "array" + }, + "question": { + "type": "string" + }, + "seed": { + "type": "string" + }, + "spread": { + "type": "string" + }, + "summary": { + "type": "string" + } + }, + "required": [ + "spread", + "positions" + ], + "type": "object" +}
- Changed
post_tarot_yes_no1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "answer": { + "enum": [ + "Yes", + "No", + "Maybe" + ], + "type": "string" + }, + "card": { + "properties": { + "arcana": { + "enum": [ + "major", + "minor" + ], + "type": "string" + }, + "id": { + "type": "string" + }, + "imageUrl": { + "type": "string" + }, + "keywords": { + "items": { + "type": "string" + }, + "type": "array" + }, + "name": { + "type": "string" + }, + "reversed": { + "type": "boolean" + } + }, + "required": [ + "id", + "name", + "arcana", + "reversed", + "keywords", + "imageUrl" + ], + "type": "object" + }, + "interpretation": { + "type": "string" + }, + "question": { + "type": "string" + }, + "seed": { + "type": "string" + }, + "strength": { + "enum": [ + "Strong", + "Qualified" + ], + "type": "string" + } + }, + "required": [ + "answer", + "strength", + "card", + "interpretation" + ], + "type": "object" +}
2 tool updates
- Changed
get_tarot_cards1 field changed- changed
Input schema / properties / number / typePrevious value: -[ - "number", - "null" -]New value: +[ + "integer", + "null" +]
- Changed
post_tarot_draw1 field changed- changed
Input schema / properties / count / typePrevious value: -"number"New value: +"integer"
10 tool updates
- Changed
get_tarot_cards2 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English."New value: +"Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English." - changed
Input schema / properties / lang / enumPrevious value: -[ - "en", - "tr", - "de", - "es", - "hi", - "pt", - "fr", - "ru" -]New value: +[ + "en", + "tr", + "de", + "es", + "hi", + "pt", + "fr", + "ru", + "zh-Hans", + "zh-Hant" +]
- Changed
get_tarot_cards_id2 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English."New value: +"Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English." - changed
Input schema / properties / lang / enumPrevious value: -[ - "en", - "tr", - "de", - "es", - "hi", - "pt", - "fr", - "ru" -]New value: +[ + "en", + "tr", + "de", + "es", + "hi", + "pt", + "fr", + "ru", + "zh-Hans", + "zh-Hant" +]
- Changed
post_tarot_daily2 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English."New value: +"Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English." - changed
Input schema / properties / lang / enumPrevious value: -[ - "en", - "tr", - "de", - "es", - "hi", - "pt", - "fr", - "ru" -]New value: +[ + "en", + "tr", + "de", + "es", + "hi", + "pt", + "fr", + "ru", + "zh-Hans", + "zh-Hant" +]
- Changed
post_tarot_draw2 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English."New value: +"Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English." - changed
Input schema / properties / lang / enumPrevious value: -[ - "en", - "tr", - "de", - "es", - "hi", - "pt", - "fr", - "ru" -]New value: +[ + "en", + "tr", + "de", + "es", + "hi", + "pt", + "fr", + "ru", + "zh-Hans", + "zh-Hant" +]
- Changed
post_tarot_spreads_career2 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English."New value: +"Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English." - changed
Input schema / properties / lang / enumPrevious value: -[ - "en", - "tr", - "de", - "es", - "hi", - "pt", - "fr", - "ru" -]New value: +[ + "en", + "tr", + "de", + "es", + "hi", + "pt", + "fr", + "ru", + "zh-Hans", + "zh-Hant" +]
- Changed
post_tarot_spreads_celtic_cross2 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English."New value: +"Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English." - changed
Input schema / properties / lang / enumPrevious value: -[ - "en", - "tr", - "de", - "es", - "hi", - "pt", - "fr", - "ru" -]New value: +[ + "en", + "tr", + "de", + "es", + "hi", + "pt", + "fr", + "ru", + "zh-Hans", + "zh-Hant" +]
- Changed
post_tarot_spreads_custom2 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English."New value: +"Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English." - changed
Input schema / properties / lang / enumPrevious value: -[ - "en", - "tr", - "de", - "es", - "hi", - "pt", - "fr", - "ru" -]New value: +[ + "en", + "tr", + "de", + "es", + "hi", + "pt", + "fr", + "ru", + "zh-Hans", + "zh-Hant" +]
- Changed
post_tarot_spreads_love2 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English."New value: +"Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English." - changed
Input schema / properties / lang / enumPrevious value: -[ - "en", - "tr", - "de", - "es", - "hi", - "pt", - "fr", - "ru" -]New value: +[ + "en", + "tr", + "de", + "es", + "hi", + "pt", + "fr", + "ru", + "zh-Hans", + "zh-Hant" +]
- Changed
post_tarot_spreads_three_card2 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English."New value: +"Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English." - changed
Input schema / properties / lang / enumPrevious value: -[ - "en", - "tr", - "de", - "es", - "hi", - "pt", - "fr", - "ru" -]New value: +[ + "en", + "tr", + "de", + "es", + "hi", + "pt", + "fr", + "ru", + "zh-Hans", + "zh-Hant" +]
- Changed
post_tarot_yes_no2 fields changed- changed
Input schema / properties / lang / descriptionPrevious value: -"Response language (ISO 639-1). Supported: en, tr, de, es, hi, pt, fr, ru. Defaults to en. Languages without translations yet return English."New value: +"Response language (BCP 47). Supported: en, tr, de, es, hi, pt, fr, ru, zh-Hans, zh-Hant. Defaults to en. Coverage varies by domain, and a field with no translation in the requested language returns English." - changed
Input schema / properties / lang / enumPrevious value: -[ - "en", - "tr", - "de", - "es", - "hi", - "pt", - "fr", - "ru" -]New value: +[ + "en", + "tr", + "de", + "es", + "hi", + "pt", + "fr", + "ru", + "zh-Hans", + "zh-Hant" +]
1 tool update
- Changed
get_tarot_cards_id1 field changed- changed
Input schema / properties / id / descriptionPrevious value: -"Unique card identifier in kebab-case. Major arcana: \"fool\", \"magician\", \"death\", etc. Minor arcana: \"ace-of-cups\", \"seven-of-wands\", \"queen-of-swords\", \"king-of-pentacles\", etc."New value: +"Card identifier. Major arcana: \"fool\", \"magician\", \"death\". Minor arcana: \"ace-of-cups\", \"seven-of-wands\", \"queen-of-swords\", \"king-of-pentacles\". Casing and separators are flexible, so \"Fool\" and \"ACE_OF_CUPS\" both resolve, and a leading definite article is optional, so \"the-star\" resolves to \"star\". The canonical form, and the one every response echoes, is kebab-case with no article."
10 tool updates
- Changed
get_tarot_cards2 fields changed- added
Input schema / examplesAdded value: +[ + {} +] - changed
Input schema / properties / compact / descriptionPrevious value: -"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."New value: +"Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {\"__cols\":[names],\"__rows\":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens."
- Changed
get_tarot_cards_id2 fields changed- added
Input schema / examplesAdded value: +[ + { + "id": "fool" + } +] - changed
Input schema / properties / compact / descriptionPrevious value: -"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."New value: +"Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {\"__cols\":[names],\"__rows\":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens."
- Changed
post_tarot_daily2 fields changed- added
Input schema / examplesAdded value: +[ + {} +] - changed
Input schema / properties / compact / descriptionPrevious value: -"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."New value: +"Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {\"__cols\":[names],\"__rows\":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens."
- Changed
post_tarot_draw2 fields changed- added
Input schema / examplesAdded value: +[ + { + "count": 3 + } +] - changed
Input schema / properties / compact / descriptionPrevious value: -"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."New value: +"Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {\"__cols\":[names],\"__rows\":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens."
- Changed
post_tarot_spreads_career2 fields changed- added
Input schema / examplesAdded value: +[ + {} +] - changed
Input schema / properties / compact / descriptionPrevious value: -"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."New value: +"Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {\"__cols\":[names],\"__rows\":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens."
- Changed
post_tarot_spreads_celtic_cross2 fields changed- added
Input schema / examplesAdded value: +[ + {} +] - changed
Input schema / properties / compact / descriptionPrevious value: -"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."New value: +"Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {\"__cols\":[names],\"__rows\":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens."
- Changed
post_tarot_spreads_custom2 fields changed- added
Input schema / examplesAdded value: +[ + { + "positions": [ + { + "interpretation": "What is really going on", + "name": "Core Issue" + }, + { + "interpretation": "What you cannot see", + "name": "Hidden Factor" + }, + { + "interpretation": "What to do next", + "name": "Best Action" + } + ] + } +] - changed
Input schema / properties / compact / descriptionPrevious value: -"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."New value: +"Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {\"__cols\":[names],\"__rows\":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens."
- Changed
post_tarot_spreads_love2 fields changed- added
Input schema / examplesAdded value: +[ + {} +] - changed
Input schema / properties / compact / descriptionPrevious value: -"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."New value: +"Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {\"__cols\":[names],\"__rows\":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens."
- Changed
post_tarot_spreads_three_card2 fields changed- added
Input schema / examplesAdded value: +[ + {} +] - changed
Input schema / properties / compact / descriptionPrevious value: -"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."New value: +"Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {\"__cols\":[names],\"__rows\":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens."
- Changed
post_tarot_yes_no2 fields changed- added
Input schema / examplesAdded value: +[ + {} +] - changed
Input schema / properties / compact / descriptionPrevious value: -"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."New value: +"Set true for the same data in a compact shape: arrays of same-shaped objects arrive columnar as {\"__cols\":[names],\"__rows\":[[values]]}. Lossless, typically 40 to 52 percent fewer tokens."
1 tool update
- Changed
post_tarot_spreads_career2 fields changed- changed
Input schema / properties / question / descriptionPrevious value: -"Optional querent question to focus the career spread. It is echoed back on the reading and gives the five career positions their context. Omit for general work and vocation guidance."New value: +"Optional querent question to focus the career spread. It is echoed back on the reading and gives the seven career positions their context. Omit for general work and vocation guidance." - changed
Input schema / properties / seed / descriptionPrevious value: -"Optional seed for reproducible results. The same seed always draws the same five cards into the same career positions, which is what lets a reading be shared or re-rendered. Omit for a random draw."New value: +"Optional seed for reproducible results. The same seed always draws the same seven cards into the same career positions, which is what lets a reading be shared or re-rendered. Omit for a random draw."
1 tool update
- Changed
get_tarot_cards2 fields changed- changed
Input schema / properties / number / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Input schema / properties / offset / typePrevious value: -"integer"New value: +[ + "integer", + "null" +]
6 tool updates
- Changed
post_tarot_spreads_career3 fields changed- added
Input schema / properties / question / descriptionAdded value: +"Optional querent question to focus the career spread. It is echoed back on the reading and gives the five career positions their context. Omit for general work and vocation guidance." - added
Input schema / properties / seed / descriptionAdded value: +"Optional seed for reproducible results. The same seed always draws the same five cards into the same career positions, which is what lets a reading be shared or re-rendered. Omit for a random draw." - changed
Input schema / properties / seed / examplePrevious value: -"optional-seed"New value: +"reading-2f9c1a"
- Changed
post_tarot_spreads_celtic_cross3 fields changed- added
Input schema / properties / question / descriptionAdded value: +"Optional querent question to focus the Celtic Cross. It is echoed back on the reading and gives the ten positions their context. Omit for a general reading of the situation." - added
Input schema / properties / seed / descriptionAdded value: +"Optional seed for reproducible results. The same seed always draws the same ten cards into the same Celtic Cross positions, which is what lets a reading be shared or re-rendered. Omit for a random draw." - changed
Input schema / properties / seed / examplePrevious value: -"optional-seed"New value: +"reading-2f9c1a"
- Changed
post_tarot_spreads_custom2 fields changed- changed
Input schema / properties / question / examplePrevious value: -"Optional question"New value: +"How do I move forward with this project?" - changed
Input schema / properties / seed / examplePrevious value: -"optional-seed"New value: +"reading-2f9c1a"
- Changed
post_tarot_spreads_love3 fields changed- added
Input schema / properties / question / descriptionAdded value: +"Optional querent question to focus the love spread. It is echoed back on the reading and gives the five relationship positions their context. Omit for general relationship guidance." - added
Input schema / properties / seed / descriptionAdded value: +"Optional seed for reproducible results. The same seed always draws the same five cards into the same love positions, which is what lets a reading be shared or re-rendered. Omit for a random draw." - changed
Input schema / properties / seed / examplePrevious value: -"optional-seed"New value: +"reading-2f9c1a"
- Changed
post_tarot_spreads_three_card1 field changed- changed
Input schema / properties / seed / examplePrevious value: -"optional-seed"New value: +"reading-2f9c1a"
- Changed
post_tarot_yes_no1 field changed- changed
Input schema / properties / seed / examplePrevious value: -"optional-seed"New value: +"reading-2f9c1a"
10 tool updates
- Changed
get_tarot_cards1 field changed- changed
Input schema / properties / compact / descriptionPrevious value: -"Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false."New value: +"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."
- Changed
get_tarot_cards_id1 field changed- changed
Input schema / properties / compact / descriptionPrevious value: -"Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false."New value: +"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."
- Changed
post_tarot_daily1 field changed- changed
Input schema / properties / compact / descriptionPrevious value: -"Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false."New value: +"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."
- Changed
post_tarot_draw1 field changed- changed
Input schema / properties / compact / descriptionPrevious value: -"Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false."New value: +"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."
- Changed
post_tarot_spreads_career1 field changed- changed
Input schema / properties / compact / descriptionPrevious value: -"Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false."New value: +"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."
- Changed
post_tarot_spreads_celtic_cross1 field changed- changed
Input schema / properties / compact / descriptionPrevious value: -"Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false."New value: +"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."
- Changed
post_tarot_spreads_custom1 field changed- changed
Input schema / properties / compact / descriptionPrevious value: -"Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false."New value: +"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."
- Changed
post_tarot_spreads_love1 field changed- changed
Input schema / properties / compact / descriptionPrevious value: -"Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false."New value: +"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."
- Changed
post_tarot_spreads_three_card1 field changed- changed
Input schema / properties / compact / descriptionPrevious value: -"Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false."New value: +"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."
- Changed
post_tarot_yes_no1 field changed- changed
Input schema / properties / compact / descriptionPrevious value: -"Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false."New value: +"Set true to receive the exact same data in a token-optimized shape that is cheaper for you to read: whitespace is stripped and every array of same-shaped objects is encoded columnar as {\"__cols\":[field names],\"__rows\":[[values]]}, so each field name is sent once instead of once per row. Fully lossless (no field or value is dropped or changed) and typically 40 to 52 percent fewer tokens on large results. Prefer true whenever token or inference cost matters. Default false returns standard indented JSON."
10 tool updates
- Changed
get_tarot_cards1 field changed- added
Input schema / properties / compactAdded value: +{ + "default": false, + "description": "Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false.", + "type": "boolean" +}
- Changed
get_tarot_cards_id1 field changed- added
Input schema / properties / compactAdded value: +{ + "default": false, + "description": "Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false.", + "type": "boolean" +}
- Changed
post_tarot_daily1 field changed- added
Input schema / properties / compactAdded value: +{ + "default": false, + "description": "Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false.", + "type": "boolean" +}
- Changed
post_tarot_draw1 field changed- added
Input schema / properties / compactAdded value: +{ + "default": false, + "description": "Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false.", + "type": "boolean" +}
- Changed
post_tarot_spreads_career1 field changed- added
Input schema / properties / compactAdded value: +{ + "default": false, + "description": "Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false.", + "type": "boolean" +}
- Changed
post_tarot_spreads_celtic_cross1 field changed- added
Input schema / properties / compactAdded value: +{ + "default": false, + "description": "Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false.", + "type": "boolean" +}
- Changed
post_tarot_spreads_custom1 field changed- added
Input schema / properties / compactAdded value: +{ + "default": false, + "description": "Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false.", + "type": "boolean" +}
- Changed
post_tarot_spreads_love1 field changed- added
Input schema / properties / compactAdded value: +{ + "default": false, + "description": "Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false.", + "type": "boolean" +}
- Changed
post_tarot_spreads_three_card1 field changed- added
Input schema / properties / compactAdded value: +{ + "default": false, + "description": "Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false.", + "type": "boolean" +}
- Changed
post_tarot_yes_no1 field changed- added
Input schema / properties / compactAdded value: +{ + "default": false, + "description": "Return the same data in a token-optimized compact shape (minified, with same-shaped arrays encoded columnar) to reduce LLM token cost. Lossless: no fields are dropped. Default false.", + "type": "boolean" +}
10 tool updates
- First observed
get_tarot_cards - First observed
get_tarot_cards_id - First observed
post_tarot_daily - First observed
post_tarot_draw - First observed
post_tarot_spreads_career - First observed
post_tarot_spreads_celtic_cross - First observed
post_tarot_spreads_custom - First observed
post_tarot_spreads_love - First observed
post_tarot_spreads_three_card - First observed
post_tarot_yes_no
Related MCP Connectors
Vedic and Western astrology for AI agents: charts, dasha, matchmaking, panchanga, numerology, tarot.
Free tarot for Claude & your AI — many decks, real card art, a true shuffle, drawn & discussed.
Dream symbol interpretation and dream-dictionary lookups for AI agents, one API key.
Related MCP Servers
- AlicenseAqualityBmaintenanceProvides professional-grade Rider-Waite tarot readings and 11 specialized spreads through a comprehensive interpretation engine featuring elemental and context-aware analysis. It enables users to perform cryptographically secure card draws, create custom spreads, and explore detailed card symbolism via MCP or HTTP protocols.1416 npm15MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to look up tarot card meanings, search cards by keyword, draw random cards, and get yes/no answers for all 78 Rider-Waite-Smith cards with upright and reversed interpretations.5265 npm2MIT
- FlicenseNot gradedqualityDmaintenanceProvides free tarot card readings for AI assistants with real deck shuffles, multiple decks, and spreads, enabling reflective practice rather than fortune-telling.-
- AlicenseNot gradedqualityDmaintenanceProvides tarot reading capabilities including drawing spreads, looking up card interpretations, listing cards, and retrieving reading history for LLM integration.12 npmISC
Glama MCP Gateway
Add one secure layer between your agents and this server.