MCP Directory

Cupertino

Local Apple documentation index served to AI agents over MCP — docs, HIG, Swift Evolution, packages, and sample code.

Unverified
stdio (local)
No auth
Swift

Add to your client

Copy the config for your MCP client and paste it into its config file.

Install / run
brew tap mihaelamj/tap && brew install cupertino && cupertino setup

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "cupertino": {
      "command": "/usr/local/bin/cupertino",
      "args": [
        "serve"
      ]
    }
  }
}

Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf

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+

About Cupertino

Cupertino indexes Apple's documentation universe — Apple Developer Documentation (~351,505 pages across 420+ frameworks), Swift Evolution (~429 proposals), Swift.org (~501 pages), the Swift Book, Human Interface Guidelines, Apple Archive legacy guides (~368 pages), Swift package metadata (185 packages), and Apple sample code (619 projects, 18,000+ Swift files) — into local SQLite FTS5 databases. It serves this corpus to AI agents like Claude, ChatGPT, Codex, Cursor, and Copilot over the Model Context Protocol via cupertino serve. Search uses field-weighted BM25 (BM25F) over a 9-column index with AST-extracted Swift symbols, Porter stemming, reciprocal rank fusion across sources, framework/platform-availability filtering, and sub-100 ms queries. The same engine also backs a human-friendly terminal CLI.

Tools & capabilities (14)

search

Unified 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_frameworks

List the available Apple frameworks in the indexed corpus.

list_documents

List documents within the corpus or a given scope.

list_children

List the child pages/documents of a given documentation node.

read_document

Read a full document by URI. Pass format=json for agents or format=markdown for humans.

list_samples

List indexed Apple sample-code projects.

read_sample

Read a sample-code project; pass format=json for a typed project payload.

read_sample_file

Read an individual file from a sample-code project; pass format=json for a typed file payload.

search_symbols

AST-powered search over extracted Swift symbols; pass format=json for typed symbol rows.

search_property_wrappers

AST-powered search for Swift property wrappers.

search_concurrency

AST-powered search for Swift concurrency constructs (async/await, actors, Task, etc.).

search_conformances

AST-powered search for protocol conformances.

search_generics

AST-powered search for generic declarations.

get_inheritance

Retrieve title-bearing inheritance trees for a type; pass format=json for typed output.

What this server can do

Cupertino provides tools for these capabilities — tap one to see every MCP server that does the same:

When to use it

  • Give an AI coding agent accurate, up-to-date Apple API documentation to prevent hallucinated SwiftUI/UIKit/Foundation APIs
  • Work with full Apple documentation offline, without internet access
  • Look up Swift Evolution proposals, HIG guidance, and framework symbols deterministically from the same query
  • Search Apple sample code and read project files to ground implementation suggestions
  • Query Swift symbols, property wrappers, concurrency constructs, conformances, generics, and inheritance via AST-aware tools

Security notes

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 FAQ

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.

How big is the corpus?

The v1.3.0 bundle carries 351,505 documents / 240,543 symbols across 420+ frameworks in apple-documentation.db, plus separate databases for the HIG, Apple Archive, Swift Evolution, Swift.org, the Swift Book, Swift packages (185), and Apple sample code (619 projects).

Alternatives to Cupertino

Compare all alternatives →

Microsoft's official browser-automation MCP using Playwright's accessibility tree (no vision model).

Featured
Verified
stdio (local)
No auth
TypeScript
12 tools
Updated 13 days agoRepo

Up-to-date, version-specific library documentation injected into your coding agent.

Verified
stdio (local)
API key
TypeScript
2 tools
Updated 17 days agoRepo

LSP-powered coding agent toolkit: semantic symbol search, references and structural edits.

Verified
stdio (local)
No auth
Python
11 tools
Updated 15 days agoRepo