
How to add Cupertino to Cursor
Local Apple documentation index served to AI agents over MCP — docs, HIG, Swift Evolution, packages, and sample code. Paste the config into ~/.cursor/mcp.json and restart Cursor.
Last updated June 14, 2026 · 832★ · stdio · no auth
Cursor config for Cupertino
brew tap mihaelamj/tap && brew install cupertino && cupertino setup{
"mcpServers": {
"cupertino": {
"command": "/usr/local/bin/cupertino",
"args": [
"serve"
]
}
}
}Setup steps
- 1Open Cursor → Settings → MCP → Add new MCP server (or edit ~/.cursor/mcp.json directly).
- 2Paste the Cupertino config below into the "mcpServers" object.
- 3Fill in placeholder secrets, then save.
- 4Cursor reloads MCP servers automatically — check Settings → MCP for a green status dot.
- 5Ask Cursor to use one of Cupertino's tools to confirm it's connected.
Before you start
- macOS 15+ (Sequoia)
- ~4.2 GB free disk for the full v1.3.0 bundle (compressed download ~742 MB)
- Cupertino binary installed (Homebrew, install script, or build from source)
- Run `cupertino setup` to download the pre-built databases before serving
- Building from source additionally requires Swift 6.3+ and Xcode 26+
What Cupertino can do in Cursor
searchUnified full-text search across every indexed source. Parameters: query (required), source, framework, language, include_archive, limit, and min_ios/min_macos/min_tvos/min_watchos/min_visionos/min_swift platform filters (AND-combined).
list_frameworksList the available Apple frameworks in the indexed corpus.
list_documentsList documents within the corpus or a given scope.
list_childrenList the child pages/documents of a given documentation node.
read_documentRead a full document by URI. Pass format=json for agents or format=markdown for humans.
list_samplesList indexed Apple sample-code projects.
read_sampleRead a sample-code project; pass format=json for a typed project payload.
read_sample_fileRead an individual file from a sample-code project; pass format=json for a typed file payload.
Security
Runs entirely locally; the served databases ship read-only (rollback journal mode) so no query, read, or serve connection can write or delete rows. No API keys or credentials required. Requires macOS 15+ and ~4.2 GB free disk for the full bundle. MCP JSON-RPC wire traffic is written to stderr (stdout carries the protocol). Intended for educational and development use; respect Apple's Terms of Service when using their documentation.
Cupertino + Cursor FAQ
Where is the Cursor config file?
Cursor reads MCP servers from ~/.cursor/mcp.json. Paste the Cupertino config there under the "mcpServers" key and restart the client.
Is Cupertino safe to use with Cursor?
Runs entirely locally; the served databases ship read-only (rollback journal mode) so no query, read, or serve connection can write or delete rows. No API keys or credentials required. Requires macOS 15+ and ~4.2 GB free disk for the full bundle. MCP JSON-RPC wire traffic is written to stderr (stdout carries the protocol). Intended for educational and development use; respect Apple's Terms of Service when using their documentation.
Does Cupertino need an API key or internet access?
No. It serves a local SQLite corpus over stdio with no API key. After a one-time `cupertino setup` download, search and reads work fully offline.
How do I add it to Claude Code?
Run `claude mcp add cupertino --scope user -- $(which cupertino)`, which registers Cupertino globally for all your projects. For Claude Desktop, Cursor, VS Code, Zed, Windsurf, Codex, and others, copy-paste config is in docs/mcp-clients.md.
What platforms does it run on?
macOS 15+ (Sequoia). The full v1.3.0 bundle needs ~4.2 GB free disk (~742 MB compressed download). A Linux port is on the roadmap.