Skip to main content
Glama
gokimedia

tarot-mcp-server

Tarot MCP Server

npm MCP Smithery LobeHub License: MIT

A Model Context Protocol server that exposes the complete 78-card tarot deck — meanings, spreads, and readings — to any MCP-compatible client (Claude Desktop, Cursor, Windsurf, Cline, Zed, and more).

Powered by Deckaura — all card interpretations link back to full guides on deckaura.com.

Features

  • get_card_meaning — Upright, reversed, love, career, yes/no interpretations for any of the 78 cards

  • draw_random_card — Single card draw with optional reversals

  • three_card_spread — Past / Present / Future reading

  • yes_no_reading — Binary verdict for specific questions

  • list_all_cards — Full deck listing

  • Resources: tarot://deck/full (full JSON dataset), tarot://deckaura/home

Related MCP server: Tarot MCP Server

Install

npm install -g @deckaura/tarot-mcp-server

Or run ad-hoc via npx:

npx @deckaura/tarot-mcp-server

Desktop extension bundle (MCPB)

Build a self-contained MCPB bundle for compatible desktop clients and stdio registries such as Smithery:

npm ci
npm run pack:mcpb

The command validates the MCPB manifest, bundles the Node.js server and its 78-card dataset, and writes build/deckaura-tarot-mcp-server-1.0.1.mcpb. Release bundles are also available from GitHub Releases.

Configure — Claude Desktop

Add to claude_desktop_config.json:

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

Configure — Cursor / Windsurf

Add to .cursor/mcp.json or ~/.codeium/windsurf/mcp_config.json:

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

Example Usage

Once configured, ask your AI assistant:

  • "Draw me a three-card tarot spread about my new project"

  • "What does The Fool mean reversed?"

  • "Yes or no: should I take the job?"

Data Source

All card meanings are sourced from the Deckaura tarot card database, maintained by tarot practitioners since 2024. Each tool response includes a link to the full guide on deckaura.com.

Free Online Tools

If you prefer a web-based experience, Deckaura offers free tools:

License

MIT © Deckaura

Available Tools

5 tools
draw_random_cardA

Draw a single random tarot card from the 78-card deck.

ParametersJSON Schema
NameRequiredDescriptionDefault
reversed_allowedNoWhether the card can appear reversed (default true)

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden; it does disclose the randomized nature and single-card scope. It does not, however, describe the output shape or mention that reversed_allowed controls whether the drawn card may be reversed, which is relevant behavioral context.

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 one succinct sentence that front-loads the essential action and scope. Every word earns its place; there is no fluff or repetition.

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

Completeness3/5

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

For a simple one-parameter tool, the description covers the core action, but with no output schema and no annotations it leaves out what the function returns and how the single draw relates to the sibling reading tools. The missing return-value context makes it adequate but not fully self-sufficient.

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% because the single parameter already has a complete description ('Whether the card can appear reversed (default true)'). The tool description adds no new parameter meaning, so the baseline of 3 applies.

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 names a specific verb ('draw'), a specific resource ('a single random tarot card'), and the scope ('from the 78-card deck'). This clearly distinguishes it from siblings like three_card_spread (multiple cards) and list_all_cards (non-random listing).

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

Usage Guidelines3/5

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

The description implies the use case: when exactly one random tarot card is needed. However, it does not explicitly state when to avoid this tool or mention alternatives such as three_card_spread or yes_no_reading.

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

get_card_meaningA

Get upright, reversed, love, and career meanings for a specific tarot card. Data from Deckaura (deckaura.com).

ParametersJSON Schema
NameRequiredDescriptionDefault
card_nameYesName of the tarot card (e.g., 'The Fool', 'Ace of Cups')

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden. It mentions the data source (Deckaura) and the output content, but does not disclose whether the call is read-only, how invalid or unknown card names are handled, or what response shape to expect.

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 short sentences with the core behavior front-loaded and the source attribution in a separate sentence. Every word earns its place.

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

Completeness3/5

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

For a simple one-parameter lookup, it covers the main input and output categories, but with no output schema and no annotations it leaves the exact response format and card-name matching behavior unspecified.

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 documents card_name at 100% coverage with examples, so the description does not need to add much. It adds no meaning 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 uses a specific verb ('Get') and resource ('meanings for a specific tarot card'), and enumerates the exact meaning categories (upright, reversed, love, career). This clearly separates it from siblings like draw_random_card, three_card_spread, and list_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?

It conveys the intended use case: retrieving meanings for a named/known card. It does not explicitly state when not to use it or name alternatives, but the 'specific card' scope and sibling names make the selection context clear.

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

list_all_cardsA

List all 78 tarot cards with basic info (name, arcana, suit).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden and it does reasonably well: 'List' signals a read-only operation and the enumerated return content tells the agent exactly what to expect. It does not discuss safety traits explicitly, but for a zero-parameter list call there is little hidden 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?

