Apple Developer Documentation MCP server

Provides seamless access to Apple Developer Documentation with smart search capabilities and wildcard pattern support for iOS, macOS, SwiftUI, and UIKit development, featuring priority-based framework searching and intelligent caching for efficient API discovery and symbol documentation retrieval.
Back to servers
Setup instructions
Provider
MightyDillah
Release date
Jun 28, 2025
Language
Python
Stats
331 stars

The Apple Doc MCP server provides seamless access to Apple's Developer Documentation directly within your AI coding assistant. It allows you to search, browse, and retrieve up-to-date Apple documentation without leaving your development environment.

Installation

Prerequisites

  • Node.js 18+ installed on your system
  • npm (comes with Node.js)

Step 1: Clone and Build

  1. Clone the repository:

    git clone https://github.com/MightyDillah/apple-doc-mcp.git
    cd apple-doc-mcp
    
  2. Install dependencies:

    npm install
    
  3. Build the server:

    npm run build
    

Step 2: Configure Your AI Assistant

  • Claude Desktop: Edit ~/.config/claude/claude_desktop_config.json
  • Cursor: Settings (Cmd/Ctrl + ,) → Extensions → MCP
  • Continue.dev: Edit ~/.continue/config.json
  • VS Code (Claude): Settings → MCP Servers
{
  "mcpServers": {
    "apple-doc-mcp": {
      "command": "node",
      "args": ["/path/to/apple-doc-mcp/dist/index.js"]
    }
  }
}

Important: Replace /path/to/apple-doc-mcp with the actual path to your cloned repository.

Tip: To get the absolute path on macOS/Linux, run pwd inside the apple-doc-mcp folder.

Step 3: Restart & Test

  1. Restart your AI assistant
  2. Try: "List available Apple technologies"
  3. You should see the new tools available
  4. The server will automatically notify you if updates are available on startup

Troubleshooting Installation

"0 tools" or Server Won't Start

  • Check Node.js version: Ensure you have Node.js 18+ installed (node --version)
  • Verify build completed: Make sure dist/index.js exists after running npm run build
  • Use absolute paths: Relative paths in MCP config often fail
  • Check config syntax: Ensure your JSON configuration is valid
  • Restart completely: Close and reopen your AI assistant after config changes

Test the Server Directly

# Navigate to your project folder
cd /path/to/apple-doc-mcp

# Test the server starts without errors
node dist/index.js

You should see: Apple Developer Documentation MCP server running on stdio

Common Path Issues

# macOS/Linux - Get absolute path
pwd
# Example output: /Users/yourname/projects/apple-doc-mcp

# Windows
echo %cd%
# Example output: C:\Users\yourname\projects\apple-doc-mcp

How to Use

Once configured, just talk naturally to your AI assistant. Here are examples:

Browse Available Technologies

"Use apple-doc-mcp to list all current Apple frameworks"
"Get the latest available Apple technologies from Apple's docs"
"Search Apple documentation for all available frameworks"
"List Apple Container technologies and frameworks"
"Browse Apple Containerization documentation frameworks"

Explore a Framework

"Use apple-doc-mcp to browse SwiftUI framework structure"
"Get current UIKit topics from Apple documentation"
"Search Apple docs for Foundation framework details"
"Explore Apple Container framework details"
"Get Apple Containerization framework structure"

Search for Specific APIs

"Search Apple's SwiftUI docs for drag and drop APIs"
"Use apple-doc-mcp to find RPBroadcast* classes in ReplayKit"
"Look up current *View* symbols across Apple frameworks"
"Find all *Controller classes in UIKit using Apple docs"
"Search Apple Container docs for Image* APIs"
"Find Archive* symbols in Apple Containerization docs"

Get Detailed Documentation

"Get the latest SwiftUI View protocol docs from Apple"
"Use apple-doc-mcp to look up UIViewController documentation"
"Search Apple's current docs for NSURLSession details"
"Get Apple Container documentation for ContainerImagesService"
"Look up ContainerizationArchive docs from Apple"

