Swift Tarot

Proporciona lecturas de cartas de tarot, incluyendo tiradas de una sola carta, tiradas de múltiples cartas y acceso al mazo completo.

Documentación

Servidor MCP Swift Tarot

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona funcionalidad de lectura de cartas de tarot. Este servidor permite a los asistentes de IA extraer cartas de tarot, realizar lecturas de múltiples cartas y acceder a la baraja completa de tarot.

Características

Los LLM son notoriamente malos en la aleatoriedad, similar a los humanos. Este servidor MCP proporciona una generación de números aleatorios más confiable para lecturas de tarot.

  • Extracción Flexible de Cartas: Extrae de 1 a 78 cartas de tarot en una sola solicitud
  • Acceso a la Baraja Completa: Visualiza las 78 cartas de la baraja tradicional de tarot
  • Imágenes de Cartas: Obtén imágenes codificadas en base64 para las cartas de tarot
  • Pruebas Deterministas: Utiliza generación de números aleatorios con semilla para pruebas consistentes
  • Validación Integral: Validación de entrada con manejo adecuado de errores

Instalación

Requisitos Previos

  • Swift 5.9 o posterior
  • macOS 13.0 o posterior
  • Just ejecutor de comandos (opcional pero recomendado)

Instalar Just (Opcional)

brew install just

Compilar e Instalar

  1. Clona el repositorio:
git clone <repository-url>
cd swift-tarot-MCP
  1. Compila e instala el servidor:
just install

Esto compilará la versión de lanzamiento y la instalará en /usr/local/bin/swift-tarot-MCP.

Alternativamente, puedes compilar manualmente:

swift build -c release
sudo cp .build/release/swift-tarot-MCP /usr/local/bin/

Configuración de Claude Desktop

Para usar este servidor MCP con Claude Desktop, agrega lo siguiente a tu archivo de configuración de Claude Desktop:

Configuración de macOS

Edita ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "tarot": {
      "command": "swift-tarot-MCP",
      "args": []
    }
  }
}

Después de la Configuración

  1. Reinicia Claude Desktop
  2. Las herramientas de tarot deberían estar ahora disponibles en tus conversaciones
  3. Puedes pedirle a Claude que extraiga cartas de tarot, realice lecturas o muestre la baraja completa

Herramientas Disponibles

draw_cards

Extrae una o más cartas de tarot para lecturas.

Parámetros:

  • count (opcional): Número de cartas a extraer (1-78, predeterminado: 1)

Ejemplo de uso en Claude:

"Sácame una carta de tarot" "Sácame 5 cartas de tarot para una lectura"

get_full_deck

Devuelve las 78 cartas de la baraja de tarot.

Ejemplo de uso en Claude:

"Muéstrame la baraja completa de tarot"

fetch_images

Obtiene imágenes codificadas en base64 para los URI de las cartas de tarot.

Parámetros:

  • uris: Matriz de URI de cartas de tarot para obtener imágenes

Ejemplo de uso en Claude:

"Muéstrame la imagen de la carta El Loco"

Desarrollo

Comandos Disponibles

Si tienes Just instalado, puedes usar estos comandos:

# 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 uninstall

Comandos Manuales

Sin Just, puedes usar estos comandos de Swift:

# Build debug
swift build

# Build release
swift build -c release

# Run tests
swift test

# Run linting
swift package plugin --allow-writing-to-package-directory swiftlint

Pruebas

El proyecto incluye pruebas integrales que cubren:

  • Estructuras de datos y validación de cartas de tarot
  • Composición de la baraja y extracción de cartas
  • Funcionalidad del manejador del servidor
  • Cumplimiento del protocolo MCP
  • Comportamiento determinista con RNG con semilla

Ejecuta las pruebas con:

just test
# or
swift test

Arquitectura

El proyecto está estructurado como:

  • TarotMCPCore: Biblioteca principal que contiene la lógica de las cartas de tarot y la implementación del servidor MCP
  • TarotMCP: Ejecutable que ejecuta el servidor MCP usando transporte stdio

Componentes Clave

  • TarotCard: Enumeración que representa los arcanos mayores y menores
  • TarotDeck: Métodos estáticos para extracción de cartas y gestión de la baraja
  • TarotServer: Implementación del servidor MCP
  • TarotServerHandler: Maneja las llamadas de herramientas MCP y el enrutamiento

Formato de Cartas

Las cartas se devuelven como objetos JSON con detalles de la carta:

[
  {
    "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"
  }
]

Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulta el archivo LICENSE para más detalles.