본문으로 건너뛰기

Xcode 27 MCP의 Simulator 탐색은 RocketSim CLI보다 토큰을 더 쓴다

How the Xcode 27 MCP can lead to higher token costs when navigating the Simulator

www.avanderlee.com

핵심 요약

  1. 같은 Simulator 시나리오에서 Xcode 27.1 MCP가 읽은 텍스트는 약 400KB, RocketSim CLI는 56KB로 측정돼 Xcode 쪽이 약 7배 많았다.
  2. Xcode MCP는 접근성 계층 파일을 좌표 확인에 사용하고 스크린샷을 직접 열지 않지만, 각 동작 뒤에 전체 계층 정보를 읽어야 해 토큰 비용이 커졌다.
  3. Xcode MCP는 호출 횟수가 적고 앱 빌드·실행도 맡지만, 숨겨진 접근성 요소 활성화 등 일부 작업은 지원하지 않아 도구별 기능 차이를 고려해야 한다.

도입

Simulator를 에이전트로 탐색할 때는 화면을 확인하는 방식과 도구가 반환하는 접근성 정보의 형식이 컨텍스트 사용량을 좌우한다. 이 글은 Xcode 27.1 MCP와 RocketSim CLI를 동일한 앱·시나리오에서 비교했다. Xcode MCP는 예상과 달리 매번 전체 크기 스크린샷을 컨텍스트에 넣지 않았지만, 화면 요소가 담긴 계층 파일을 읽는 데 더 많은 텍스트를 사용했다.

상세 요약

비교 조건과 측정 결과

저자는 작은 fixture 앱에서 중첩 탐색, 중복 레이블, 숨겨진 접근성 요소, 스와이프, 길게 누르기, 입력, 화면 방향 변경, 홈 버튼 등을 포함한 10개 시나리오를 구성했다. Xcode 27.1 MCP와 RocketSim CLI를 전용 iPhone 17 Pro Simulator에서 각각 세 차례 실행했다. 도구 출력만으로 성공을 판정하지 않도록 매 실행 후 앱 내부 결과를 별도로 확인했다.

측정 항목 RocketSim CLI Xcode 27.1 MCP
에이전트가 읽은 출력 56KB 400KB
추정 텍스트 토큰 약 14,000 약 100,000
도구 호출 88회 41회
실행 시간 94초 114초
완료 시나리오 30/30 27/30

토큰 수는 실제 모델 실행에서 측정한 값이 아니라 출력 바이트를 4로 나눈 추정치다. 따라서 수치는 해당 벤치마크의 출력 규모를 비교하는 기준으로 읽어야 한다.

Xcode MCP가 읽는 데이터

Xcode 27 MCP는 DeviceInteractionStartWorkspaceSession, DeviceInteractionInstallAndRun, DeviceInteractionSynthesize, DeviceInteractionEndSession 도구로 Simulator 세션을 구성하고 앱을 실행·조작한다. DeviceInteractionSynthesize는 계층 파일, 전체 크기 스크린샷, 썸네일, 앱 로그의 경로를 반환한다. 도구 설명은 좌표를 계층 파일에서 가져오고 스크린샷을 보고 추측하지 않도록 안내한다.

계층 파일은 요소마다 한 줄을 사용한다. 단순한 목록 화면과 탭 바도 121줄, 약 10KB였으며 중첩된 Other 컨테이너가 대부분을 차지했다. 에이전트는 다음 동작의 좌표를 찾기 위해 매번 이 파일을 읽는다. 같은 화면에서 RocketSim 출력은 1.18KB였고 Xcode 계층 파일은 약 10KB였다. 전체 시나리오에서도 Xcode가 읽는 텍스트가 약 7배 많았다.

저자는 전체 크기 스크린샷을 열지 않았다. Xcode skill이 읽도록 한 썸네일은 각각 약 120토큰으로 추정했고, 전체 크기 스크린샷은 약 1,500토큰으로 추정했다. 별도로 개발자 한 명의 일주일 세션 분석에서는 도구 결과 1,153개에 이미지가 포함됐고, 그중 약 500개가 iOS Simulator MCP에서 나왔다. 이미지는 이후 턴에도 컨텍스트에 남을 수 있어 이미지 반환 방식도 확인해야 한다.

기능 차이와 한계

Xcode MCP는 명령을 연결해 실행하고 각 동작 뒤 상태를 반환하므로 RocketSim보다 호출 수가 적었다. 앱 빌드와 실행도 수행한다. 반면 실패한 세 시나리오는 모두 pass-through overlay window 안의 숨겨진 접근성 요소를 활성화하는 작업이었다. RocketSim은 접근성으로 요소를 활성화했지만, Xcode MCP는 좌표 탭만 지원해 메뉴를 열지 못했다. Face ID, 두 손가락 터치, 접근성 감사도 이 벤치마크에서는 RocketSim만 지원했다.

Xcode 승인 흐름은 프로젝트가 열려 있을 때 에이전트 승인을 요청한다. Xcode의 응답은 모든 상호작용을 device-interaction skill을 불러오는 subagent에서 실행하라고 안내했다. 저자의 환경에서는 MCP 도구가 54개였고, 정의를 모두 미리 불러오면 약 20,000토큰으로 추산됐다.

에이전트 컨텍스트 관리

저자는 사용하지 않는 도구를 제거하거나 IOS_SIMULATOR_MCP_FILTERED_TOOLS로 ui_view와 screenshot 같은 도구를 제외하고, 선호하는 도구를 에이전트 지침에 명시하는 방식을 제안한다. 레이아웃·색상·간격을 확인할 때는 스크린샷이 필요하지만, 탐색에서는 접근성 레이블과 간결한 계층 출력이 유용하다고 설명한다. 관련된 컨텍스트 관리 방법은 Claude Code·Codex·Cursor의 토큰 사용량을 줄이는 방법에서, Simulator 에이전트 도구의 사용 사례는 Cursor·Claude Code·Codex에서 사용하는 iOS Simulator에서 확인할 수 있다.

이 벤치마크는 한 대의 머신과 한 fixture 앱에서 실행한 스크립트 테스트다. 따라서 결과는 도구의 출력과 해당 시나리오에 한정된다. Xcode MCP는 더 적은 호출과 빌드·실행 기능을 제공하고, RocketSim CLI는 더 간결한 출력과 일부 추가 상호작용을 제공한다.

결론

벤치마크에서 Xcode MCP는 RocketSim CLI보다 읽는 텍스트가 약 7배 많았고, 완료한 시나리오는 30개 중 27개였다. 반면 도구 호출은 더 적었으며 앱 빌드와 실행도 담당했다. 이 결과는 단일 머신의 스크립트 테스트이며 실제 모델 토큰을 직접 측정한 값은 아니다. 탐색에는 간결한 접근성 출력이 유리하고, 시각적 검증에는 스크린샷을 남기는 식으로 작업에 맞춰 도구를 선택해야 한다.