Arkana tarot
Server Details
Fairly shuffled Rider–Waite–Smith tarot draws, spreads and card meanings (English, Lithuanian).
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool has a clear purpose: draw_cards deals a spread, draw_clarifier draws additional cards excluding those already drawn, get_card is a static lookup, and list_spreads describes spread layouts. The only mild overlap is between the two draw tools, but the exclude semantics and clarifier framing make the boundary clear.
All four tools follow a consistent snake_case verb_noun pattern (draw_cards, draw_clarifier, get_card, list_spreads) with no style mixing or vague verbs.
Four tools is well-scoped for a tarot reading server: deck lookup, spread discovery, the primary draw, and the clarifier follow-up each earn their place with no redundancy.
The core lifecycle is covered: discover spreads, draw a reading, extend it with clarifiers, and look up individual card meanings. Minor gaps exist, such as no way to list or browse the full deck or save/retrieve past readings, but these are workarounds an agent can live without.
Available Tools
4 toolsdraw_cardsDraw tarot cardsBRead-onlyInspect
Shuffles a 78-card Rider–Waite–Smith deck with a cryptographic random generator and deals a spread. Returns each position with the card, its orientation, the meaning for that orientation and a link that shows the spread with card pictures.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language of names and meanings. Default lt. | |
| count | No | Number of cards for spread=custom when positions are not given. | |
| spread | No | Spread id. Default ppf (past, present, future). custom takes positions or count. | |
| question | No | The user's question, stored in the share link. | |
| positions | No | For spread=custom: one position or question per card. | |
| reversals | No | Allow reversed cards. Default true. | |
| majors_only | No | Use only the 22 Major Arcana. Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, and idempotentHint=false; the description usefully reinforces the non-idempotency by naming a cryptographic random generator, which explains why repeated calls differ. It also discloses the return shape, which annotations cannot convey. It adds nothing further about rate limits, storage of the question in the share link, or failure modes, so it earns a solid but not exceptional mark.
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?
Two sentences, front-loaded with the action and randomness, followed by the return contract. Nearly every clause carries information; the trailing phrasing about a link showing the spread with card pictures is slightly verbose but still substantive.
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?
With no output schema, the description takes on the job of describing return values and does so adequately, and all seven parameters are covered by the schema. For a read-only, zero-required-parameter tool this is nearly complete; only the missing sibling routing (notably list_spreads for spread ids) leaves a small 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 description coverage is 100%, so every parameter including defaults and enums is already documented in the schema, which sets the baseline at 3. The description adds the deck size of 78, indirectly giving context for majors_only (22 Major Arcana), but does not explain spread identifiers, custom positions, or language behavior. Net value beyond the schema is modest.
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 concrete verb and resource: shuffles a 78-card Rider–Waite–Smith deck and deals a spread, then enumerates what comes back (card, orientation, meaning, image link). That is far more specific than a name restatement. It does not explicitly contrast itself with siblings like get_card (single card) or draw_clarifier, so sibling differentiation is left implicit.
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 explains what the tool does but never says when to pick it over draw_clarifier, get_card, or list_spreads, nor when a spread should be avoided. An agent must infer the routing decision from the purpose sentence alone. No prerequisites or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
draw_clarifierDraw a clarifying cardARead-onlyInspect
Draws one or more clarifying cards from the rest of the deck, leaving out the cards given in exclude.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language of names and meanings. Default lt. | |
| count | No | Default 1. | |
| exclude | No | Ids of cards already drawn; these are left out of the deck. | |
| reversals | No | Default true. | |
| majors_only | No | Default false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=false and openWorldHint=false, so safety is covered. The description adds the exclusion behavior, which is useful, but it does not state that the draw is random or that repeated calls return different cards, which is the practical meaning of the non-idempotent hint for an agent.
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?
A single front-loaded sentence with the core action first and the exclusion rule second; no filler, no restatement of the title.
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 five-parameter, fully documented, read-only tool with no output schema, the description covers the action and the exclusion semantics adequately. The remaining gap is the return shape (whether each drawn card includes name, meaning, and reversal state), which the agent must discover at call time.
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 of the five parameters documented in the schema including defaults and bounds, so the baseline is 3. The description's only parameter-adjacent content is the meaning of 'exclude', which the schema already spells out as 'Ids of cards already drawn'.
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 ('draws one or more clarifying cards from the rest of the deck') and adds the exclusion scoping rule. It never names or distinguishes itself from the sibling draw_cards, so an agent must infer the difference between a 'clarifying' draw and a normal draw.
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?
Usage is only implied by the phrase 'from the rest of the deck, leaving out the cards given in exclude', which suggests a follow-up draw after an initial spread. There is no explicit statement of when to pick this over draw_cards, nor any precondition such as supplying previously drawn card ids.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cardLook up a cardARead-onlyIdempotentInspect
Meaning of one tarot card, upright and reversed, with its element and a short description of the image. Accepts a card name in English or Lithuanian, or an id 0–77.
| Name | Required | Description | Default |
|---|---|---|---|
| card | Yes | e.g. "The Tower", "Taurių dvejetas", "Queen of Swords", 16 | |
| lang | No | Language of names and meanings. Default lt. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the safety profile is covered. The description adds real context beyond that: it discloses exactly which fields are returned (upright and reversed meanings, element, image description) and what input forms are accepted, which matters because there is no 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?
Two tightly packed sentences with zero waste. The returned content is front-loaded, with accepted input formats following, so an agent gets the essential facts immediately.
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?
With no output schema, the description takes on the job of describing the return shape and does so adequately for a simple read-only lookup, while annotations cover the safety and idempotency profile. Nothing essential to calling the tool correctly appears 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 coverage is 100%, so the baseline is 3, but the description adds information the schema does not: the id range 0–77 and the fact that card names may be given in either English or Lithuanian. The interaction between the card name's language and the lang parameter is left unstated, which holds it back from a 5.
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: look up the meaning of one tarot card, including upright/reversed meanings, element, and image description. The 'one card' scope implicitly separates it from the draw_cards and draw_clarifier siblings, but it never names them explicitly.
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?
Usage is implied as a direct lookup when you already know which card you want, in contrast to the draw_* siblings which presumably select cards for you. There is no explicit when-to-use/when-not statement or direct mention of an alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_spreadsList spreadsBRead-onlyIdempotentInspect
The available spreads with their number of cards and the meaning of each position.
| Name | Required | Description | Default |
|---|---|---|---|
| lang | No | Language of names and meanings. Default lt. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, closed-world, and non-destructive behavior. The description adds that it returns spreads with card counts and position meanings, but does not cover formatting, pagination, or other behavioral details.
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, front-loaded sentence with no unnecessary wording. It could be slightly more explicit about the action (listing) but is 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 simple read-only list tool with one optional parameter and no output schema, the description sufficiently conveys the return content. The lack of usage guidance relative to siblings is a minor gap, but the core purpose is clear.
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 the single 'lang' parameter, including its enum and default. The description adds no additional parameter semantics, so the baseline of 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 clearly states the resource (spreads) and what information is returned (number of cards and meaning of each position). It distinguishes from sibling tools like draw_cards, which perform different actions, though it does not explicitly name 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?
There is no explicit guidance on when to use this tool versus alternatives such as draw_cards, draw_clarifier, or get_card. Usage is implied by the name but not stated.
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.
2 tool updates
- Changed
draw_cards1 field changed- changed
Input schema / properties / spread / descriptionPrevious value: -"Spread id (see list_spreads). Default ppf (past, present, future). Use custom with positions, or with count."New value: +"Spread id. Default ppf (past, present, future). custom takes positions or count."
- Changed
draw_clarifier1 field changed- changed
Input schema / properties / exclude / descriptionPrevious value: -"Card ids already drawn (the id field from draw_cards)."New value: +"Ids of cards already drawn; these are left out of the deck."
4 tool updates
- First observed
draw_cards - First observed
draw_clarifier - First observed
get_card - First observed
list_spreads
Related MCP Connectors
Tarot spreads and card draws from a shuffled 78-card Rider-Waite-Smith deck, 23 languages, no key.
Rider-Waite-Smith, Marseille and Lenormand: spreads, draws, card pictures and spread readings.
Real random tarot draws, card meanings, I Ching casting, BaZi charts and Chinese zodiac (EN/JA).
Tarot card meanings, spreads and seeded reproducible readings for AI agents, one API key.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables 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.599 npm4MIT
- 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.1422 npm15MIT
- AlicenseAqualityCmaintenanceProvides 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.914 npm5MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to draw Rider-Waite-Smith tarot cards server-side and query bilingual card meanings, spreads, and guided reading prompts/resources for learning and self-reflection.14 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.