Back to Directory/Developer Tools

io.github.jrlingyin888/swiftforge

Curated, current SwiftUI components (incl. iOS 26 Liquid Glass) for your AI coding agent.

Developer ToolsJavaScriptv0.2.1

npm version license MCP SwiftUI

A curated, current, production-grade SwiftUI component library — served straight to your AI coding agent over MCP.

Think 21st.dev (curated React components for AI agents), but for SwiftUI.


See it in action

https://github.com/user-attachments/assets/c2460a1d-fb0d-47e0-9d1b-91e6a784717b

A quick tour of components from the catalog (incl. iOS 26 Liquid Glass), running in the demo app.


The problem

Coding agents (Claude Code, Cursor, Copilot) are great at logic and mediocre at SwiftUI. They:

  • reach for deprecated APIs (NavigationView, .foregroundColor, ObservableObject everywhere)
  • have never seen iOS 26 "Liquid Glass" (.glassEffect, GlassEffectContainer, .buttonStyle(.glass)) and guess wrong
  • produce bland, one-off views instead of polished, reusable components

You end up rewriting their SwiftUI by hand. Every time.

What SwiftForge does

SwiftForge is a tiny MCP server that gives your agent on-demand access to a hand-curated catalog of modern, compile-ready SwiftUI components. When you ask your agent to "add a glass card" or "build an onboarding flow," it pulls the real, current component instead of hallucinating one.

The value isn't the server — it's the curated catalog: every component uses current API only, is dark-mode + Dynamic Type friendly, includes a #Preview, and is reviewed for taste.

Quick start

Claude Code

claude mcp add swiftforge -- npx -y swiftforge-mcp

Cursor / Windsurf (~/.cursor/mcp.json or project .cursor/mcp.json)

{
  "mcpServers": {
    "swiftforge": {
      "command": "npx",
      "args": ["-y", "swiftforge-mcp"]
    }
  }
}

Full setup, example prompts, and troubleshooting: docs/USAGE.md.

Run from a local clone (development)
git clone <this repo> && cd swiftforge-mcp
npm install && npm run smoke
# then point your agent at: node /absolute/path/to/src/index.js

Then just talk to your agent:

"Use swiftforge to add a Liquid Glass stat card to this dashboard." "Search swiftforge for a pull-to-refresh list and wire it to my view model."

Demo app — the closed loop, proven

examples/SwiftForgeDemo is a real iOS app that pulls in all 96 catalog components and builds clean — proof that the full loop works (agent → swiftforge → a compiling iOS app):

npm run demo:gen      # (re)generate the demo project from the catalog
npm run demo:build    # headless xcodebuild for the iOS simulator
# or just open it:
open examples/SwiftForgeDemo/SwiftForgeDemo.xcodeproj

Verified ** BUILD SUCCEEDED ** on Xcode 26 / iOS 26 simulator — including the Liquid Glass components. The app live-renders a couple of components (paywall, OTP) and lists the full catalog.

Tools the agent gets

ToolWhat it does
list_categoriesSee the catalog's categories + counts
list_componentsBrowse components (optionally by category)
search_componentsFree-text search by what you're building
get_componentFetch one component's full, current SwiftUI source + usage + notes

What's inside

96 curated components across 14 categories: Buttons & Controls · Cards & Containers · Navigation & Bars · Lists & Scroll · Lists & Grids · Forms & Inputs · Charts · Effects & Liquid Glass · Feedback & Overlays · Media · Auth & Account · Animations · Layout & Scaffolding · Onboarding & Hero — including dedicated iOS 26 Liquid Glass components with graceful-fallback notes.

Every component is gated through a syntax check (scripts/validate.js, xcrun swiftc -parse) and a senior-review pass that strips deprecated API.

📖 Browse every component → docs/CATALOG.md

Roadmap

  • New components every release, kept current as iOS evolves.
  • Missing something? Open an issue — requests drive what gets added next.

The catalog here is free and MIT.

License

MIT (server). Catalog content © its authors.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y swiftforge-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-jrlingyin888-swiftforge": {
      "command": "npx",
      "args": [
        "-y",
        "swiftforge-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

swiftforge-mcpnpm

Compatible MCP Clients

io.github.jrlingyin888/swiftforge works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More