Integrations
Built on top of appium-ios-simulator to provide iOS simulator interaction capabilities for controlling simulator lifecycle and performing actions.
Allows programmatic control of iOS simulators, including starting, stopping, booting, installing and launching apps, taking screenshots, and performing taps on coordinates.
Interacts with Xcode's iOS simulator infrastructure to manage simulator instances and perform operations on iOS devices.
📱 iOS 시뮬레이터용 MCP 서버
appium-ios-simulator를 기반으로 구축되고 MCP TypeScript SDK를 활용하는 iOS 시뮬레이터를 위한 MCP(Model Context Protocol)를 구현하는 서버입니다.
📋 개요
이 프로젝트는 iOS 시뮬레이터와 모델 컨텍스트 프로토콜(Model Context Protocol) 간의 브릿지를 제공하여 iOS 시뮬레이터 인스턴스와의 표준화된 통신을 가능하게 합니다. MCP 프로토콜을 활용하여 다양한 환경에서 일관된 인터페이스를 제공하는 동시에 iOS 시뮬레이터를 프로그래밍 방식으로 제어할 수 있습니다. 서버는 stdio를 전송 메커니즘으로 사용하므로 Claude Desktop 및 기타 MCP 호환 클라이언트와의 통합에 이상적입니다.
🎬 데모
Claude AI Desktop을 사용하여 iOS 시뮬레이터를 부팅하는 방법을 보여주는 데모
🏗️ 건축
서버는 세 가지 주요 구성 요소로 구성됩니다.
- 🔄 시뮬레이터 관리 계층 - iOS 시뮬레이터 수명 주기 및 상호 작용을 처리합니다.
- 🔌 MCP 프로토콜 구현 - stdio 전송을 사용하여 TypeScript SDK를 사용하여 모델 컨텍스트 프로토콜을 구현합니다.
- 📊 Logger Component - stdio 전송을 방해하지 않고 파일 기반 로깅을 제공합니다.
지엑스피1
✨ 특징
- 🚀 iOS 시뮬레이터 인스턴스 시작, 중지 및 관리
- 🔌 부팅 및 종료 시뮬레이터
- 📲 시뮬레이터에 애플리케이션 설치 및 실행
- 📸 시뮬레이터 화면의 스크린샷을 찍으세요
- 👆 좌표를 탭하세요
- 🔄 여러 개의 동시 시뮬레이터 세션 지원
- 📝 콘솔 출력 없이 포괄적인 파일 기반 로깅
- 🛡️ 오류에 강한 작업
📋 필수 조건
- 🟢 Node.js (v16 이상)
- 🍎 macOS(iOS 시뮬레이터에 필요)
- 🛠️ iOS 시뮬레이터가 설치된 Xcode
- 📜 타입스크립트 4.5 이상
🔧 설치
⚙️ 구성
구성은 src/config.ts
파일을 통해 처리됩니다.
환경 변수를 설정하여 이러한 설정을 사용자 정의할 수 있습니다.
🚀 사용법
🔨 서버 빌드 및 시작
🧰 MCP 도구
서버는 iOS 시뮬레이터를 제어하기 위한 두 가지 뚜렷한 접근 방식을 제공합니다.
📱 직접 시뮬레이터 관리(권장)
이러한 도구는 시뮬레이터 UDID와 직접 작동하며 세션을 유지할 필요가 없습니다.
- 📋
list-available-simulators
- 사용 가능한 모든 시뮬레이터를 UDID와 함께 나열합니다. - ▶️
boot-simulator-by-udid
- UDID를 사용하여 시뮬레이터를 직접 부팅합니다. - ⏹️
shutdown-simulator-by-udid
- UDID를 사용하여 시뮬레이터를 직접 종료합니다. - 📊
list-booted-simulators
- 현재 부팅된 모든 시뮬레이터를 나열합니다.
다음과 같은 경우 이 방법을 사용하세요. 시뮬레이터를 직접 부팅, 사용, 종료하려는 경우.
📱 세션 기반 관리(고급)
이러한 도구는 사용자 정의 세션 ID로 시뮬레이터를 추적하는 세션 계층을 사용합니다.
- 📋
list-simulator-sessions
- 모든 활성 시뮬레이터 세션 나열 - ➕
create-simulator-session
- 새로운 시뮬레이터 세션을 생성합니다. - ❌
terminate-simulator-session
- 세션 종료(시뮬레이터를 종료하고 정리) - 🔄
create-and-boot-simulator
- 새로운 시뮬레이터 세션을 생성하고 부팅합니다. - ▶️
boot-simulator
- 기존 세션에 대한 시뮬레이터를 부팅합니다. - ⏹️
shutdown-simulator
- 기존 세션의 시뮬레이터를 종료합니다.
다음과 같은 경우 이 방법을 사용하세요. 시뮬레이터 메타데이터를 추적하거나, 사용자 정의 ID로 시뮬레이터를 참조하거나, 보다 고급 관리 기능을 사용해야 하는 경우입니다.
📲 애플리케이션 관리
- 📥
install-app
- 시뮬레이터에 애플리케이션 설치 - 🚀
launch-app
- 시뮬레이터에서 애플리케이션 실행 - 🛑
terminate-app
- 시뮬레이터에서 실행 중인 애플리케이션 종료
🖱️ 상호작용 도구
- 📷
take-screenshot
- 시뮬레이터 화면의 스크린샷을 찍습니다. - 👆
tap-coordinate
- 지정된 좌표에서 탭을 수행합니다.
🤖 Claude Desktop을 사용한 예시 사용
- 이 서버를 MCP 도구로 사용하도록 Claude Desktop을 구성하세요.
- 클로드 데스크톱 열기
- 설정 > 고급으로 이동하세요
- "MCP 서버" 섹션에 다음 구성을 추가합니다.
Copy/path/to/your
이 저장소를 설치한 실제 경로로 바꾸세요.- 설정을 저장하고 Claude Desktop을 다시 시작하세요.
- 제공된 도구를 사용하여 Claude Desktop에서 직접 iOS 시뮬레이터를 제어하세요.직접 UDID 접근 방식(권장):
- 먼저, Claude에게 사용 가능한 시뮬레이터를 나열해 달라고 요청하세요.Copy
- 그런 다음 UDID를 사용하여 특정 시뮬레이터를 부팅합니다.Copy
- 완료되면 동일한 UDID를 사용하여 종료합니다.Copy
직접적인 UDID 방식은 대부분의 사용 사례에서 더 간단하고 안정적입니다.
세션 기반 접근 방식(고급): 세션 추적의 고급 기능이 필요한 경우에만 이 접근 방식을 사용하세요.
Copy - 먼저, Claude에게 사용 가능한 시뮬레이터를 나열해 달라고 요청하세요.
👨💻 개발
📁 프로젝트 구조
🔨 프로젝트 구축
📜 라이센스
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.
🙏 감사의 말
- 📱 iOS 시뮬레이터 상호 작용 기능을 제공하기 위한 appium-ios-simulator
- 🔌 프로토콜 사양 및 TypeScript SDK를 위한 모델 컨텍스트 프로토콜
This server cannot be installed
iOS 시뮬레이터와 모델 컨텍스트 프로토콜 간의 브리지로, 표준화된 통신 인터페이스를 통해 iOS 시뮬레이터의 프로그래밍 방식 제어를 가능하게 합니다.