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
- Clona el repositorio:
git clone <repository-url>
cd swift-tarot-MCP
- 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
- Reinicia Claude Desktop
- Las herramientas de tarot deberían estar ahora disponibles en tus conversaciones
- 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 menoresTarotDeck: Métodos estáticos para extracción de cartas y gestión de la barajaTarotServer: Implementación del servidor MCPTarotServerHandler: 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.