Xcode MCP 서버
Xcode MCP 서버는 Xcode 프로젝트 빌드 및 테스트를 위한 모델 컨텍스트 프로토콜(MCP) 인터페이스를 제공합니다. AI 어시스턴트가 표준화된 인터페이스를 통해 빌드를 직접 트리거하고, 테스트를 실행하고, 진행 상황을 모니터링하고, 로그에 액세스할 수 있도록 지원합니다.
특징
- 사용자 정의 스키마 및 구성을 사용하여 Xcode 프로젝트 빌드
- 세부적인 제어를 통해 단위 테스트를 실행합니다(특정 테스트를 실행하거나 테스트를 건너뜁니다)
- 코드 커버리지 보고서 생성
- 실시간으로 빌드 및 테스트 로그 스트리밍
- 자세한 빌드 및 테스트 보고서에 액세스하세요
- JSON 형식의 출력
- 자동 로그 지속성
요구 사항
- 노드.js 16+
- Xcode 명령줄 도구
- 타입스크립트
- MCP 호환 클라이언트(예: Claude Desktop)
설치
지엑스피1
Claude Desktop과 함께 사용
- 서버를 시작합니다:
npm run start /path/to/build/logs/directory
- Claude Desktop 설정:
"command": "node",
"args": ["/path/to/the/xcode-mcp-server/build/index.js",
"/path/to/your/project/folder"],
"env": {
"PATH": "/usr/bin:/bin:/usr/local/bin:/usr/sbin:/sbin"
}
사용 가능한 도구
빌드_프로젝트
지정된 매개변수로 Xcode 프로젝트를 빌드합니다.
매개변수:
projectPath
(필수): .xcodeproj 또는 .xcworkspace 경로scheme
(필수): 빌드 스키마 이름configuration
(선택 사항): 빌드 구성(디버그/릴리스, 기본값은 디버그)destination
(선택 사항): 빌드 대상(기본값은 "platform=iOS Simulator,name=iPhone 15 Pro")
Claude에서의 사용 예:
build_project({
projectPath: "/path/to/Project.xcodeproj",
scheme: "MyApp",
configuration: "Debug"
})
실행 테스트
선택적 필터링을 사용하여 단위 테스트를 실행합니다.
매개변수:
projectPath
(필수): .xcodeproj 또는 .xcworkspace 경로scheme
(필수): 테스트 계획 이름testIdentifier
(선택 사항): 실행할 특정 테스트(예: 'MyTests/testExample')skipTests
(선택 사항): 건너뛸 테스트 식별자 배열configuration
(선택 사항): 빌드 구성(디버그/릴리스, 기본값은 디버그)destination
(선택 사항): 테스트 대상(기본값은 "platform=iOS Simulator,name=iPhone 15 Pro")
Claude에서의 사용 예:
run_tests({
projectPath: "/path/to/Project.xcodeproj",
scheme: "MyAppTests",
testIdentifier: "LoginTests/testSuccessfulLogin",
skipTests: ["PerformanceTests/testLargeDataLoad"],
configuration: "Debug"
})
로그
- 모든 로그는
build-logs/
아래의 지정된 기본 디렉토리에 저장됩니다. - 빌드 작업 생성:
- 일반 텍스트 로그(
build-[timestamp].log
) - JSON 형식의 로그(
build-[timestamp].log.json
) - Xcode 보고서(
report-[timestamp].txt
)
- 테스트 작업으로 생성되는 항목:
- 테스트 로그(
test-[timestamp].log
) - JSON 형식의 로그(
test-[timestamp].log.json
) - 테스트 보고서(
test-report-[timestamp].txt
) - 코드 커버리지 보고서(
coverage-[timestamp].txt
)
- 최신 로그(빌드 또는 테스트)는
xcode-build://latest-log
리소스를 통해 액세스할 수 있습니다.