Integrations
Supports app archiving and IPA export for App Store distribution through export options plist integration
Enables iOS app deployment, testing on iOS simulators, and launching apps on physical iOS devices with log streaming capabilities
Provides macOS-specific tooling for Xcode project management and iOS development workflows
xcode-mcp
Xcode 관련 작업을 위한 도구를 제공하는 MCP(Model Context Protocol) 서버로, Claude Desktop과 같은 MCP 클라이언트에서 Xcode 프로젝트 작업을 더욱 쉽게 수행할 수 있도록 합니다. 이 서버는 Xcode 프로젝트 관리, 빌드, 테스트, 보관, 코드 서명 및 관련 iOS 개발 도구를 위한 다양한 유틸리티를 제공합니다.
특징
- Xcode 프로젝트 정보 검색 및 스키마 목록
- 깔끔하고 사용자 정의 가능한 출력 옵션을 통해 향상된 빌드 기능
- 세부적인 제어를 통한 포괄적인 테스트 실행
- 배포를 위한 앱 보관 및 IPA 내보내기
- 코드 서명 및 프로비저닝 프로필 관리
- Swift 패키지 관리자 통합
- simctl을 통한 iOS 시뮬레이터 관리
- 새로운 기능: 자동 Xcode 설치 감지 및 향상된 장치 관리를 통한 실제 장치 앱 배포 및 실행
- 자동 재시도로 앱 설치 실패를 지능적으로 처리합니다.
- 더 나은 성능을 위한 장치 및 Xcode 정보의 스마트 캐싱
설치
지엑스피1
용법
Claude Desktop과 함께 사용
- Claude Desktop 구성 파일을 엽니다.Copy
- 다음 구성을 추가하거나 수정하세요.Copy
- Claude Desktop을 다시 시작합니다.
사용 가능한 도구
1. xcode-프로젝트-정보
대상, 구성, 스키마를 포함하여 Xcode 프로젝트나 작업 공간에 대한 자세한 정보를 검색합니다.
매개변수 :
projectPath
(필수): Xcode 프로젝트(.xcodeproj) 또는 작업 공간(.xcworkspace) 경로
예 :
샘플 출력 :
2. xcode-list-schemes
Xcode 프로젝트나 작업 공간에서 사용 가능한 모든 구성, 대상 및 구성의 포괄적인 목록을 제공합니다.
매개변수 :
projectPath
(필수): Xcode 프로젝트(.xcodeproj) 또는 작업 공간(.xcworkspace) 경로
예 :
샘플 출력 :
3. xcode-빌드
향상된 옵션을 사용하여 Xcode 프로젝트 또는 작업 공간을 빌드합니다. 작업 공간 및 프로젝트 빌드, 클린 빌드, 그리고 사용자 지정 출력 디렉터리를 모두 지원합니다.
매개변수 :
projectPath
(필수): Xcode 프로젝트(.xcodeproj) 또는 작업 공간(.xcworkspace) 경로scheme
(필수): 구축 계획configuration
(선택 사항): 빌드 구성(예: 디버그, 릴리스)destination
(선택 사항): 빌드 대상(예: '플랫폼=iOS 시뮬레이터, 이름=iPhone 14')extraArgs
(선택 사항): 문자열 배열 형태의 추가 xcodebuild 인수outputDir
(선택 사항): 사용자 정의 빌드 출력 디렉토리(SYMROOT)clean
(선택 사항): 클린 빌드를 수행할지 여부(기본값: false)
예 :
생성된 명령 :
4. xcode 테스트
다양한 옵션을 사용하여 Xcode 프로젝트 또는 작업 공간에 대한 테스트를 실행합니다. 특정 테스트, 테스트 계획 및 다양한 테스트 모드를 실행하는 등 테스트 실행에 대한 세부적인 제어 기능을 제공합니다.
매개변수 :
projectPath
(필수): Xcode 프로젝트(.xcodeproj) 또는 작업 공간(.xcworkspace) 경로scheme
(필수): 테스트할 계획destination
(필수): 테스트 대상(예: '플랫폼=iOS 시뮬레이터, 이름=iPhone 14')testPlan
(선택 사항): 사용할 테스트 계획의 이름onlyTesting
(선택 사항): 실행할 특정 테스트 식별자 배열skipTesting
(선택 사항): 건너뛸 테스트 식별자 배열resultBundlePath
(선택 사항): 테스트 결과 번들을 저장할 경로buildForTesting
(선택 사항): 테스트를 실행하지 않고 테스트만을 위해 빌드합니다.testWithoutBuilding
(선택 사항): 빌드하지 않고 테스트 실행
예 :
생성된 명령 :
5. xcode-아카이브
Xcode 프로젝트의 아카이브(.xcarchive)를 생성하고, 필요에 따라 배포를 위해 IPA 파일로 내보냅니다. 내보내기 옵션(plist)을 통해 App Store, 임시 배포 및 기업 배포 방식을 지원합니다.
매개변수 :
projectPath
(필수): Xcode 프로젝트(.xcodeproj) 또는 작업 공간(.xcworkspace) 경로scheme
(필수): 보관할 계획configuration
(선택 사항): 빌드 구성(예: 릴리스)archivePath
(필수): .xcarchive 파일을 저장할 경로exportPath
(선택 사항): 아카이브를 내보낼 경로(예: IPA 파일)exportOptionsPlist
(선택 사항): exportOptions.plist 파일에 대한 경로
예 :
생성된 명령 :
6. xcode-codesign-info
Xcode 프로젝트에 대한 포괄적인 코드 서명 및 프로비저닝 프로필 정보를 검색합니다. 시스템에 설치된 코드 서명 ID, 프로젝트 코드 서명 설정 및 프로비저닝 프로필을 표시합니다.
매개변수 :
projectPath
(필수): Xcode 프로젝트(.xcodeproj) 또는 작업 공간(.xcworkspace) 경로target
(선택 사항): 특정 대상 이름
예 :
샘플 출력 :
7. 스위프트 패키지 관리자
Swift 패키지 관리를 위한 Swift 패키지 관리자(SPM) 기능에 대한 액세스를 제공합니다. init, update, resolve, reset, clean과 같은 일반적인 SPM 명령을 지원합니다.
매개변수 :
command
(필수): 실행할 SPM 명령("init", "update", "resolve", "reset", "clean")packageDir
(필수): Swift 패키지의 디렉토리 경로extraArgs
(선택 사항): 문자열 배열 형태의 추가 SPM 인수
예 :
생성된 명령 :
샘플 출력 :
8. simctl-manager
simctl
명령줄 도구를 통해 iOS 시뮬레이터 관리 기능에 액세스할 수 있습니다. 앱 나열, 생성, 부팅, 설치 및 시뮬레이터 기기 관리를 지원합니다.
매개변수 :
command
(필수): SimCtl 명령어("list", "create", "boot", "shutdown", "erase", "install", "launch", "delete")extraArgs
(선택 사항): 문자열 배열 형태의 추가 simctl 인수
예 :
생성된 명령 :
샘플 출력(약어) :
9. 디바이스에서 실행
실제 iOS 기기에서 앱을 빌드, 설치 및 실행합니다. 기기 선택, 환경 변수 및 로그 스트리밍을 위해 기기 이름(한글 이름 포함) 또는 UUID를 지원합니다. 이제 직접 bundleId 지정, 빌드 건너뛰기 옵션 및 추가 실행 인수가 제공됩니다 .
매개변수 :
projectPath
(필수): Xcode 프로젝트(.xcodeproj) 또는 작업 공간(.xcworkspace) 경로scheme
(필수): 빌드하고 실행할 계획device
(필수): 장치 식별자 또는 이름(한국어 이름 지원)configuration
(선택 사항): 빌드 구성(예: 디버그, 릴리스)streamLogs
(선택 사항): 실행 후 장치 로그를 스트리밍할지 여부startStopped
(선택 사항): 디버거 연결을 위해 앱을 일시 중지 상태로 시작할지 여부environmentVars
(선택 사항): 앱에 전달할 환경 변수(key1=value1, key2=value2 형식)xcodePath
(선택 사항): Xcode 애플리케이션 경로(기본값: "/Applications/Xcode-16.2.0.app")listDevices
(선택 사항): 실행하기 전에 감지된 모든 장치를 ID와 함께 표시합니다.skipBuild
(선택 사항): 이미 설치된 앱의 빌드 및 설치 단계를 건너뜁니다.extraLaunchArgs
(선택 사항): devicectl 실행 명령에 전달할 추가 인수directBundleId
(선택 사항): 프로젝트에서 추출하는 대신 번들 ID를 직접 지정합니다.
예 :
프로세스 :
- 이 도구는 지정된 장치에 대한 Xcode UDID와 CoreDevice UUID를 모두 식별합니다.
- 앱을 빌드하고 설치하려면 Xcode UDID를 사용합니다.
devicectl
로 앱을 실행하기 위해 CoreDevice UUID를 사용합니다.- 앱의 번들 식별자를 검색합니다.
- 요청 시 장치 로그를 스트리밍합니다.
v0.4.0의 주요 개선 사항 :
- 프로젝트가 필요 없이 bundleId를 직접 지정할 수 있는 기능
- 이미 설치된 앱의 경우 빌드 및 설치 단계 건너뛰기
- 추가 devicectl 실행 명령 인수 지원
- 더 나은 기기 모델 및 OS 버전 정보 표시
- devicectl 명령에 대한 경로 처리 및 로깅이 개선되었습니다.
샘플 출력 :
예제 시나리오: LLM과 함께 사용
다음은 Claude와 같은 LLM이 이러한 도구를 순서대로 사용하도록 유도하는 방법의 예입니다.
클로드에게 사용자 프롬프트:
예상 작업 흐름:
- Claude는
xcode-list-schemes
도구를 실행하여 모든 스키마를 검색합니다.Copy - Claude는 식별된 스키마로
xcode-test
도구를 실행합니다.Copy - 그런 다음 Claude는
xcode-archive
도구를 사용하여 아카이브를 생성합니다.Copy
이 워크플로는 한 도구의 출력을 사용하여 다른 도구의 매개변수를 알려주고 여러 도구를 연결하는 방법을 보여줍니다.
예: 실제 장치에서 실행
클로드에게 사용자 프롬프트:
예상 작업 흐름:
- Claude는 먼저 장치 목록을 가져옵니다.Copy
- Claude는 사용자의 물리적 장치를 식별하고 해당 장치에서 앱을 실행합니다.Copy
- 재구축 없이 빠르게 다시 시작하려면:Copy
보안 고려 사항
이 도구는 Xcode 관련 명령을 실행할 수 있으며, 이는 보안 위험을 초래합니다. 참고:
- 신뢰할 수 있는 Xcode 프로젝트에만 사용하세요.
- 출처가 불분명한 프로젝트에는 주의하세요.
- 빌드 매개변수에 민감한 정보를 포함하지 마세요.
개발
요구 사항
- Node.js 16 이상
- npm 6 이상
- Xcode 14 이상(모든 기능)
- Xcode 16 이상(
devicectl
및 실제 장치 기능에 필요)
지역 개발 및 테스트
특허
MIT
You must be authenticated.
Tools
Xcode 관련 작업을 위한 도구를 제공하는 모델 컨텍스트 프로토콜 서버로, 이를 통해 iOS 프로젝트 관리, 앱 빌드, 테스트, 보관, 시뮬레이터와 물리적 장치에 대한 배포 작업을 보다 쉽게 수행할 수 있습니다.