
Swift Tarot
โ 6from junebash
Provides tarot card readings, including single card draws, multi-card spreads, and full deck access.
โ labsco summary โ our analysis, not the vendor's
What it is โ An MCP server that provides tarot card readings โ single draws, multi-card spreads, and full-deck access.
What you get โ
- Card drawing โ draw_cards(count 1โ78), e.g. 'Draw me 5 tarot cards for a reading'
- Full deck โ get_full_deck returns all 78 cards
- Card images โ fetch_images returns base64-encoded card images
- Seeded RNG for reliable randomness (the README notes LLMs are bad at random) and deterministic testing
Requirements โ nothing โ Swift 5.9+/macOS 13+ to build; no API keys.
Cost snapshot โ free and MIT; fully local.
Setup effort โ self-host on macOS: build with Swift (just install or swift build -c release), install to /usr/local/bin, then add to Claude Desktop.
Our take โ A fun, self-contained novelty with genuinely better randomness than the model alone; it's macOS/Swift-only and must be built from source.
Source: the project README โ summarized 2026-07-08.
โ readme from github โ mirrored (latest on GitHub โ)
Swift Tarot MCP Server
A Model Context Protocol (MCP) server that provides tarot card reading functionality. This server allows AI assistants to draw tarot cards, perform multi-card readings, and access the complete tarot deck.
Features
LLMs are notoriously bad at randomness, similar to humans. This MCP server provides more reliable random number generation for tarot readings.
- Flexible Card Drawing: Draw anywhere from 1 to 78 tarot cards in a single request
- Full Deck Access: View all 78 cards in the traditional tarot deck
- Card Images: Fetch base64-encoded images for tarot cards
- Deterministic Testing: Uses seeded random number generation for consistent testing
- Comprehensive Validation: Input validation with proper error handling
Available Tools
draw_cards
Draws one or more tarot cards for readings.
Parameters:
count(optional): Number of cards to draw (1-78, default: 1)
Example usage in Claude:
"Draw me a tarot card" "Draw me 5 tarot cards for a reading"
get_full_deck
Returns all 78 cards in the tarot deck.
Example usage in Claude:
"Show me the complete tarot deck"
fetch_images
Fetches base64-encoded images for tarot card URIs.
Parameters:
uris: Array of tarot card URIs to fetch images for
Example usage in Claude:
"Show me the image for The Fool card"
Development
Available Commands
If you have Just installed, you can use these commands:
# Build the project (debug by default)
just build
# Build for release
just build release
# Run tests
just test
# Run tests with verbose output
just test --verbose
# Lint the code
just lint
# Auto-fix linting issues
just lint --fix
# Run the server locally
just run
# Clean build artifacts
just clean
# Install to system PATH
just install
# Remove from system PATH
just uninstallManual Commands
Without Just, you can use these Swift commands:
# Build debug
swift build
# Build release
swift build -c release
# Run tests
swift test
# Run linting
swift package plugin --allow-writing-to-package-directory swiftlintTesting
The project includes comprehensive tests covering:
- Tarot card data structures and validation
- Deck composition and card drawing
- Server handler functionality
- MCP protocol compliance
- Deterministic behavior with seeded RNG
Run tests with:
just test
# or
swift testArchitecture
The project is structured as:
- TarotMCPCore: Core library containing tarot card logic and MCP server implementation
- TarotMCP: Executable that runs the MCP server using stdio transport
Key Components
TarotCard: Enum representing major and minor arcana cardsTarotDeck: Static methods for card drawing and deck managementTarotServer: MCP server implementationTarotServerHandler: Handles MCP tool calls and routing
Card Format
Cards are returned as JSON objects with card details:
[
{
"name": "The Fool",
"imageURI": "tarot://card/major/0"
},
{
"name": "Two of Cups",
"imageURI": "tarot://card/minor/cups/2"
},
{
"name": "King of Swords",
"imageURI": "tarot://card/minor/swords/14"
}
]{
"mcpServers": {
"tarot": {
"command": "swift-tarot-MCP",
"args": []
}
}
}Installation
Prerequisites
- Swift 5.9 or later
- macOS 13.0 or later
- Just command runner (optional but recommended)
Install Just (Optional)
brew install justBuild and Install
- Clone the repository:
git clone <repository-url>
cd swift-tarot-MCP- Build and install the server:
just installThis will build the release version and install it to /usr/local/bin/swift-tarot-MCP.
Alternatively, you can build manually:
swift build -c release
sudo cp .build/release/swift-tarot-MCP /usr/local/bin/Claude Desktop Configuration
To use this MCP server with Claude Desktop, add the following to your Claude Desktop configuration file:
macOS Configuration
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"tarot": {
"command": "swift-tarot-MCP",
"args": []
}
}
}After Configuration
- Restart Claude Desktop
- The tarot tools should now be available in your conversations
- You can ask Claude to draw tarot cards, perform readings, or show the full deck
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.
Licensed under MITโ you can use, modify, and redistribute it under that license's terms.
License
This project is licensed under the MIT License - see the LICENSE file for details.