Apple Dev MCP Server
Fetches live Apple Developer Documentation from developer.apple.com, providing access to framework documentation, symbol declarations, and availability information for Apple platforms.
Checks Swift Evolution proposal status to verify availability of Swift language features.
Analyzes Xcode build logs and provides intelligent fix-it suggestions for common build errors.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Apple Dev MCP Serverfetch documentation for NavigationStack"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Apple Dev MCP Server π
A Model Context Protocol (MCP) server for Apple development assistance. Provides tools for fetching live Apple documentation directly from developer.apple.com, analyzing Xcode build errors, and checking Swift Evolution proposal status.
β¨ Features
π΄ Live Documentation - Fetches real-time documentation from Apple's official API
π§ Xcode Error Analysis - Intelligent parsing and fix suggestions for build errors
π Swift Evolution Tracking - Check proposal status for Swift language features
π§ Tools
Tool | Description |
| Fetches live Apple Developer Documentation from developer.apple.com |
| Analyzes Xcode build logs and provides fix-it suggestions |
| Checks Swift Evolution proposal status for language features |
Related MCP server: Apple Doc MCP
π¦ Installation
Via npm (Recommended)
npm install -g apple-dev-mcp-serverVia npx (No install required)
npx apple-dev-mcp-serverFrom Source
git clone https://github.com/erdncyz/apple-dev-mcp-server.git
cd apple-dev-mcp-server
npm install
npm run buildConfiguration
For Claude Desktop
Add to your ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"apple-dev": {
"command": "node",
"args": ["/Users/YOUR_USERNAME/Desktop/apple-dev-mcp-server/dist/index.js"]
}
}
}For VS Code with GitHub Copilot
Add to your VS Code settings (.vscode/settings.json or user settings):
{
"github.copilot.chat.mcpServers": {
"apple-dev": {
"command": "node",
"args": ["${userHome}/Desktop/apple-dev-mcp-server/dist/index.js"]
}
}
}For Other MCP Clients
The server uses stdio transport and can be integrated with any MCP-compatible client:
node /path/to/apple-dev-mcp-server/dist/index.jsUsage Examples
Fetch Apple Documentation
Use the fetch_latest_apple_docs tool to get documentation for NavigationStackAnalyze Build Errors
Use xcode_diagnostic_analyzer to analyze this error:
"cannot find type 'NavigationStack' in scope"Check Swift Evolution
Use swift_evolution_check to verify if 'nonisolated(unsafe)' is available in Swift 5.10π΄ Live Documentation API
This MCP server uses Apple's undocumented JSON API to fetch real-time documentation:
https://developer.apple.com/tutorials/data/documentation/{framework}/{symbol}.jsonSupported Frameworks
SwiftUI, UIKit, Foundation, Observation, SwiftData, Combine, RealityKit, ARKit, CoreData, CoreML, MapKit, CloudKit, HealthKit, StoreKit, AVFoundation, and more.
Example Response
# π Apple Developer Documentation: NavigationStack
> β
Live documentation from developer.apple.com
**Type:** Structure
**Framework:** SwiftUI
**Availability:** iOS 16.0+, iPadOS 16.0+, macOS 13.0+, tvOS 16.0+, visionOS 1.0+, watchOS 9.0+
## Declaration
@MainActor struct NavigationStack<Data, Root> where Root : View
## Overview
A view that displays a root view and enables you to present additional views...Development
# Watch mode for development
npm run dev
# Build for production
npm run build
# Run the server
npm startProject Structure
apple-dev-mcp-server/
βββ src/
β βββ index.ts # Main MCP server entry point
β βββ tools/
β βββ fetch-apple-docs.ts # Live documentation fetcher
β βββ xcode-diagnostic-analyzer.ts # Build error analyzer
β βββ swift-evolution-check.ts # Swift Evolution checker
βββ dist/ # Compiled JavaScript
βββ package.json
βββ tsconfig.json
βββ README.mdRequirements
Node.js >= 18.0.0
npm or yarn
π License
MIT
π Links
Note: This is a community tool and is not affiliated with or endorsed by Apple Inc.
Available Tools
3 toolsfetch_latest_apple_docsA
Fetches the latest Apple Developer Documentation for a specific API, framework, or symbol.
Examples:
"NavigationStack" - SwiftUI navigation
"SwiftData" - Data persistence framework
"RealityKit" - AR/VR framework
"async/await" - Swift concurrency
Returns official documentation summary, code examples, and availability information.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The API, framework, class, or symbol to search for (e.g., 'NavigationStack', 'SwiftData', '@Observable') | |
| framework | No | Optional: Specific framework to search within (e.g., 'SwiftUI', 'Foundation', 'UIKit') | |
| includeExamples | No | Whether to include code examples (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It states what is returned (documentation summary, code examples, availability) but does not mention side effects, authorization needs, or any limitations. The tool is likely read-only but that is not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a single sentence followed by clear examples. Every part serves a purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, expected input examples, and return content. Given the tool's low complexity (3 params, no output schema) and lack of annotations, this is sufficient for an agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds value by providing example values and clarifying usage contexts, which helps the agent understand how to use parameters effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('fetches the latest Apple Developer Documentation') and the resource ('specific API, framework, or symbol'). Examples illustrate the scope. The tool is distinct from siblings like xcode_diagnostic_analyzer and swift_evolution_check.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through examples but no explicit guidance on when to use this tool vs alternatives or when not to use it. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
swift_evolution_checkA
Checks the status of Swift language features against Swift Evolution proposals.
Use this to verify:
If a feature is available in a specific Swift version
The proposal number and status (implemented, in review, accepted)
Required compiler flags or availability annotations
Migration guidance from older syntax
Examples: 'nonisolated(unsafe)', 'typed throws', 'parameter packs', 'macros'
| Name | Required | Description | Default |
|---|---|---|---|
| feature | Yes | The Swift feature or syntax to check (e.g., 'nonisolated(unsafe)', 'typed throws') | |
| swiftVersion | No | Optional: Target Swift version to check compatibility (e.g., '5.9', '6.0') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It describes what information is returned (proposal status, compiler flags, migration guidance) but does not disclose whether the operation is read-only, requires authentication, or has any side effects. This is adequate but not thorough for a check tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with a clear first sentence stating purpose, followed by bullet points. It is well-structured and front-loaded, though it could be slightly tighter by removing the 'Use this to verify:' preamble.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters, no output schema, and no annotations, the description provides sufficient information to understand tool behavior and results. It covers what the tool checks and what it returns (proposal number, status, etc.), but lacks error handling details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds value beyond schema by providing concrete examples of features ('nonisolated(unsafe)', 'typed throws') and listing uses like 'Required compiler flags or availability annotations', which help clarify parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Checks' and resource 'status of Swift language features against Swift Evolution proposals'. It lists specific verifications (availability, proposal status, compiler flags, migration guidance) and distinguishes from siblings (fetch_latest_apple_docs, xcode_diagnostic_analyzer) by focusing on Swift Evolution proposals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Use this to verify:' followed by four bullet points describing when to use the tool. It provides clear context but does not include when not to use or direct comparisons to sibling tools, though the purpose differentiation is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
xcode_diagnostic_analyzerA
Analyzes Xcode build logs and error messages, providing:
Error classification and explanation
Fix-it suggestions matching Apple's recommendations
Related documentation links
Common solutions for the specific error
Supports Swift compiler errors, linker errors, and build system errors.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Optional: Additional context about the project (Swift version, target platform) | |
| buildLog | Yes | The Xcode build log or error message to analyze | |
| errorCode | No | Optional: Specific error code (e.g., 'cannot find type', 'ambiguous use of') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that it provides classification, suggestions, and documentation links, and supports specific error types. However, it does not mention potential side effects (e.g., network calls), privacy implications, or limitations (e.g., offline behavior).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, using a bullet list for capabilities and a final line for supported errors. It is front-loaded with the main action and has no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, capabilities, and supported error types. However, it lacks details about the output format or behavior when no errors are found. Given no output schema, a brief mention of return value would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no significant parameter details beyond the schema; it merely reiterates supported error types. The descriptions in the schema are already clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes Xcode build logs and error messages, listing specific capabilities (classification, fix-it suggestions, documentation links). It distinguishes itself from siblings (fetch_latest_apple_docs, swift_evolution_check) by focusing on diagnostic analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when encountering Xcode build errors, but does not provide explicit when-to-use or when-not-to-use guidance, nor alternatives. The context from siblings helps, but no direct exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v1.1.2- First observed
fetch_latest_apple_docs - First observed
swift_evolution_check - First observed
xcode_diagnostic_analyzer
TDQS
Each tool has a completely distinct purpose: fetching documentation, analyzing build errors, and checking Swift evolution proposals. There is no overlap or ambiguity.
All tool names follow a consistent snake_case pattern with descriptive names combining verbs and nouns (e.g., fetch_latest_apple_docs). No mixing of conventions or vague terms.
Three tools is a small but well-scoped set for an Apple development helper. Each tool covers a core area without being overly narrow, though adding a few more (e.g., simctl, provisioning) could be justified.
The tools address documentation, error diagnosis, and language evolutionβkey areas for Apple developers. Missing tools like provisioning profiles or Xcode version management are minor gaps, and the current set avoids dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Your Expo and EAS project in natural language: up to date SDK docs, cloud builds (status, logs, trig
Apple Developer Documentation with Semantic Search, RAG, and AI reranking for MCP clients
- app-managerOAuthapp.lance
App Store Connect operator for AI agents: icons, TestFlight builds, listings, IAP, rejection fixes.
Get up-to-date, version-specific documentation and code examples from official sources directly inβ¦
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConnects to Xcode's build system to extract, parse, and display errors and warnings from your Swift projects, helping AI assistants quickly identify code issues without manually searching through build logs.6MIT
- AlicenseAqualityFmaintenanceA Model Context Protocol server that provides AI coding assistants with direct access to Apple's Developer Documentation, enabling seamless lookup of frameworks, symbols, and detailed API references.61,093632MIT
- FlicenseNot gradedqualityNot gradedmaintenanceProvides AI agents with instant access to official Apple developer documentation, Swift programming guides, design guidelines, and Apple Developer YouTube content including WWDC sessions. Uses advanced RAG technology with semantic search and AI reranking to deliver accurate, contextual answers for Apple platform development.7-
- AlicenseNot gradedqualityCmaintenanceProvides comprehensive access to Apple's development documentation ecosystem including hidden Xcode docs, Swift Evolution proposals, GitHub repositories, and WWDC session notes. Enables developers to search and retrieve advanced Apple development resources not available through public channels.15MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/erdncyz/apple-dev-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server