MCPXcode

MCPXcode

5

MCPXcode is an open-source project designed to facilitate the integration of AI assistants within the Xcode development environment by implementing the Model Context Protocol (MCP). It enhances developer workflows through context exchange and tool execution, aiming to automate and optimize Xcode operations with AI assistance.

MCPXcode

!!! This Project is in Active Development, So May Have Unexpected Issues

Introduction

MCPXcode is an open-source implementation of the Model Context Protocol (MCP) for Xcode. It enables seamless integration between Xcode and AI assistants by providing a structured protocol for context exchange and tool execution within the Xcode environment.

Following the MCP specification, this project creates a bridge between Xcode's development environment and AI tools, allowing for enhanced developer workflows through contextual understanding and programmable interactions. It wraps common command-line tools (xcrun, xctrace) and leverages macOS accessibility features to enable AI-assisted automation of Xcode operations.

Screenshots

Installation


# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# Clone the repository
git clone https://github.com/everettjf/MCPXcode.git
cd MCPXcode
source .venv/bin/activate
uv add "mcp[cli]"

Configuration

{
  "mcpServers": {
    "MCPXcode": {
      "command": "uv", # may use full path
      "args": [
        "--directory",
        "<Path>/MCPXcode", # change to your full path
        "run",
        "main.py"
      ]
    }
  }
}

Features

Current MCP Tool Integrations

  • xcrun Tool Extensions

    • Context-aware interfaces for common xcrun commands
    • Structured output formatting for AI consumption
    • Semantic error handling and diagnostic reporting
  • xctrace Tool Extensions

    • Context-enhanced profiling and tracing for iOS/macOS applications
    • Structured performance metrics collection for AI analysis
    • Trace data processing with semantic context

Planned Extensions

  • Accessibility Tool Extensions

    • Context-aware UI interactions within Xcode
    • Semantic triggers for build, run, and test operations
    • Structured project navigation capabilities
    • Enhanced context extraction from Xcode UI
  • MCP HTTP Server

    • Full MCP specification compliance over HTTP
    • Standardized tool execution protocol
    • Context-preserving webhooks for build events
    • Seamless integration with AI-powered CI/CD pipelines
  • MCP Client Libraries

    • Language-specific SDKs implementing the MCP specification
    • Simplified context exchange between AI assistants and Xcode

Tool Documentation

Simulator Control Tools

ToolDescriptionExample Prompt
list_devicesList all available simulator devices with detailed information"Show me all available iOS simulator devices and their status."
boot_deviceBoot a specific simulator device identified by its UDID"Boot the iPhone 14 Pro simulator with UDID A1B2C3D4-E5F6-7890-1234-567890ABCDEF."
shutdown_deviceShutdown a running simulator device"Shutdown the currently running iPhone simulator with UDID A1B2C3D4-E5F6-7890-1234-567890ABCDEF."
install_appInstall an application on a simulator device"Install the app at path /Users/username/MyApp.app on the iPhone 14 simulator."
launch_appLaunch an installed application on a simulator device"Launch the app with bundle ID com.example.myapp on the iPhone 14 simulator."

SDK Tools

ToolDescriptionExample Prompt
get_sdk_pathGet the path of the current SDK"What is the path to the current iOS SDK?"
get_sdk_versionGet the version of the current SDK"What version of the iOS SDK am I using?"
get_sdk_platform_pathGet the platform path of the current SDK"Where are the iOS platform files located?"
find_developer_toolFind the path of a specific developer tool"Where is the 'lldb' binary located in the Xcode toolchain?"
run_tool_with_sdkRun a developer tool with a specific SDK"Run the 'clang' tool with the iOS SDK to compile my source file."

xcrun Tools

ToolDescriptionExample Prompt
xcrun_list_sdksList all available SDKs with detailed information"Show me all available SDKs I can build against."
xcrun_list_schemesList all schemes in a specified Xcode project"What are all the build schemes in my MyApp.xcodeproj project?"
xcrun_buildBuild an Xcode project with specified scheme and configuration"Build my MyApp.xcodeproj project using the Debug configuration for the iPhone simulator."
xcrun_validate_appValidate an app before submission to App Store"Validate my MyApp.ipa file before submitting it to the App Store."
xcrun_upload_appUpload an app to App Store Connect"Upload my validated MyApp.ipa file to App Store Connect for review."
xcrun_swift_symbolsExtract Swift symbols from a binary file"Extract and show me all Swift symbols from my app's binary."
xcrun_otool_headersShow Mach-O headers of a binary file"Show me the Mach-O headers of my app's binary file."
xcrun_otool_librariesShow linked libraries of a binary file"What libraries is my app's binary linked against?"
xcrun_nm_symbolsShow symbols in a binary file"Show me all symbols in my app's binary file."

xctrace Tools

ToolDescriptionExample Prompt
xctrace_devicesList available devices for tracing"Show me all devices I can run performance traces on."
xctrace_templatesList available templates for tracing"What trace templates are available for performance profiling?"
xctrace_recordRecord app performance using a specified template"Record a performance trace of my app using the Time Profiler template."
xctrace_record_advancedRecord app performance with advanced options"Record a performance trace with custom template options and set the environment variable DEBUG=1."
xctrace_attach_processAttach to a running process for tracing"Attach a performance tracer to my running app with process ID 12345."
xctrace_exportExport trace data to a specified format"Export my trace.trace file to JSON format for analysis."
xctrace_diagnoseDiagnose a trace archive for issues"Analyze my trace file for any performance issues or problems."
xctrace_documentGenerate documentation for a template"Create documentation for the Allocations template so I can understand its metrics."
xctrace_analyzeAnalyze a trace file and generate performance reports"Generate performance reports from my time profiler trace file."
xctrace_compareCompare two trace files and generate a comparison report"Compare the performance between trace files from version 1.0 and version 2.0 of my app."

Project Roadmap

Phase 1: MCP Core Implementation (Q2 2025)

  • ✅ Basic project structure
  • ⬜ Tool extensions for essential xcrun commands with context handling
  • ⬜ Tool extensions for basic xctrace functionality with context handling
  • ⬜ MCP-compliant CLI interface

Phase 2: MCP Server Implementation (Q3 2025)

  • ⬜ Full MCP specification HTTP server
  • ⬜ Context-aware authentication and security
  • ⬜ Structured context exchange protocol
  • ⬜ Extensible tool registry architecture

Phase 3: MCP Accessibility Extensions (Q4 2025)

  • ⬜ macOS accessibility integration with semantic context
  • ⬜ Context-aware Xcode UI automation
  • ⬜ Semantic event monitoring and contextual reactions

Phase 4: Advanced MCP Features (Q1 2026)

  • ⬜ MCP-compliant Python client library
  • ⬜ Context-aware integration with AI-powered CI/CD tools
  • ⬜ Semantic context monitoring dashboard

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.