Available Tools

Core Apple Developer Documentation

list_technologies

Browse all available Apple frameworks and technologies.

get_documentation

Get detailed documentation for symbols or frameworks (automatically detects type).

  • path (required): Documentation path (e.g., "documentation/SwiftUI/View") or framework name (e.g., "SwiftUI")

Examples:

{"path": "SwiftUI"}
{"path": "documentation/SwiftUI/View"}
{"path": "Foundation"}

search_symbols

Search for symbols across Apple frameworks with advanced filtering.

  • query (required): Search query with wildcard support
  • framework (optional): Search within specific framework
  • symbolType (optional): Filter by symbol type (class, protocol, struct, etc.)
  • platform (optional): Filter by platform (iOS, macOS, etc.)
  • maxResults (optional): Maximum results (default: 20)

Examples:

{"query": "RPBroadcast*"}
{"query": "*Controller", "framework": "UIKit"}
{"query": "*View*", "platform": "iOS", "maxResults": 5}

Apple Container Documentation

list_container_technologies

Browse all available Apple Container frameworks and technologies.

get_container_documentation

Get detailed documentation for Apple Container symbols or frameworks.

  • path (required): Container documentation path (e.g., "documentation/ContainerImagesService") or framework name

Examples:

{"path": "ContainerImagesService"}
{"path": "documentation/ContainerImagesService/ImageAPI"}

search_container_symbols

Search for symbols across Apple Container frameworks with advanced filtering.

  • query (required): Search query with wildcard support
  • framework (optional): Search within specific Container framework
  • symbolType (optional): Filter by symbol type (class, protocol, struct, etc.)
  • platform (optional): Filter by platform (iOS, macOS, etc.)
  • maxResults (optional): Maximum results (default: 20)

Examples:

{"query": "Container*"}
{"query": "*Service", "framework": "ContainerImagesService"}

Apple Containerization Documentation

list_containerization_technologies

Browse all available Apple Containerization frameworks and technologies.

get_containerization_documentation

Get detailed documentation for Apple Containerization symbols or frameworks.

  • path (required): Containerization documentation path (e.g., "documentation/ContainerizationArchive") or framework name

Examples:

{"path": "ContainerizationArchive"}
{"path": "documentation/ContainerizationArchive/ArchiveAPI"}

search_containerization_symbols

Search for symbols across Apple Containerization frameworks with advanced filtering.

  • query (required): Search query with wildcard support
  • framework (optional): Search within specific Containerization framework
  • symbolType (optional): Filter by symbol type (class, protocol, struct, etc.)
  • platform (optional): Filter by platform (iOS, macOS, etc.)
  • maxResults (optional): Maximum results (default: 20)

Examples:

{"query": "Archive*"}
{"query": "*Service", "framework": "ContainerizationArchive"}

Utility Tools

check_updates

Check for available updates from the git repository.

  • No parameters required
  • Shows current branch status, available updates, and update instructions

Troubleshooting Usage

No Results Found

  • Try broader search terms
  • Use wildcard patterns: "*View*" instead of "View"
  • Remove filters to expand search scope

Performance Issues

  • First search may be slower (builds cache)
  • Subsequent searches are much faster
  • Reduce maxResults for faster responses

How to install this MCP server

For Claude Code

To add this MCP server to Claude Code, run this command in your terminal:

claude mcp add-json "apple-doc-mcp" '{"command":"node","args":["/path/to/apple-doc-mcp/dist/index.js"]}'

See the official Claude Code MCP documentation for more details.

For Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "apple-doc-mcp": {
            "command": "node",
            "args": [
                "/path/to/apple-doc-mcp/dist/index.js"
            ]
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Add this to your configuration file:

{
    "mcpServers": {
        "apple-doc-mcp": {
            "command": "node",
            "args": [
                "/path/to/apple-doc-mcp/dist/index.js"
            ]
        }
    }
}

3. Restart Claude Desktop for the changes to take effect

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later