Skip to main content
Glama
Tarotoo-com

Tarotoo Tarot MCP Server

Official
by Tarotoo-com

Tarotoo Tarot MCP Server

npm CI MCP Registry Node License: MIT DOI

A Model Context Protocol server that gives AI assistants — Claude, ChatGPT, Cursor, and any other MCP client — live access to the Tarotoo tarot card meanings dataset: all 78 cards in the Rider–Waite–Smith tradition, with upright and reversed meanings and keywords, upright and reversed love, career, mood and spiritual contexts, planet and zodiac associations, and upright and reversed yes/no values.

Published by Tarotoo: these are the same card meanings that ground the AI readings on Tarotoo.com.

Quick start

Requires Node.js ≥ 18. No installation needed — clients run it via npx.

Claude Code

claude mcp add tarotoo-tarot -- npx -y tarotoo-mcp-server

Claude Desktop — add to claude_desktop_config.json (Settings → Developer → Edit Config):

{
  "mcpServers": {
    "tarotoo-tarot": {
      "command": "npx",
      "args": ["-y", "tarotoo-mcp-server"]
    }
  }
}

Cursor / Windsurf / other MCP clients — same command/args pair in the client's MCP settings.

MCP registry — listed as io.github.Tarotoo-com/tarotoo-mcp-server, so registry-aware clients can discover and install it directly.

Then ask your assistant things like "what does the Three of Swords mean for my career?" or "draw three cards for me" — it will call the tools below.

Related MCP server: Tarot MCP Server

Tools

Tool

Arguments

Returns

get_card_meaning

name (string)

Full record for one card — meanings, keywords, love/career/mood/spiritual (upright and reversed), planet, zodiac, yes/no. Name matching is forgiving ("fool" → The Fool)

list_cards

arcana? (major/minor), suit? (wands/cups/swords/pentacles)

Card names, optionally filtered

search_cards

query (string), limit? (1–78, default 10)

Cards matching a theme or keyword, best match first — e.g. "heartbreak" → Three of Swords

yes_no_answer

name (string)

The card's yes/no/maybe value with its upright meaning as justification

draw_cards

count? (1–10, default 1), allow_reversed? (boolean)

Random distinct cards with orientation-appropriate meanings — for generating spreads

Example

tools/call get_card_meaning {"name": "the star"}
{
  "name": "The Star",
  "arcana": "major",
  "element": "Air",
  "planet": "Saturn",
  "zodiac": "Aquarius",
  "yes_no": "yes",
  "yes_no_reversed": "no",
  "keywords_upright": ["hope", "renewal", "healing", "inspiration", "faith"],
  "meaning_upright": "Hope, renewal, healing, inspiration, faith.",
  "love": "hope in love, emotional healing, renewed trust, an inspiring connection",
  "love_reversed": "lost faith, discouragement, disconnection, dimmed hope"
}

Each card carries both upright and reversed values for keywords, meaning, love, career, mood, spiritual, and yes/no. The example above is abbreviated.

Run from source

git clone https://github.com/Tarotoo-com/tarotoo-mcp-server.git
cd tarotoo-mcp-server
npm install
npm test        # 8-check smoke test: full MCP session over stdio
node server.js  # stdio transport

Dataset

The embedded data/cards.json is built from tarotoo-tarot-dataset (MIT), which is also available on Hugging Face, Kaggle, npm, and PyPI, with citable DOIs: 10.5281/zenodo.21285777 (dataset + dataset paper; concept DOI, always latest) and 10.5281/zenodo.21268290 (full repository/archive: dataset, source files, build scripts, automated validation, software packages, documentation; concept DOI, always latest).

Interpretations were created by Tarotoo within the Rider–Waite–Smith tradition, drawing on established sources (A. E. Waite's The Pictorial Key to the Tarot, 1911; attributions per the Golden Dawn's Book T).

License

Code and dataset: MIT. Attribution to Tarotoo (tarotoo.com) is appreciated.

Intended Use

This dataset is intended for educational, research, creative, entertainment, and self-reflection purposes. It should not be used as a substitute for medical, legal, financial, mental-health, or other professional advice.

Available Tools

5 tools
draw_cardsDraw cardsA

Randomly draw one or more distinct tarot cards from the full 78-card deck, optionally with reversals, returning each card's full meaning. Use for generating a reading spread.

ParametersJSON Schema
NameRequiredDescriptionDefault
countNoNumber of cards to draw (default 1)
allow_reversedNoWhether cards may be drawn reversed (default false)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It discloses key traits: 'distinct' cards (no repeats), 'optionally with reversals', and 'returning each card's full meaning'. It does not detail randomization mechanics, but for a simple draw tool it covers essential behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main verb and resource, and every sentence contributes value. The second sentence provides usage guidance without redundancy. This is appropriately concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two parameters and no annotations, the description covers purpose, usage, and return behavior. It mentions 'returning each card's full meaning' which indicates output content, and the 'reading spread' context clarifies typical use. Though no output schema exists, the description is adequate for this small tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (both parameters have descriptions), so the baseline is 3. The description adds value by clarifying that cards are 'distinct' (without replacement), which supplements the count parameter description, and 'optionally with reversals' maps directly to allow_reversed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool randomly draws one or more distinct tarot cards from the full 78-card deck, optionally with reversals, and returns each card's full meaning. This specific verb+resource combination distinguishes it from siblings like get_card_meaning (specific card lookup) and list_cards (listing all cards).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly provides a usage context: 'Use for generating a reading spread.' This tells the agent when to invoke the tool, though it does not explicitly mention alternatives or exclusions. The purpose clarity already differentiates from siblings, so the guidance is sufficient albeit not exhaustive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_card_meaningGet card meaningA

