Skip to main content
Glama

Apple Dev MCP Server 🍎

npm version

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

fetch_latest_apple_docs

Fetches live Apple Developer Documentation from developer.apple.com

xcode_diagnostic_analyzer

Analyzes Xcode build logs and provides fix-it suggestions

swift_evolution_check

Checks Swift Evolution proposal status for language features

Related MCP server: Apple Doc MCP

πŸ“¦ Installation

npm install -g apple-dev-mcp-server

Via npx (No install required)

npx apple-dev-mcp-server

From Source

git clone https://github.com/erdncyz/apple-dev-mcp-server.git
cd apple-dev-mcp-server
npm install
npm run build

Configuration

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.js

Usage Examples

Fetch Apple Documentation

Use the fetch_latest_apple_docs tool to get documentation for NavigationStack

Analyze 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}.json

Supported 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 start

Project 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.md

Requirements

  • Node.js >= 18.0.0

  • npm or yarn

πŸ“„ License

MIT


Note: This is a community tool and is not affiliated with or endorsed by Apple Inc.

Available Tools

3 tools
fetch_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe API, framework, class, or symbol to search for (e.g., 'NavigationStack', 'SwiftData', '@Observable')
frameworkNoOptional: Specific framework to search within (e.g., 'SwiftUI', 'Foundation', 'UIKit')
includeExamplesNoWhether to include code examples (default: true)

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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'

ParametersJSON Schema
NameRequiredDescriptionDefault
featureYesThe Swift feature or syntax to check (e.g., 'nonisolated(unsafe)', 'typed throws')
swiftVersionNoOptional: Target Swift version to check compatibility (e.g., '5.9', '6.0')

TDQS

A4.1/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoOptional: Additional context about the project (Swift version, target platform)
buildLogYesThe Xcode build log or error message to analyze
errorCodeNoOptional: Specific error code (e.g., 'cannot find type', 'ambiguous use of')

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 3 tool updatesv1.1.2
    • First observedfetch_latest_apple_docs
    • First observedswift_evolution_check
    • First observedxcode_diagnostic_analyzer

TDQS

A4.1/5.0
Disambiguation5/5

Each tool has a completely distinct purpose: fetching documentation, analyzing build errors, and checking Swift evolution proposals. There is no overlap or ambiguity.

Naming Consistency5/5

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.

Tool Count4/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Provides 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
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides 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.
    15
    MIT

Latest Blog Posts

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