Development · MODEL CONTEXT PROTOCOL

devyhan xcode mcp

MCP Server testing

WHAT IT CONNECTS

devyhan xcode mcp 为 AI Agent 提供什么

  • Xcode project information retrieval and scheme listing
  • Enhanced build capabilities with clean and custom output options
  • Comprehensive test execution with granular control
  • App archiving and IPA export for distribution
  • Code signing and provisioning profile management
  • Swift Package Manager integration
  • iOS Simulator management via simctl
  • **NEW: Real Device App Deployment and Launch** with automatic Xcode installation detection and improved device management
  • Intelligent handling of app installation failures with auto-retry
  • Smart caching of device and Xcode information for better performance
  • Open Claude Desktop config file:
  • Add or modify the following configuration:
  • Restart Claude Desktop.
  • `projectPath` (required): Path to the Xcode project (.xcodeproj) or workspace (.xcworkspace)
  • `projectPath` (required): Path to the Xcode project (.xcodeproj) or workspace (.xcworkspace)
  • `projectPath` (required): Path to the Xcode project (.xcodeproj) or workspace (.xcworkspace)
  • `scheme` (required): The scheme to build
  • `configuration` (optional): Build configuration (e.g., Debug, Release)
  • `destination` (optional): Build destination (e.g., 'platform=iOS Simulator,name=iPhone 14')
  • `extraArgs` (optional): Additional xcodebuild arguments as array of strings
  • `outputDir` (optional): Custom build output directory (SYMROOT)
  • `clean` (optional): Whether to perform clean build (default: false)
  • `projectPath` (required): Path to the Xcode project (.xcodeproj) or workspace (.xcworkspace)
  • `scheme` (required): The scheme to test
  • `destination` (required): Test destination (e.g., 'platform=iOS Simulator,name=iPhone 14')
  • `testPlan` (optional): Name of the test plan to use
  • `onlyTesting` (optional): Array of specific test identifiers to run
  • `skipTesting` (optional): Array of test identifiers to skip
  • `resultBundlePath` (optional): Path to save test result bundle
  • `buildForTesting` (optional): Build for testing only without running tests
  • `testWithoutBuilding` (optional): Run tests without building
  • `projectPath` (required): Path to the Xcode project (.xcodeproj) or workspace (.xcworkspace)
  • `scheme` (required): The scheme to archive
  • `configuration` (optional): Build configuration (e.g., Release)
  • `archivePath` (required): Path to save the .xcarchive file
  • `exportPath` (optional): Path to export the archive (e.g., IPA file)
  • `exportOptionsPlist` (optional): Path to the exportOptions.plist file
  • `projectPath` (required): Path to the Xcode project (.xcodeproj) or workspace (.xcworkspace)
  • `target` (optional): Specific target name
  • `command` (required): SPM command to execute ("init", "update", "resolve", "reset", "clean")
  • `packageDir` (required): Directory path of the Swift Package
  • `extraArgs` (optional): Additional SPM arguments as array of strings
  • `command` (required): SimCtl command ("list", "create", "boot", "shutdown", "erase", "install", "launch", "delete")
  • `extraArgs` (optional): Additional simctl arguments as array of strings
  • `projectPath` (required): Path to the Xcode project (.xcodeproj) or workspace (.xcworkspace)
  • `scheme` (required): The scheme to build and run
  • `device` (required): Device identifier or name (supports Korean names)
  • `configuration` (optional): Build configuration (e.g., Debug, Release)
  • `streamLogs` (optional): Whether to stream device logs after launching
  • `startStopped` (optional): Whether to start the app in a paused state for debugger attachment
  • `environmentVars` (optional): Environment variables to pass to the app (key1=value1,key2=value2 format)
  • `xcodePath` (optional): Xcode application path (default: "/Applications/Xcode-16.2.0.app")
  • `listDevices` (optional): Display all detected devices with their IDs before running
  • `skipBuild` (optional): Skip the build and install step for already installed apps
  • `extraLaunchArgs` (optional): Additional arguments to pass to the devicectl launch command
  • `directBundleId` (optional): Directly specify the bundle ID instead of extracting from project
  • The tool identifies both Xcode UDID and CoreDevice UUID for the specified device
  • It uses the Xcode UDID for building and installing the app
  • It uses the CoreDevice UUID for launching the app with `devicectl`
  • It retrieves the app's bundle identifier
  • If requested, it streams the device logs
  • Ability to specify bundleId directly without needing a project
  • Skip build and install step for already installed apps
  • Support for additional devicectl launch command arguments
  • Better device model and OS version information display
  • Improved path handling and logging for devicectl commands
  • First, use the xcode-list-schemes tool to get all available schemes for my project at /Users/username/Projects/MyApp/MyApp.xcodeproj
  • After you see the schemes, run tests for the first available scheme on the iPhone 14 simulator.
  • Then archive the app for distribution using the Release configuration.
  • Claude will execute the `xcode-list-schemes` tool to retrieve all schemes:
  • Claude will execute the `xcode-test` tool with the identified scheme:
  • Claude will then use the `xcode-archive` tool to create an archive:
  • Get the list of available devices (including connected physical devices)
  • Run my app on my connected iPhone
  • Claude will first get the list of devices:
  • Claude will identify your physical device and run the app on it:
  • For quick re-launch without rebuilding:
  • Only use with trusted Xcode projects.
  • Be cautious with projects from unknown sources.
  • Do not include sensitive information in build parameters.
  • Node.js 16 or higher
  • npm 6 or higher
  • Xcode 14 or higher (for all features)
  • Xcode 16 or higher (required for `devicectl` and real device features)

SECURITY

MCP 收录不等于安全审核

MCP 服务器可能获得模型上下文、凭据、本地文件或调用外部系统的权限。连接 Agent 前,请检查代码、环境变量、网络行为、软件包来源与维护状态。