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 前,请检查代码、环境变量、网络行为、软件包来源与维护状态。