by mihaelamj
A local Apple Documentation crawler and MCP server. Written in Swift.
# Add to your Claude Code skills
git clone https://github.com/mihaelamj/cupertinoGuides for using mcp servers skills like cupertino.
Last scanned: 5/9/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-09T06:15:54.205Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}cupertino is an open-source mcp servers skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by mihaelamj. A local Apple Documentation crawler and MCP server. Written in Swift. It has 847 GitHub stars.
Yes. cupertino passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/mihaelamj/cupertino" and add it to your Claude Code skills directory (see the Installation section above).
cupertino is primarily written in Swift. It is open-source under mihaelamj on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other MCP Servers skills you can browse and compare side by side. Open the MCP Servers category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh cupertino against similar tools.
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
Apple documentation CLI for humans and MCP server for AI agents.
Cupertino is a CLI for human developers and an MCP server for AI agents. Both surfaces use the same local catalog of Apple documentation, Swift packages, sample code, Human Interface Guidelines, Swift Evolution proposals, and Swift.org pages.

Latest: v1.4.1 (2026-06-24): refreshed database bundle. A full re-crawl + clean rebuild grew the Apple documentation slice to 363,562 documents / 308,118 symbols across 417 frameworks, now including post-WWDC26 iOS 27 content, alongside the HIG, archive, Swift Evolution, Swift.org, Swift Book, package, and sample-code DBs (8 per-source databases, read-only rollback mode). Release notes · CHANGELOG · Roadmap · live dashboard at https://cupertino.aleahim.com/. Follow updates on X: @cupertinomcp.
If Cupertino is useful to your work with Apple docs or AI agents, consider sponsoring its development. Sponsorship helps keep releases, documentation, and the Apple/Linux tooling around it moving.
Cupertino is a local, structured documentation system for Apple platforms. It:
search, read, doctor, and setup commandsWhy build this:
Requires macOS 15+ (Sequoia) and ~4.2 GB free disk for the full v1.4.0 bundle (compressed download ~876 MB). Building from source additionally needs Swift 6.3+ and Xcode 26+ (use xcrun swift build, not bare swift).
Homebrew (recommended): installs the signed, notarized universal binary and lets you upgrade or uninstall it with brew:
brew tap mihaelamj/tap
brew install cupertino
cupertino setup # download the pre-built databases
One-command install (alternative): downloads the binary to /usr/local/bin and fetches the databases in one step:
bash <(curl -sSL https://raw.githubusercontent.com/mihaelamj/cupertino/main/install.sh)
Build from source:
git clone https://github.com/mihaelamj/cupertino.git
cd cupertino
make build # release binary (or: cd Packages && swift build -c release)
sudo make install # install to /usr/local/bin
cupertino setup # download the pre-built databases
The Homebrew path on Apple Silicon installs to
/opt/homebrew/bin/cupertino; Intel and manual installs use/usr/local/bin/cupertino. Runwhich cupertinoto confirm your path. See docs/DEPLOYMENT.md for distribution and CI/CD notes.
cupertino setup # download pre-built databases (~30s)
cupertino search "NavigationStack" --limit 5 # search from the terminal
cupertino read "apple-docs://swiftui/navigationstack" --source apple-docs
cupertino doctor # check local database health
cupertino serve # start the MCP server (also the default command)
Prefer to build the index yourself instead of downloading it? cupertino save --remote streams the corpus from GitHub and rebuilds locally, and cupertino fetch --source <name> crawls a single source from the original site. See docs/commands/ for every command, flag, and the slower self-hosted paths.
A terminal search prints a human-friendly result with scores and follow-up commands:
$ cupertino search "NavigationStack" --format text --limit 2
Question: NavigationStack
Searched: apple-docs, samples, swift-evolution, swift-org, swift-book, packages
======================================================================
[1] NavigationStack • source: apple-docs • score: 0.0324
apple-docs://swiftui/navigationstack
----------------------------------------------------------------------
A view that displays a root view and enables navigation to additional views.
▶ Read full: cupertino read "apple-docs://swiftui/navigationstack" --source apple-docs
💡 Narrow with --source <name>: apple-docs, samples, hig, apple-archive, swift-evolution, swift-org, swift-book, packages
💡 Filter by platform: --platform iOS --min-version 16.0 (or macOS / tvOS / watchOS / visionOS)
The same query over MCP returns a structured tool result an AI client can read, cite, and follow with read_document:
{
"name": "search",
"arguments": { "query": "NavigationStack", "source": "apple-docs", "limit": 2 }
}
Demo: Watch on YouTube.
Claude Code registers Cupertino globally with one command:
claude mcp add cupertino --scope user -- $(which cupertino)
Claude Desktop, OpenAI Codex, Cursor, VS Code (Copilot), GitHub Copilot for Xcode, Zed, Windsurf, and opencode are all covered with copy-paste config in docs/mcp-clients.md. Cupertino can also run as a stateless CLI Agent Skill with no server: see docs/agent-skill.md.
| Framework | Documents |
|---|---|
| Kernel | 39,396 |
| Matter | 24,320 |
| Swift | 17,466 |
| AppKit | 12,443 |
| Foundation | 12,423 |
| UIKit | 11,158 |
| Accelerate | 9,114 |
| SwiftUI | 7,062 |
| ... | ... |
| 417 frameworks | 363,562 |
packages.db ships 185 packages with full source, stars, licenses, deployment-target platforms, and authored swift-tools-version--source apple-archiveuri, source, framework, language, title, content, summary, symbols, symbol_components). Title 10×, AST-extracted symbols 5×, summary 3×, framework 2×, CamelCase-split components 1.5×.symbols column, so a query like Task ranks the Swift Task struct above prose mentions of "task".cupertino search (and the Search.SmartQuery API) fans the question across every source in parallel and fuses per-source rankings via reciprocal rank fusion (RRF, k=60, Cormack/Clarke/Büttcher 2009); one dead source never takes the whole query down.apple-docs://{framework}/{page}, swift-evolution://{proposal-id}, hig://{category}/{page}search: unified full-text search across every indexed source. Parameters: query (required), source, framework, language, include_archive, limit, and the min_ios/min_macos/min_tvos/min_watchos/min_visionos/min_swift platform filters (AND-combined; malformed values are rejected at the boundary with a clear error frame). Replaces the pre-#239 per-source tools.list_frameworks, list_documents, list_children, read_document (format: json for agents, markdown for humans)