Apple Doc MCP

Browse, search and read Apple Developer Documentation for SwiftUI, UIKit and other frameworks

By MightyDillah (individual) TypeScript Local · stdio Developer tools

56 popularity score ★ 630 ↓ 577/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add apple-doc -- npx apple-doc-mcp-server@latest
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "apple-doc": {
      "command": "npx",
      "args": [
        "apple-doc-mcp-server@latest"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "apple-doc": {
      "command": "npx",
      "args": [
        "apple-doc-mcp-server@latest"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "apple-doc": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "apple-doc-mcp-server@latest"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.apple-doc]
command = "npx"
args = ["apple-doc-mcp-server@latest"]
Gemini CLITerminal
gemini mcp add --scope user apple-doc npx -- apple-doc-mcp-server@latest
Local (from source)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

FirstTerminal
git clone https://github.com/MightyDillah/apple-doc-mcp.git
cd apple-doc-mcp
yarn install
yarn build
Claude CodeTerminal
claude mcp add apple-doc -- node '<ABSOLUTE_PATH_TO_CLONE>/dist/index.js'
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "apple-doc": {
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/dist/index.js"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "apple-doc": {
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/dist/index.js"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "apple-doc": {
      "type": "stdio",
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/dist/index.js"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.apple-doc]
command = "node"
args = ["<ABSOLUTE_PATH_TO_CLONE>/dist/index.js"]
Gemini CLITerminal
gemini mcp add --scope user apple-doc node -- '<ABSOLUTE_PATH_TO_CLONE>/dist/index.js'

What it does

Apple Doc MCP is a local stdio server that pulls Apple's developer documentation into a coding assistant. It works framework by framework: the assistant first lists Apple's technologies, picks one such as SwiftUI, and then searches symbols and opens the full page for a class, protocol or article inside that framework.

Search puts matching symbols first and lists articles and guides in their own section. An exact name like GridItem resolves straight to its symbol, and wildcard patterns with * and ? match partial names. Results can be narrowed by platform (iOS, macOS and so on) and by symbol kind.

The server fetches JSON from developer.apple.com's public documentation data endpoint, the same data the documentation website loads, with a 15-second timeout per request. Responses are kept in memory, and framework and symbol data are also written to a .cache folder inside the package's own install directory rather than your project (src/apple-client/cache/file-cache.ts). The code has six tools; search returns 20 results by default, set with maxResults, and the technology list pages 25 entries at a time, up to 100 (src/server/tools.ts).

What it needs

RuntimeNode.js

Node.js with npx (the package is a Node ES module; no minimum version is stated). Network access to developer.apple.com. No Apple account or API key. Building from source needs Yarn.

Limits

A technology must be chosen with choose_technology before search_symbols or get_documentation will work, and the choice applies to all following lookups in that session. It relies on an unpublished Apple data endpoint (developer.apple.com/tutorials/data) that Apple can change without notice. search_symbols returns 20 results unless maxResults is set; discover_technologies returns 25 per page, at most 100.

Who it suits

Suits iOS and macOS developers who want their assistant to check current Apple API signatures and docs rather than guess them, with nothing to sign in to. It only reads public documentation, so it is a low-commitment install. Because every search is scoped to one framework at a time, work that spans several frameworks needs repeated choose_technology calls; pick something else if you need documentation beyond Apple's own.

Tools 6

discover_technologies
List Apple frameworks and technologies, with an optional keyword filter and paging
choose_technology
Set the framework that later searches and lookups are scoped to
current_technology
Show which framework is selected and how to switch
search_symbols
Search the selected framework by keyword or wildcard, symbols first, filterable by platform and kind
get_documentation
Fetch the full documentation for a symbol name or documentation path
get_version
Report the server's version

Similar servers