Get the full meaning of a single tarot card from the Tarotoo dataset (Rider-Waite-Smith tradition): upright and reversed meanings and keywords, upright and reversed love, career, mood, and spiritual contexts, element, astrology, and upright and reversed yes/no values. Call this when you need the meaning of a specific card by name.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCard name, e.g. "The Fool" or "Ace of Cups"

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It reveals the content of the response and the data source (Rider-Waite-Smith), but does not address edge cases like unknown card names, case sensitivity, or error handling. No contradictions with annotations exist since none are provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the action and resource, and lists the contents efficiently. Every sentence adds value with no repetitions or fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema and annotations, the description lists the major return fields and provides guidance on invocation, making it quite complete for a simple lookup. It misses only minor details about unknown names or formatting, so not a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already fully documents the single 'name' parameter with an example. The description adds only 'by name' which reinforces but does not meaningfully extend beyond the schema. With 100% schema coverage, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves the full meaning of a single tarot card, listing specific fields (upright/reversed meanings, contexts, etc.). The phrase 'a single tarot card' and 'by name' distinguishes it from sibling tools like list_cards, search_cards, and draw_cards.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Call this when you need the meaning of a specific card by name,' providing clear usage context. However, it does not provide exclusions or name alternative tools, so it falls 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.

list_cardsList cardsA

List tarot card names in the dataset, optionally filtered by arcana (major/minor) or suit (wands/cups/swords/pentacles). Call this to discover valid card names.

ParametersJSON Schema
NameRequiredDescriptionDefault
suitNoFilter by suit (minor arcana only)
arcanaNoFilter by arcana

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full transparency burden. It describes the listing and filtering behavior, but does not disclose response format, ordering, or any side effects. This is minimally adequate for a simple read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the main action, and no redundant phrasing. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with fully described parameters, the description covers purpose and use case. It could explicitly mention the return format (e.g., an array of names), but the description is otherwise complete for its complexity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with enumerations and descriptions for both parameters. The description only restates the filter options without adding additional meaning 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists tarot card names from the dataset, with optional filters by arcana or suit. The phrase 'Call this to discover valid card names' further clarifies its distinct role among sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Call this to discover valid card names', giving a clear when-to-use instruction. It does not list exclusions or alternatives, but the context is sufficient for a listing tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_cardsSearch cardsA

Search all 78 tarot cards by theme, keyword, or topic (e.g. "new beginnings", "heartbreak", "career success"). Searches names, keywords, and meaning texts. Returns matching cards with their keywords. Call this when you have a theme rather than a card name.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results (default 10)
queryYesSearch term or theme

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description takes on the burden of explaining behavior. It states the search scope (names, keywords, meaning texts) and what is returned (matching cards with their keywords), adding clarity beyond 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core purpose and an example. Every sentence adds value, with no filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple search tool with no output schema, the description adequately explains what is searched and what is returned. It is complete enough for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters are already well-documented. The description adds example queries and search scope but doesn't introduce new parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: search all 78 tarot cards by theme or keyword. It provides concrete examples and distinguishes the tool from sibling tools by specifying search by theme rather than card name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit guidance to use when a theme is available rather than a card name, implying get_card_meaning is for name-based lookups. It doesn't name alternatives explicitly but provides clear context for when to call this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

yes_no_answerYes/no answerA

Get the yes/no/maybe value of a tarot card for yes-or-no readings, with the upright meaning as justification. Covers all 78 cards.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesCard name

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses the output (yes/no/maybe value and upright meaning), and states coverage of all 78 cards. It does not mention error handling or input variations, but for a simple read-only lookup this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary purpose, and contains no filler. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and no output schema, the description fully explains what it returns (value and justification) and its scope (all 78 cards). No additional context is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the single parameter 'name' as 'Card name' with 100% coverage. The description adds that it refers to a tarot card and covers all 78 cards, but does not specify formatting or exact name matching. This is sufficient given the schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a yes/no/maybe value for a tarot card, specifically for yes-or-no readings, and includes upright meaning as justification. This is a specific verb+resource+scope and clearly distinguishes it from sibling tools like get_card_meaning, list_cards, and draw_cards.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: this is for yes-or-no readings, implying it should be used when a binary or tri-state answer is needed. It does not explicitly name alternatives or exclusions, but the purpose is clear enough to guide selection among siblings.

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. Dates show when Glama detected each change.

  1. 5 tool updatesv2.0.0
    • First observeddraw_cards
    • First observedget_card_meaning
    • First observedlist_cards
    • First observedsearch_cards
    • First observedyes_no_answer

TDQS

A4.3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: listing, searching, getting a single card's full meaning, getting a yes/no answer, and drawing random cards. Even the overlap between get_card_meaning and yes_no_answer is justified by different use cases.

Naming Consistency4/5

Tool names follow a consistent snake_case style with a verb-noun pattern (list_cards, search_cards, get_card_meaning, draw_cards), though yes_no_answer deviates slightly as a noun phrase rather than verb_noun.

Tool Count5/5

Five tools is well-scoped for a tarot server, covering discovery, lookup, and reading generation without unnecessary redundancy or bloat.

Completeness5/5

The set covers the full tarot domain: listing all cards, searching by theme, retrieving detailed meanings, yes/no readings, and random draws. No obvious missing operations for the provided functionality.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Provides tarot card reading capabilities with a complete 78-card deck, multiple spread layouts (Celtic Cross, Past-Present-Future, etc.), and detailed card interpretations for divination and daily guidance.
    9
    19
    5
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Provides 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.
    14
    26
    15
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Provides tarot card meanings, spreads (three-card, yes/no), and random draws for any MCP-compatible client.
    19
    2
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Tarotoo-com/tarotoo-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server