swift-mcp

Um servidor MCP que traz as melhores práticas dos principais desenvolvedores iOS diretamente para seu assistente de IA.

Documentação

swift-patterns-mcp

MCP Badge Release

Um servidor MCP que fornece práticas recomendadas de Swift e SwiftUI, selecionadas por desenvolvedores iOS líderes — com busca inteligente, memória persistente e integrações premium opcionais.

Quer uma Skill de Agente?

Se você deseja um pacote leve e portátil de práticas recomendadas de Swift/SwiftUI sem ferramentas em tempo de execução, confira:

swift-patterns-skill: Projetado como uma Skill de Agente portátil, focada em padrões Swift/SwiftUI, orientação de arquitetura e estruturas de tomada de decisão.

Diferença principal:

  • swift-patterns-skill = Orientação estática (portátil, sem tempo de execução)
  • swift-patterns-mcp = Ferramentas dinâmicas (busca, recuperação, recursos premium)

Nota: Este repositório é apenas um servidor MCP. Ele não inclui uma Skill de Agente (SKILL.md) nem referências de skill.

O que este MCP oferece?

swift-patterns-mcp fornece ferramentas em tempo de execução para acessar práticas recomendadas de Swift/SwiftUI:

  • 🔎 Busca e recuperação em fontes selecionadas
  • 🧠 Memória persistente com recall entre sessões
  • 🔄 Conteúdo com atualização automática a partir de feeds RSS e GitHub
  • 🎯 Filtragem inteligente por qualidade e relevância
  • 🔐 Integrações premium (suporte opcional ao Patreon)

Ideal para:

  • Desenvolvimento Ativo: "Como implemento pull-to-refresh em SwiftUI?" respondido instantaneamente sem sair da sua IDE
  • Decisões de Arquitetura: Compare padrões MVVM vs. TCA com exemplos concretos de fontes confiáveis
  • Manter-se Atualizado: Acesse os padrões e práticas mais recentes conforme são publicados por desenvolvedores iOS líderes
  • Padrões de Equipe: Construa uma referência pesquisável de padrões aprovados para sua organização
  • Fluxos de Trabalho com IA: Permita que agentes consultem "Mostre-me a abordagem do Sundell para injeção de dependência" com respostas consistentes e de qualidade

🌟 Recursos

  • 🎓 Base de Conhecimento Especializada: Padrões de Swift by Sundell, Antoine van der Lee, Nil Coalescing e mais
  • 🔍 Busca Inteligente: Consulte por tópico, padrão ou conceito específico de iOS
  • 💾 Memória Persistente: Recall entre sessões com armazenamento Memvid
  • 🧠 Busca Semântica: Fallback opcional com IA para melhores correspondências conceituais
  • 📚 Múltiplas Fontes: Agrega conhecimento de educadores confiáveis
  • 🔄 Atualizações Automáticas: O conteúdo é atualizado automaticamente a partir de feeds RSS
  • Desempenho Rápido: Cache eficiente e busca indexada

Fontes de Conteúdo

Fontes Gratuitas

Estas fontes são publicamente acessíveis, mas se beneficiam dos recursos de busca, cache e recuperação do MCP:

FonteTipo de ConteúdoAtualizações
Swift by SundellArtigos, padrões, práticas recomendadasSemanal
SwiftLeeTutoriais, dicas, análises aprofundadasSemanal
Nil CoalescingPadrões SwiftUI, dicas de SwiftSemanal
Point-FreeBibliotecas de código aberto, padrõesNo lançamento

Fontes Premium

O conteúdo premium requer autenticação OAuth e assinaturas ativas:

FonteO que Você ObtémAutenticação
PatreonConteúdo premium de criadores apoiadosOAuth 2.0

Acesse conteúdo exclusivo dos principais educadores iOS: Kavsoft, SwiftUI Codes, sucodee e muitos outros. Obtenha tutoriais, exemplos de código e orientação especializada diretamente dos criadores que você apoia.

📋 Pré-requisitos

  • Node.js 18.0.0 ou superior
  • Assistente de IA Compatível com MCP: Claude Desktop, Cursor, Windsurf, VS Code com Copilot ou Claude Code

🚀 Início Rápido

Executar Configuração

npx -y swift-patterns-mcp@latest

Em um terminal interativo, isso abre o assistente de configuração.
Quando iniciado por um cliente MCP (stdio não interativo), ele executa automaticamente como servidor MCP.

Assistente de Configuração Interativo

npx -y swift-patterns-mcp@latest setup