One sentence delivers the scope and output fields without filler. The key information is front-loaded: list all cards, then the basic info contents.

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 parameterless list endpoint with no output schema, the description is complete: it names the full scope (78 cards) and the exact fields returned. Sibling names further clarify its catalog role.

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?

There are zero parameters, so the baseline is 4 and no parameter explanation is needed. The description correctly omits parameter details because none exist.

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 uses a specific verb ('List'), a precise resource ('all 78 tarot cards'), and states the returned fields (name, arcana, suit). This makes it clearly distinct from siblings like get_card_meaning or draw_random_card.

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

Usage Guidelines3/5

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

Usage context is implied rather than stated: this is the catalog-level tool while siblings serve individual lookups, draws, and readings. It does not explicitly say when to choose this tool over the alternatives or provide negative guidance.

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

three_card_spreadA

Draw a past-present-future three-card tarot spread. Returns interpretations for each position.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionNoThe question to focus the reading on

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It discloses that the tool returns interpretations per position, which is useful, but it does not explain the draw mechanism (e.g., randomness, deck source) or mention potential limitations. For a simple read-only divination tool, the disclosure is adequate but minimal.

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 concise sentences with no waste. The core action is front-loaded, and each sentence adds essential information: what the tool draws and what it returns.

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?

The tool is simple: one optional parameter, no enums, no output schema. The description covers the essential return behavior ('interpretations for each position') and is sufficient for an agent to understand the tool's purpose. It does not detail the exact response shape, but for a single-purpose tarot spread this is a minor gap.

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%: the sole parameter 'question' already has a clear description in the schema. The tool description adds no extra parameter details, so the baseline of 3 applies 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.

Purpose5/5

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

The description uses a specific verb ('Draw'), a specific resource ('past-present-future three-card tarot spread'), and states the outcome ('Returns interpretations for each position'). This clearly differentiates it from siblings like draw_random_card, which lacks the three-position structure, and yes_no_reading, which provides a binary answer.

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 clearly implies the intended use case: a structured three-card reading with temporal positions. It provides clear context for when to choose this tool, though it does not explicitly name alternatives or exclusionary conditions, leaving a small gap in routing guidance.

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

yes_no_readingA

Draw a single card for a yes/no question and return the verdict.

ParametersJSON Schema
NameRequiredDescriptionDefault
questionYes

TDQS

A3.9/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full behavioral burden. It discloses that the tool draws one card and produces a verdict, but it does not explain how the verdict is derived (e.g., card orientation, suit), whether the draw is non-destructive, or what the return payload looks like. Core behavior is conveyed, but meaningful behavioral detail is missing.

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?

A single 15-word sentence that front-loads the action ('Draw a single card') and the outcome ('return the verdict'). Every word earns its place; no filler or redundancy.

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

Completeness3/5

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

The tool is simple (one parameter, no nested objects), but with no output schema and no annotations, the description should specify what the verdict looks like rather than leaving it to inference. The behavioral overlap with draw_random_card is also unresolved. Adequate for a minimal tool, but with identifiable gaps.

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 description coverage is 0%, so the description must compensate. It does: 'a yes/no question' clarifies that the question parameter should be a binary-answerable question, which the schema alone (plain required string, no description) does not convey.

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 states a specific verb ('draw'), a specific resource ('a single card'), and a clear purpose ('for a yes/no question and return the verdict'). It distinguishes itself from siblings: three_card_spread draws multiple cards, get_card_meaning returns card meanings, and draw_random_card lacks the yes/no verdict semantics.

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

Usage Guidelines3/5

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

The intended use context — when the user has a yes/no question — is implied by the description, but there is no explicit when-to-use guidance, exclusion criteria, or naming of alternatives such as draw_random_card or three_card_spread. An agent must infer when this tool is preferred over its 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.

  1. 5 tool updatesv1.0.1
    • First observeddraw_random_card
    • First observedget_card_meaning
    • First observedlist_all_cards
    • First observedthree_card_spread
    • First observedyes_no_reading

TDQS

A4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: listing cards, looking up meanings, drawing a random card, running a three-card spread, and answering yes/no questions. The overlap between draw_random_card and yes_no_reading is minimal because their outputs and intents are clearly different.

Naming Consistency4/5

Most names follow a clear verb_noun snake_case pattern like get_card_meaning and draw_random_card. three_card_spread and yes_no_reading are noun phrases rather than verb-led names, but the naming style is still readable and consistent in casing.

Tool Count5/5

Five tools is a well-scoped size for a tarot MCP server. Each tool covers a distinct core need without redundancy or unnecessary bloat.

Completeness4/5

The set covers the essential tarot workflows: exploring the deck, looking up card meanings, drawing a single card, performing a common spread, and getting a yes/no verdict. Minor gaps exist such as more complex spread types or a dedicated multi-card draw, but the core domain is well covered.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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
    9 npm
    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
    10 npm
    15
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that draws tarot cards from the 78-card deck and interprets them for your situation, using StupidAPIs with an X-API-Key required.
    14 npm
    MIT