
Apple Docs MCP Server
Author: kimsungwhee
Description: MCP (Model Context Protocol) server that provides AI assistants (Claude Desktop/Claude Code, Cursor, VS Code, Windsurf, Zed, Cline, Amazon Q Developer CLI) access to Apple Developer Documentation and bundled WWDC (2014–2025) data. Supports smart search and deep doc retrieval (Apple JSON APIs) across Swift/Objective‑C frameworks (SwiftUI, UIKit, Foundation, etc.), technology catalogs/overviews, framework symbol search, related/similar API discovery, batch reference resolution, platform compatibility analysis, documentation updates tracking, sample code browsing, and WWDC video search/details (transcripts/resources).
Stars: 1.2k
Forks: 48
License: MIT License
Category: Specialized
Overview
Installation
"args": ["-y", "@kimsungwhee/apple-docs-mcp@latest"]claude mcp add apple-docs -- npx -y @kimsungwhee/apple-docs-mcp@latest{
"mcpServers": {
"apple-docs": {
"command": "npx",
"args": ["-y", "@kimsungwhee/apple-docs-mcp"]
}
}
}{
"mcp": {
"servers": {
"apple-docs": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@kimsungwhee/apple-docs-mcp"]
}
}
}
}{
"mcpServers": {
"apple-docs": {
"command": "npx",
"args": ["-y", "@kimsungwhee/apple-docs-mcp"]
}
}
}{
"context_servers": {
"Apple Docs": {
"command": {
"path": "npx",
"args": ["-y", "@kimsungwhee/apple-docs-mcp"]
},
"settings": {}
}
}
}{
"mcpServers": {
"apple-docs": {
"command": "npx",
"args": ["-y", "@kimsungwhee/apple-docs-mcp"],
"disabled": false,
"autoApprove": []
}
}
}{
"mcpServers": {
"apple-docs": {
"command": "npx",
"args": ["-y", "@kimsungwhee/apple-docs-mcp"]
}
}
}{
"mcpServers": {
"apple-docs": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@kimsungwhee/apple-docs-mcp"],
"disabled": false,
"autoApprove": []
}
}
}pnpm add -g @kimsungwhee/apple-docs-mcp
npm install -g @kimsungwhee/apple-docs-mcpnpx @kimsungwhee/apple-docs-mcp --helpgit clone https://github.com/kimsungwhee/apple-docs-mcp.git
cd apple-docs-mcp
pnpm install && pnpm run build
npm install && npm run buildFAQs
What are the 14 tools available in Apple Docs MCP Server, and what does each one do?
The content mentions 14 specialized tools but only names nine explicitly: **search_apple_docs** and **get_apple_doc_content** query live Apple documentation, **search_framework_symbols** and **get_related_apis** perform exact API lookups and relationship mapping, **search_wwdc_videos** and **get_wwdc_video_details** search and retrieve details from bundled WWDC transcripts, **get_platform_compatibility** checks version support and deprecation status across Apple platforms, **resolve_references_batch** handles bulk API lookups in a single request, **get_documentation_updates** tracks WWDC announcements and release notes, **get_sample_code** browses Apple sample projects by keyword and framework, and **list_technologies** catalogs Apple's technology areas with category and language filtering. The remaining five tools are not named in the article. For the complete toolset with detailed parameters and return values, consult the official repository README or the npm package documentation, which provide comprehensive API specifications for all fourteen tools including usage examples and expected response formats.
How do I set up Apple Docs MCP Server with Cursor or VS Code for Apple platform development?
For Cursor, add the Apple Docs MCP Server configuration to `~/.cursor/mcp.json` using the same NPX command structure shown for Claude Desktop, wrapping the command with `cmd /c` on Windows. For VS Code, reference the VS Code MCP config file and use identical NPX arguments. Both editors require Node.js 18 or higher installed globally. After adding the configuration, restart the editor to load the server, then verify the connection by checking the MCP status panel or attempting a tool call like searching Apple documentation. If you use Node Version Manager, ensure NPX is accessible system-wide since GUI editors may not inherit shell PATH variables. Test the setup by asking your assistant to search for a specific SwiftUI API or check platform compatibility for a framework to confirm the 14 tools are responding correctly before integrating it into production workflows.
How do I connect a remote MCP server to Claude Desktop?
Claude Desktop connects to remote MCP servers through two methods depending on your server's authentication and deployment model. For most remote deployments, use the **mcp-remote** proxy tool, which runs locally and forwards requests to your server's SSE endpoint. Install mcp-remote globally via npm or invoke it through npx in your Claude Desktop config JSON under `mcpServers`, passing your remote server's SSE URL as an argument. After saving the config and restarting Claude Desktop, complete any OAuth prompts that appear in your browser, and the server's tools will surface in the bottom-right tools menu. Alternatively, Claude Desktop and Claude Web support custom connectors through Settings, where you paste your remote MCP server's SSE URL directly, configure optional OAuth credentials, and set permission levels. This custom connector path works across Free, Pro, and Enterprise plans but limits free accounts to one connector. Provider-specific implementations like Workato expose token-based Remote MCP URLs through their dashboards, while dbt servers use downloadable mcpb files for config import. If tools do not appear after configuration, fully quit and reopen Claude Desktop rather than reloading, verify your SSE endpoint supports OAuth where required, and confirm the MCP indicator appears in the chat input area.
How do I connect multiple MCP servers to a single application?
To connect multiple MCP servers to a single application, add separate server entries in your client's configuration file. Each MCP server requires its own command, arguments, and optional environment variables within the same config JSON. For example, in Claude Desktop you would define multiple servers under the `mcpServers` object: one entry for Apple Docs MCP using `npx -y @kimsungwhee/apple-docs-mcp@latest`, another for Context7 MCP with its respective command, and additional entries for any other servers. Each server runs as an independent process that the client manages concurrently. Most MCP clients including Claude Desktop, Cursor, and VS Code follow this multi-server pattern natively, reading all defined servers at startup and exposing their combined tool sets through one interface. MCP Gateways provide an alternative by federating tools from multiple backend servers into a single endpoint, which simplifies access control and lets you mix tools selectively. Multi-MCP proxy servers offer dynamic routing between backend servers through a JSON configuration file, requiring only one connection from your client. The tradeoff is deployment complexity versus granular control: direct multi-server config in your client is simpler to debug, while gateways and proxies add infrastructure but centralize management when coordinating many servers across teams.
What are the differences between Streamable HTTP and SSE for MCP connections?
Streamable HTTP is the modern, preferred transport for MCP (Model Context Protocol) connections, using a single HTTP endpoint for both requests and responses or streaming, while SSE is a legacy transport requiring two separate endpoints: one for client requests via POST and another for server events via a persistent GET or SSE stream. Streamable HTTP consolidates traffic to one URL path, handling HTTP POST for client requests and returning responses via either standard HTTP response or optional SSE streaming on the same connection, which enables request-response interactions plus server-initiated streaming without additional channels. SSE, by contrast, uses HTTP GET to a dedicated events endpoint for a persistent SSE stream from server to client and a separate HTTP POST to a message endpoint for client requests, with responses routed back through the SSE stream. This dual-channel architecture increases complexity and connection overhead, particularly for bidirectional scenarios where MCP servers need to handle multiple concurrent clients. Streamable HTTP is recommended for new MCP servers because it offers backwards compatibility with SSE clients while simplifying deployment, supporting both basic interactions and advanced streaming or notifications through standard HTTP mechanisms, whereas SSE remains efficient only for pure server-push use cases like live updates but lacks native client-to-server communication over the stream itself.
How do I configure mod dependencies on an MCP server?
The question appears to conflate two distinct "MCP" concepts: Model Context Protocol servers (like Apple Docs MCP Server in the article) and Minecraft Coder Pack for game modding. For Model Context Protocol servers, there is no standard "mod dependency" system—MCP servers are standalone Node.js packages that expose tools to AI assistants, not interdependent mod components. Each MCP server runs independently via NPX or Node commands, and you configure multiple servers by adding separate JSON entries in your MCP client config file. For example, if you need Apple documentation plus another capability, you would add two distinct `mcpServers` blocks, each invoking its own NPX command or Node script. Dependencies like Node.js version requirements (typically 18+) are handled at the runtime level, not through a dependency graph between servers. If you meant Minecraft Coder Pack modding, that involves Gradle build files for Fabric or `mods.toml` for Forge to declare inter-mod dependencies, JAR placement in development directories, and manual compatibility testing—entirely separate from the protocol discussed in the article.