SkillAgentSearch skills...

Swift Patterns MCP

An MCP server providing curated Swift and SwiftUI best practices from leading iOS sources.

Install / Use

/learn @efremidze/Swift Patterns MCP
About this skill

Quality Score

0/100

Supported Platforms

Claude Code
Claude Desktop
Cursor

README

swift-patterns-mcp

MCP Badge Release

An MCP server providing curated Swift and SwiftUI best practices from leading iOS developers — with intelligent search, persistent memory, and optional premium integrations.

Want an Agent Skill?

If you want a lightweight, portable Swift/SwiftUI best-practices package without runtime tooling, check out:

swift-patterns-skill: Designed as a portable Agent Skill focused on Swift/SwiftUI patterns, architecture guidance, and decision-making frameworks.

Key difference:

  • swift-patterns-skill = Static guidance (portable, no runtime)
  • swift-patterns-mcp = Dynamic tooling (search, retrieval, premium features)

Note: This repo is an MCP server only. It does not ship an Agent Skill (SKILL.md) or skill references.

What does this MCP provide?

swift-patterns-mcp delivers runtime tools for accessing Swift/SwiftUI best practices:

  • 🔎 Search & retrieval across curated sources
  • 🧠 Persistent memory with cross-session recall
  • 🔄 Auto-refreshing content from RSS feeds and GitHub
  • 🎯 Intelligent filtering by quality and relevance
  • 🔐 Premium integrations (optional Patreon support)

Ideal for:

  • Active Development: "How do I implement pull-to-refresh in SwiftUI?" answered instantly without leaving your IDE
  • Architecture Decisions: Compare MVVM vs. TCA patterns with concrete examples from trusted sources
  • Staying Current: Access the latest patterns and best practices as they're published by leading iOS developers
  • Team Standards: Build a searchable reference of approved patterns for your organization
  • AI-Powered Workflows: Enable agents to query "Show me Sundell's approach to dependency injection" with consistent, quality responses

🌟 Features

  • 🎓 Expert Knowledge Base: Patterns from Swift by Sundell, Antoine van der Lee, Nil Coalescing, and more
  • 🔍 Intelligent Search: Query by topic, pattern, or specific iOS concept
  • 💾 Persistent Memory: Cross-session recall with Memvid storage
  • 🧠 Semantic Search: Optional AI-powered fallback for better conceptual matches
  • 📚 Multiple Sources: Aggregates knowledge from trusted educators
  • 🔄 Auto-Updates: Content refreshes automatically from RSS feeds
  • Fast Performance: Efficient caching and indexed search

Content Sources

Free Sources

These sources are publicly available but benefit from MCP's fetching, caching, and search capabilities:

| Source | Content Type | Updates | |--------|--------------|---------| | Swift by Sundell | Articles, patterns, best practices | Weekly | | SwiftLee | Tutorials, tips, deep dives | Weekly | | Nil Coalescing | SwiftUI patterns, Swift tips | Weekly | | Point-Free | Open-source libraries, patterns | On release |

Premium Sources

Premium content requires OAuth authentication and active subscriptions:

| Source | What You Get | Authentication | |--------|--------------|-------| | Patreon | Premium content from supported creators | OAuth 2.0 |

Access exclusive content from top iOS educators: Kavsoft, SwiftUI Codes, sucodee and many more. Get tutorials, code samples, and expert guidance directly from creators you support.

📋 Prerequisites

  • Node.js 18.0.0 or higher
  • MCP-Compatible AI Assistant: Claude Desktop, Cursor, Windsurf, VS Code with Copilot, or Claude Code

🚀 Quick Start

Run Setup

npx -y swift-patterns-mcp@latest

In an interactive terminal, this opens the setup wizard.
When launched by an MCP client (non-interactive stdio), it runs as the MCP server automatically.

Interactive Setup Wizard

npx -y swift-patterns-mcp@latest setup

If installed globally, you can also run:

swift-patterns-mcp setup

The wizard helps you choose:

  • Config scope (local project vs global)
  • MCP client (Cursor, Claude Code, Windsurf, VS Code)
  • Optional Patreon setup prompt

Non-interactive Setup (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) or --local (-l) to skip the location prompt.
Use --cursor, --claude, --windsurf, --vscode, or --all to skip the client prompt.

Configure Your AI Assistant

Cursor

Install MCP Server

Or manually add to Cursor SettingsToolsMCP Servers:

.cursor/mcp.json:

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

Alternatively, add to ~/.cursor/mcp.json. See Cursor documentation for details.

Claude Code

Run in your terminal:

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

Or manually add to .mcp.json:

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

Restart Claude Code and run /mcp to verify. See Claude Code MCP documentation for details.

Windsurf

Add to .windsurf/mcp.json:

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

Restart Windsurf to activate. See Windsurf MCP documentation for details.

VS Code

Add to .vscode/mcp.json:

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

Open .vscode/mcp.json and click Start next to the swift-patterns server. See VS Code MCP documentation for details.

Test It Out

Try these queries:

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

🔧 Configuration

Configuration is automatically created at ~/.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"
  }
}

Note: configured only applies to premium sources. Free sources are treated as configured by default.

Persistent Memory with Memvid

Memvid provides persistent semantic memory that improves recall across sessions. Unlike in-memory caching, Memvid stores patterns in a single-file database that persists between server restarts.

Features:

  • 💾 Persistent Storage: Patterns stored in ~/.swift-patterns-mcp/swift-patterns-memory.mv2
  • 🔁 Cross-Session Recall: Find patterns from previous searches after server restart
  • 🧠 Semantic Search: Optional embedding-based similarity search
  • 🚀 Automatic Storage: Patterns stored during searches
  • Fast Retrieval: Built-in BM25 + optional vector search

Configuration:

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

When to enable:

  • You want patterns to persist across server restarts
  • You frequently search for similar topics
  • You need cross-session semantic memory

Note: Memvid complements MiniSearch (fast in-session search) and semantic recall (in-session fallback). All three work together:

  1. MiniSearch: Fast lexical search within current session
  2. Semantic recall: Activates for poor lexical results (in-session)
  3. Memvid: Cross-session persistent memory and recall

Semantic Recall (Optional AI Enhancement)

Semantic recall provides AI-powered semantic search as a fallback when keyword search returns poor results. It uses transformer embeddings to understand query intent and find conceptually similar patterns.

Features:

  • 🧠 Automatically activates when keyword search scores are low
  • 🎯 Uses sentence transformers to understand meaning beyond keywords
  • 📊 Quality filtering to index only high-relevance patterns
  • ⚡ Efficient embedding caching

Configuration:

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

When to enable:

  • Your queries use conceptual terms that don't match exact keywords
  • You want more intelligent, context-aware search results
  • You're okay with slightly slower first-time searches (embeddings need to compute)

Note: Requires downloading a ~50MB transformer model on first use. Embeddings are cached for performance.

Env

View on GitHub
GitHub Stars8
CategoryDevelopment
Updated1d ago
Forks2

Languages

TypeScript

Security Score

90/100

Audited on Mar 18, 2026

No findings