Curated, current SwiftUI components (incl. iOS 26 Liquid Glass) for your AI coding agent.
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.
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.
Coding agents (Claude Code, Cursor, Copilot) are great at logic and mediocre at SwiftUI. They:
NavigationView, .foregroundColor, ObservableObject everywhere).glassEffect, GlassEffectContainer, .buttonStyle(.glass)) and guess wrongYou end up rewriting their SwiftUI by hand. Every time.
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.
claude mcp add swiftforge -- npx -y swiftforge-mcp
~/.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.
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."
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.
| Tool | What it does |
|---|---|
list_categories | See the catalog's categories + counts |
list_components | Browse components (optionally by category) |
search_components | Free-text search by what you're building |
get_component | Fetch one component's full, current SwiftUI source + usage + notes |
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
The catalog here is free and MIT.
MIT (server). Catalog content © its authors.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y swiftforge-mcpMerge 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.
{
"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 referenceio.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.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..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.