swift-mcp
Un servidor MCP que trae las mejores prácticas de los principales desarrolladores de iOS directamente a tu asistente de IA.
Documentación
swift-patterns-mcp
Un servidor MCP que proporciona mejores prácticas de Swift y SwiftUI seleccionadas de desarrolladores líderes de iOS, con búsqueda inteligente, memoria persistente e integraciones premium opcionales.
¿Quieres una habilidad de agente?
Si deseas un paquete ligero y portátil de mejores prácticas de Swift/SwiftUI sin herramientas de ejecución, consulta:
swift-patterns-skill: Diseñado como una habilidad de agente portátil centrada en patrones de Swift/SwiftUI, guía de arquitectura y marcos de toma de decisiones.
Diferencia clave:
- swift-patterns-skill = Guía estática (portátil, sin ejecución)
- swift-patterns-mcp = Herramientas dinámicas (búsqueda, recuperación, funciones premium)
Nota: Este repositorio es solo un servidor MCP. No incluye una habilidad de agente (SKILL.md) ni referencias de habilidades.
¿Qué proporciona este MCP?
swift-patterns-mcp ofrece herramientas de ejecución para acceder a las mejores prácticas de Swift/SwiftUI:
- 🔎 Búsqueda y recuperación en fuentes seleccionadas
- 🧠 Memoria persistente con recuperación entre sesiones
- 🔄 Contenido de actualización automática desde fuentes RSS y GitHub
- 🎯 Filtrado inteligente por calidad y relevancia
- 🔐 Integraciones premium (soporte opcional de Patreon)
Ideal para:
- Desarrollo activo: "¿Cómo implemento pull-to-refresh en SwiftUI?" respondido al instante sin salir de tu IDE
- Decisiones de arquitectura: Compara patrones MVVM vs. TCA con ejemplos concretos de fuentes confiables
- Mantenerse actualizado: Accede a los últimos patrones y mejores prácticas publicados por desarrolladores líderes de iOS
- Estándares de equipo: Construye una referencia buscable de patrones aprobados para tu organización
- Flujos de trabajo impulsados por IA: Permite que los agentes consulten "Muéstrame el enfoque de Sundell para la inyección de dependencias" con respuestas consistentes y de calidad
🌟 Características
- 🎓 Base de conocimiento experta: Patrones de Swift by Sundell, Antoine van der Lee, Nil Coalescing y más
- 🔍 Búsqueda inteligente: Consulta por tema, patrón o concepto específico de iOS
- 💾 Memoria persistente: Recuperación entre sesiones con almacenamiento Memvid
- 🧠 Búsqueda semántica: Respaldo opcional impulsado por IA para mejores coincidencias conceptuales
- 📚 Múltiples fuentes: Agrega conocimiento de educadores confiables
- 🔄 Actualizaciones automáticas: El contenido se actualiza automáticamente desde fuentes RSS
- ⚡ Rendimiento rápido: Caché eficiente y búsqueda indexada
Fuentes de contenido
Fuentes gratuitas
Estas fuentes son de acceso público, pero se benefician de las capacidades de recuperación, caché y búsqueda de MCP:
| Fuente | Tipo de contenido | Actualizaciones |
|---|---|---|
| Swift by Sundell | Artículos, patrones, mejores prácticas | Semanal |
| SwiftLee | Tutoriales, consejos, análisis profundos | Semanal |
| Nil Coalescing | Patrones de SwiftUI, consejos de Swift | Semanal |
| Point-Free | Bibliotecas de código abierto, patrones | En cada lanzamiento |
Fuentes premium
El contenido premium requiere autenticación OAuth y suscripciones activas:
| Fuente | Qué obtienes | Autenticación |
|---|---|---|
| Patreon | Contenido premium de creadores compatibles | OAuth 2.0 |
Accede a contenido exclusivo de los mejores educadores de iOS: Kavsoft, SwiftUI Codes, sucodee y muchos más. Obtén tutoriales, ejemplos de código y orientación experta directamente de los creadores que apoyas.
📋 Requisitos previos
- Node.js 18.0.0 o superior
- Asistente de IA compatible con MCP: Claude Desktop, Cursor, Windsurf, VS Code con Copilot o Claude Code
🚀 Inicio rápido
Ejecutar configuración
npx -y swift-patterns-mcp@latest
En una terminal interactiva, esto abre el asistente de configuración.
Cuando se inicia desde un cliente MCP (stdio no interactivo), se ejecuta automáticamente como servidor MCP.
Asistente de configuración interactivo
npx -y swift-patterns-mcp@latest setup
Si se instala globalmente, también puedes ejecutar:
swift-patterns-mcp setup
El asistente te ayuda a elegir:
- Alcance de configuración (proyecto local vs global)
- Cliente MCP (Cursor, Claude Code, Windsurf, VS Code)
- Indicación opcional de configuración de Patreon
Configuración no interactiva (CI/Scripts)
# Cursor
npx -y swift-patterns-mcp@latest setup --cursor --global
npx -y swift-patterns-mcp@latest setup --cursor --local
# Claude Code
npx -y swift-patterns-mcp@latest setup --claude --global
# Windsurf
npx -y swift-patterns-mcp@latest setup --windsurf --global
# VS Code
npx -y swift-patterns-mcp@latest setup --vscode --local
# All clients
npx -y swift-patterns-mcp@latest setup --all --global
Usa --global (-g) o --local (-l) para omitir la indicación de ubicación.
Usa --cursor, --claude, --windsurf, --vscode o --all para omitir la indicación de cliente.
Configura tu asistente de IA
Cursor
O agrégalo manualmente en Configuración de Cursor → Herramientas → Servidores MCP:
.cursor/mcp.json:
{
"mcpServers": {
"swift-patterns": {
"command": "npx",
"args": ["-y", "swift-patterns-mcp@latest"]
}
}
}
Alternativamente, agrégalo a ~/.cursor/mcp.json. Consulta la documentación de Cursor para más detalles.
Claude Code
Ejecuta en tu terminal:
claude mcp add swift-patterns -- npx -y swift-patterns-mcp@latest
O agrégalo manualmente a .mcp.json:
{
"mcpServers": {
"swift-patterns": {
"command": "npx",
"args": ["-y", "swift-patterns-mcp@latest"]
}
}
}
Reinicia Claude Code y ejecuta /mcp para verificar. Consulta la documentación de MCP de Claude Code para más detalles.
Windsurf
Agrégalo a .windsurf/mcp.json:
{
"mcpServers": {
"swift-patterns": {
"command": "npx",
"args": ["-y", "swift-patterns-mcp@latest"]
}
}
}
Reinicia Windsurf para activarlo. Consulta la documentación de MCP de Windsurf para más detalles.
VS Code
Agrégalo a .vscode/mcp.json:
{
"mcp": {
"servers": {
"swift-patterns": {
"command": "npx",
"args": ["-y", "swift-patterns-mcp@latest"]
}
}
}
}
Abre .vscode/mcp.json y haz clic en Iniciar junto al servidor swift-patterns. Consulta la documentación de MCP de VS Code para más detalles.
Pruébalo
Prueba estas consultas:
"Show me SwiftUI animation patterns"
"What does Sundell say about testing?"
"Explain navigation patterns in SwiftUI"
🔧 Configuración
La configuración se crea automáticamente en ~/.swift-patterns-mcp/config.json:
{
"sources": {
"sundell": { "enabled": true },
"vanderlee": { "enabled": true },
"nilcoalescing": { "enabled": true },
"pointfree": { "enabled": true },
"patreon": { "enabled": false, "configured": false }
},
"prefetchSources": true,
"semanticRecall": {
"enabled": false,
"minLexicalScore": 0.35,
"minRelevanceScore": 70
},
"memvid": {
"enabled": true,
"autoStore": true,
"useEmbeddings": false,
"embeddingModel": "bge-small"
}
}
Nota: configured solo se aplica a fuentes premium. Las fuentes gratuitas se tratan como configuradas por defecto.
Memoria persistente con Memvid
Memvid proporciona memoria semántica persistente que mejora la recuperación entre sesiones. A diferencia del caché en memoria, Memvid almacena patrones en una base de datos de un solo archivo que persiste entre reinicios del servidor.
Características:
- 💾 Almacenamiento persistente: Patrones almacenados en
~/.swift-patterns-mcp/swift-patterns-memory.mv2 - 🔁 Recuperación entre sesiones: Encuentra patrones de búsquedas anteriores después de reiniciar el servidor
- 🧠 Búsqueda semántica: Búsqueda de similitud opcional basada en incrustaciones
- 🚀 Almacenamiento automático: Patrones almacenados durante las búsquedas
- ⚡ Recuperación rápida: BM25 integrado + búsqueda vectorial opcional
Configuración:
{
"memvid": {
"enabled": true, // Enable Memvid persistent memory
"autoStore": true, // Automatically store patterns during searches
"useEmbeddings": false, // Use semantic embeddings (requires model download)
"embeddingModel": "bge-small" // Options: "bge-small", "openai-small"
}
}
Cuándo habilitarlo:
- Quieres que los patrones persistan entre reinicios del servidor
- Buscas con frecuencia temas similares
- Necesitas memoria semántica entre sesiones
Nota: Memvid complementa MiniSearch (búsqueda rápida dentro de la sesión) y la recuperación semántica (respaldo dentro de la sesión). Los tres funcionan juntos:
- MiniSearch: Búsqueda léxica rápida dentro de la sesión actual
- Recuperación semántica: Se activa cuando los resultados léxicos son deficientes (dentro de la sesión)
- Memvid: Memoria persistente y recuperación entre sesiones
Recuperación semántica (mejora opcional de IA)
La recuperación semántica proporciona búsqueda semántica impulsada por IA como respaldo cuando la búsqueda por palabras clave devuelve resultados deficientes. Utiliza incrustaciones de transformadores para comprender la intención de la consulta y encontrar patrones conceptualmente similares.
Características:
- 🧠 Se activa automáticamente cuando las puntuaciones de búsqueda por palabras clave son bajas
- 🎯 Utiliza transformadores de oraciones para comprender el significado más allá de las palabras clave
- 📊 Filtrado de calidad para indexar solo patrones de alta relevancia
- ⚡ Caché eficiente de incrustaciones
Configuración:
{
"semanticRecall": {
"enabled": false, // Enable semantic recall
"minLexicalScore": 0.35, // Activate when keyword search < 0.35
"minRelevanceScore": 70 // Only index patterns with score >= 70
}
}
Cuándo habilitarlo:
- Tus consultas usan términos conceptuales que no coinciden con palabras clave exactas
- Quieres resultados de búsqueda más inteligentes y conscientes del contexto
- Aceptas búsquedas iniciales ligeramente más lentas (las incrustaciones deben calcularse)
Nota: Requiere descargar un modelo de transformador de ~50MB en el primer uso. Las incrustaciones se almacenan en caché para el rendimiento.
Variables de entorno (opcional)
Patreon
Las tres variables son necesarias para la obtención de contenido de Patreon:
| Variable | Descripción |
|---|---|
PATREON_CLIENT_ID | ID de cliente OAuth de tu aplicación de Patreon |
PATREON_CLIENT_SECRET | Secreto de cliente OAuth de tu aplicación de Patreon |
YOUTUBE_API_KEY | Habilita la búsqueda de videos de YouTube de creadores de Patreon. Obtén la clave de API |
Agrégalas a la configuración de tu cliente MCP:
{
"mcpServers": {
"swift-patterns": {
"command": "npx",
"args": ["-y", "swift-patterns-mcp@latest"],
"env": {
"PATREON_CLIENT_ID": "your_client_id",
"PATREON_CLIENT_SECRET": "your_client_secret",
"YOUTUBE_API_KEY": "your_youtube_api_key"
}
}
}
}
💡 Ejemplos de uso
Consultas básicas
"How can I use lazy var in @Observable classes?"
"Show me modern SwiftUI animation best practices using symbolEffect (with button + state examples)"
"Explain common SwiftUI navigation patterns (NavigationStack, NavigationPath, enum routing) and when to use each"
Consultas avanzadas
"Build a coordinator-style architecture for SwiftUI: MVVM + dependency injection + type-safe routing"
"Give me a clean infinite scrolling implementation: pagination, dedupe, cancellation, and loading states"
"Explain how @Observable improves SwiftUI performance vs ObservableObject, then refactor my view model to @Observable"
Con integración de Patreon
"Build a SwiftUI parallax + sticky header screen like a profile page (include reusable component version)"
"Show me how to build a photo editor flow: PhotosPicker -> crop -> filters -> export/share"
"Give me 5 advanced SwiftUI micro-interactions (toasts, sheets, draggable cards, haptics) with production-ready code"
🔐 Integración premium (opcional)
Configuración de Patreon
Accede a contenido premium de creadores de iOS que apoyas:
swift-patterns-mcp patreon setup
Sigue el asistente interactivo para:
- Verificar que las variables de entorno estén configuradas
- Completar la autenticación OAuth
- Obtener y verificar el contenido de tus suscripciones
📖 Guía detallada: Documentación de configuración de Patreon
Requisitos
- Cuenta activa de Patreon con al menos una suscripción a un creador de iOS
- Cuenta de creador de Patreon (gratuita: no es necesario lanzar una página de creador)
- 10 minutos para la configuración única de OAuth
¿Por qué una cuenta de creador?
Patreon requiere que las aplicaciones OAuth sean registradas por creadores. No necesitas lanzar una página de creador ni convertirte en un creador activo; solo regístrate como uno para crear una aplicación OAuth para uso personal.
Qué obtienes
- ✅ Acceso a tutoriales y patrones premium de los creadores que apoyas
- ✅ Extracción automática de código de contenido descargable
- ✅ Filtrado de calidad y búsqueda avanzada
- ✅ Soporte para múltiples creadores
- ✅ Autenticación privada y segura
⚙️ Comandos
# List all content sources and status
swift-patterns-mcp sources
# Interactive onboarding/configuration wizard
swift-patterns-mcp setup
# Patreon integration
swift-patterns-mcp patreon setup # Connect your Patreon account
swift-patterns-mcp patreon status # Check connection status
swift-patterns-mcp patreon reset # Clear authentication data
🗃️ Cómo funciona
graph LR
A[AI Assistant] --> B[swift-patterns-mcp Server]
B --> C[Free Sources]
B --> D[Premium Sources]
C --> E[Swift by Sundell RSS]
C --> F[Antoine van der Lee RSS]
C --> G[Nil Coalescing RSS]
C --> H[Point-Free GitHub]
D --> I[Patreon API]
- Consulta: Recibe una consulta a través del protocolo MCP
- Procesamiento: Busca en las fuentes habilitadas según la consulta
- Recuperación de contenido: Obtiene y analiza contenido de fuentes RSS, API y datos en caché
- Filtrado de calidad: Aplica umbrales de calidad configurables
- Respuesta: Devuelve patrones y ejemplos formateados y relevantes
🔧 Solución de problemas
Problemas comunes
Versión de Node incompatible
node --version # Should be >= 18.0.0
Las fuentes no devuelven resultados
swift-patterns-mcp sources
ls ~/.swift-patterns-mcp/config.json
Problemas de integración con Patreon
El redireccionamiento OAuth no funciona
- Asegúrate de que la URI de redireccionamiento sea exactamente:
http://localhost:3000/patreon/callback - Verifica que ningún otro proceso esté usando el puerto 3000
- Verifica que las credenciales OAuth estén configuradas correctamente
No se muestra contenido premium
- Confirma que tienes suscripciones activas de Patreon a creadores de iOS
- Verifica el estado:
swift-patterns-mcp patreon status - Reautentica:
swift-patterns-mcp patreon setup
🗺️ Hoja de ruta
Actual (v1.x)
- Servidor MCP principal
- RSS de Swift by Sundell
- RSS de Antoine van der Lee
- RSS de Nil Coalescing
- OAuth de Patreon
- GitHub de Point-Free
- Filtrado avanzado
Futuro (v2.x)
- Fuentes premium adicionales
- Más fuentes gratuitas
- Validación de código
🤝 Contribuciones
¡Agradecemos las contribuciones! Consulta nuestras pautas de contribución.
📄 Licencia
Licencia MIT - Copyright (c) 2026 Lasha Efremidze
🙏 Créditos
Creado por Lasha Efremidze
Fuentes de contenido
- John Sundell - Swift by Sundell
- Antoine van der Lee - SwiftLee
- Nil Coalescing - Patrones de SwiftUI y consejos de Swift
- Point-Free - Educación avanzada de Swift
Construido con Model Context Protocol
Hecho con ❤️ para la comunidad de Swift
⭐ Marca este repositorio • 🐛 Reportar un error • ✨ Solicitar una función