Se instalado globalmente, você também pode executar:

swift-patterns-mcp setup

O assistente ajuda você a escolher:

  • Escopo da configuração (projeto local vs. global)
  • Cliente MCP (Cursor, Claude Code, Windsurf, VS Code)
  • Prompt opcional de configuração do Patreon

Configuração Não Interativa (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

Use --global (-g) ou --local (-l) para pular o prompt de localização.
Use --cursor, --claude, --windsurf, --vscode ou --all para pular o prompt de cliente.

Configure Seu Assistente de IA

Cursor

Install MCP Server

Ou adicione manualmente em Configurações do CursorFerramentasServidores MCP:

.cursor/mcp.json:

{
  "mcpServers": {
    "swift-patterns": {
      "command": "npx",
      "args": ["-y", "swift-patterns-mcp@latest"]
    }
  }
}

Alternativamente, adicione a ~/.cursor/mcp.json. Consulte a documentação do Cursor para detalhes.

Claude Code

Execute no seu terminal:

claude mcp add swift-patterns -- npx -y swift-patterns-mcp@latest

Ou adicione manualmente a .mcp.json:

{
  "mcpServers": {
    "swift-patterns": {
      "command": "npx",
      "args": ["-y", "swift-patterns-mcp@latest"]
    }
  }
}

Reinicie o Claude Code e execute /mcp para verificar. Consulte a documentação MCP do Claude Code para detalhes.

Windsurf

Adicione a .windsurf/mcp.json:

{
  "mcpServers": {
    "swift-patterns": {
      "command": "npx",
      "args": ["-y", "swift-patterns-mcp@latest"]
    }
  }
}

Reinicie o Windsurf para ativar. Consulte a documentação MCP do Windsurf para detalhes.

VS Code

Adicione a .vscode/mcp.json:

{
  "mcp": {
    "servers": {
      "swift-patterns": {
        "command": "npx",
        "args": ["-y", "swift-patterns-mcp@latest"]
      }
    }
  }
}

Abra .vscode/mcp.json e clique em Iniciar ao lado do servidor swift-patterns. Consulte a documentação MCP do VS Code para detalhes.

Teste

Experimente estas consultas:

"Show me SwiftUI animation patterns"
"What does Sundell say about testing?"
"Explain navigation patterns in SwiftUI"

🔧 Configuração

A configuração é criada automaticamente em ~/.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 se aplica apenas a fontes premium. Fontes gratuitas são tratadas como configuradas por padrão.

Memória Persistente com Memvid

O Memvid fornece memória semântica persistente que melhora o recall entre sessões. Diferente do cache em memória, o Memvid armazena padrões em um banco de dados de arquivo único que persiste entre reinicializações do servidor.

Recursos:

  • 💾 Armazenamento Persistente: Padrões armazenados em ~/.swift-patterns-mcp/swift-patterns-memory.mv2
  • 🔁 Recall Entre Sessões: Encontre padrões de buscas anteriores após reiniciar o servidor
  • 🧠 Busca Semântica: Busca opcional por similaridade baseada em embeddings
  • 🚀 Armazenamento Automático: Padrões armazenados durante buscas
  • Recuperação Rápida: BM25 integrado + busca vetorial opcional

Configuração:

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

Quando ativar:

  • Você deseja que os padrões persistam entre reinicializações do servidor
  • Você busca frequentemente tópicos semelhantes
  • Você precisa de memória semântica entre sessões

Nota: O Memvid complementa o MiniSearch (busca rápida na sessão) e o recall semântico (fallback na sessão). Os três funcionam juntos:

  1. MiniSearch: Busca lexical rápida na sessão atual
  2. Recall semântico: Ativa para resultados lexicais ruins (na sessão)
  3. Memvid: Memória persistente e recall entre sessões

Recall Semântico (Aprimoramento Opcional de IA)

O recall semântico fornece busca semântica com IA como fallback quando a busca por palavras-chave retorna resultados ruins. Ele usa embeddings de transformers para entender a intenção da consulta e encontrar padrões conceitualmente semelhantes.

Recursos:

  • 🧠 Ativa automaticamente quando as pontuações da busca por palavras-chave são baixas
  • 🎯 Usa sentence transformers para entender o significado além das palavras-chave
  • 📊 Filtragem de qualidade para indexar apenas padrões de alta relevância
  • ⚡ Cache eficiente de embeddings

Configuração:

{
  "semanticRecall": {
    "enabled": false,              // Enable semantic recall
    "minLexicalScore": 0.35,       // Activate when keyword search < 0.35
    "minRelevanceScore": 70        // Only index patterns with score >= 70
  }
}

Quando ativar:

  • Suas consultas usam termos conceituais que não correspondem a palavras-chave exatas
  • Você deseja resultados de busca mais inteligentes e sensíveis ao contexto
  • Você aceita buscas iniciais um pouco mais lentas (os embeddings precisam ser calculados)

Nota: Requer o download de um modelo transformer de ~50MB no primeiro uso. Os embeddings são armazenados em cache para desempenho.

Variáveis de Ambiente (Opcional)

Patreon

Todas as três variáveis são necessárias para a busca de conteúdo do Patreon:

VariávelDescrição
PATREON_CLIENT_IDID do cliente OAuth do seu aplicativo Patreon
PATREON_CLIENT_SECRETSegredo do cliente OAuth do seu aplicativo Patreon
YOUTUBE_API_KEYHabilita a busca de vídeos do YouTube de criadores do Patreon. Obtenha a chave da API

Adicione à configuração do seu 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"
      }
    }
  }
}

💡 Exemplos 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 Avançadas

"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"

Com Integração 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"

🔐 Integração Premium (Opcional)

Configuração do Patreon

Acesse conteúdo premium de criadores iOS que você apoia:

swift-patterns-mcp patreon setup

Siga o assistente interativo para:

  1. Verificar se as variáveis de ambiente estão configuradas
  2. Concluir a autenticação OAuth
  3. Buscar e verificar o conteúdo das suas assinaturas

📖 Guia Detalhado: Documentação de Configuração do Patreon

Requisitos

  • Conta Patreon ativa com pelo menos uma assinatura de criador iOS
  • Conta de Criador no Patreon (gratuita - não é necessário lançar uma página de criador)
  • 10 minutos para a configuração única do OAuth

Por que uma Conta de Criador?

O Patreon exige que aplicativos OAuth sejam registrados por criadores. Você não precisa lançar uma página de criador nem se tornar um criador ativo - basta se registrar como um para criar um aplicativo OAuth para uso pessoal.

O que Você Obtém

  • ✅ Acesso a tutoriais e padrões premium dos criadores que você apoia
  • ✅ Extração automática de código de conteúdo para download
  • ✅ Filtragem de qualidade e busca avançada
  • ✅ Suporte a múltiplos criadores
  • ✅ Autenticação privada e 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

🗃️ Como 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]
  1. Consulta: Recebe uma consulta através do protocolo MCP
  2. Processamento: Busca em fontes habilitadas com base na consulta
  3. Recuperação de Conteúdo: Busca e analisa conteúdo de feeds RSS, APIs e dados em cache
  4. Filtragem de Qualidade: Aplica limites de qualidade configuráveis
  5. Resposta: Retorna padrões e exemplos formatados e relevantes

🔧 Solução de Problemas

Problemas Comuns

Versão do Node incompatível

node --version  # Should be >= 18.0.0

Fontes não retornando resultados

swift-patterns-mcp sources
ls ~/.swift-patterns-mcp/config.json

Problemas de Integração com Patreon

Redirecionamento OAuth não funcionando

  • Certifique-se de que o URI de redirecionamento seja exatamente: http://localhost:3000/patreon/callback
  • Verifique se nenhum outro processo está usando a porta 3000
  • Verifique se as credenciais OAuth estão configuradas corretamente

Nenhum conteúdo premium aparecendo

  • Confirme que você tem assinaturas ativas do Patreon para criadores iOS
  • Verifique o status: swift-patterns-mcp patreon status
  • Reautentique: swift-patterns-mcp patreon setup

🗺️ Roteiro

Atual (v1.x)

  • Servidor MCP principal
  • Swift by Sundell RSS
  • Antoine van der Lee RSS
  • Nil Coalescing RSS
  • Patreon OAuth
  • Point-Free GitHub
  • Filtragem avançada

Futuro (v2.x)

  • Fontes premium adicionais
  • Mais fontes gratuitas
  • Validação de código

🤝 Contribuindo

Aceitamos contribuições! Consulte nossas diretrizes de contribuição.

📄 Licença

Licença MIT - Copyright (c) 2026 Lasha Efremidze

🙏 Créditos

Criado por Lasha Efremidze

Fontes de Conteúdo

Construído com Model Context Protocol

Feito com ❤️ para a comunidade Swift

⭐ Dê uma estrela neste repositório🐛 Reportar Bug✨ Solicitar Recurso