Mobile Next가 만든 오픈소스 프로젝트(
mobile-next/mobile-mcp, Apache-2.0).
왜 필요한가?
모바일 앱의 화면 동작을 확인하려면 시뮬레이터를 띄우고 손으로 누르거나, 플랫폼마다 다른 테스트 프레임워크(iOS는 XCUITest, Android는 Espresso)로 스크립트를 짜야 합니다. 코딩 에이전트가 앱 코드를 고쳐도 실제 화면에서 어떻게 보이고 동작하는지는 직접 확인할 수 없었습니다.
Mobile MCP는 에이전트에게 기기를 조작하는 도구를 줍니다. 에이전트가 화면의 UI 요소를 읽고, 누르고, 입력하고, 결과를 다시 읽으며 여러 단계로 이어지는 흐름을 진행합니다. iOS와 Android를 같은 도구로 다루므로 플랫폼별 지식이 없어도 됩니다.
무엇을 할 수 있나
README가 제시하는 주요 쓰임새는 다음과 같습니다.
- 네이티브 앱 자동화 — 테스트나 데이터 입력을 위해 iOS, Android 앱을 조작
- 폼 입력과 정해진 흐름 실행 — 시뮬레이터, 에뮬레이터, 실기기(iPhone, Samsung, Google Pixel 등)를 손으로 조작하지 않고 입력 흐름을 수행
- 여러 단계로 이어지는 사용자 흐름 — LLM이 화면을 보며 다음 동작을 정해 회원가입, 설정 변경 같은 흐름을 끝까지 진행
- 화면 데이터 추출 — 실제 UI 요소를 읽어 구조화된 데이터로 가져오기
개발 과정에서는 이렇게 쓸 수 있습니다. 앱을 수정한 뒤 “시뮬레이터에서 로그인 화면으로 가서 테스트 계정으로 로그인하고, 설정 화면까지 이동해 줘”라고 요청하면, 에이전트가 요소 목록을 읽어 버튼을 누르고 입력한 뒤 각 단계의 화면을 확인합니다. 도중에 앱이 멈추면 기기 로그와 크래시 리포트를 가져와 원인을 살펴볼 수 있습니다.
핵심 기능
-
접근성 트리 우선
화면 캡처를 모델에 보내 해석하는 방식은 느리고 이미지 토큰을 많이 씁니다. Mobile MCP는 운영체제가 제공하는 접근성 트리(화면에 있는 버튼, 텍스트 등 UI 요소의 구조)를 읽어 조작하고, 이 정보로 요소를 찾을 수 없을 때만 스크린샷과 좌표 기반 탭을 씁니다.
-
하나의 도구 세트로 모든 대상
iOS 시뮬레이터, iOS 실기기(USB 연결), Android 에뮬레이터, Android 실기기(USB 디버깅)를 같은 도구로 다룹니다.
-
기기와 앱 제어
탭, 더블 탭, 길게 누르기, 스와이프, 텍스트 입력, HOME/BACK 같은 하드웨어 버튼, 화면 방향 전환, GPS 위치 지정, 클립보드 읽기와 쓰기를 지원합니다. 앱 설치(
.apk,.ipa,.app,.zip), 실행, 종료, 삭제도 할 수 있습니다. -
화면 녹화, 로그, 크래시 리포트
화면 녹화를 시작하고 멈춰 영상으로 저장할 수 있습니다. 기기 로그(Android는 logcat, iOS는 unified log)를 수집하고, 기기에 쌓인 크래시 리포트를 목록으로 보거나 전체 내용을 가져옵니다.
-
명령 일괄 실행
mobile_batch_commands로 “탭, 입력, 탭” 같은 여러 동작을 한 번의 호출로 순서대로 실행하고, 마지막에 화면 요소 목록을 받아볼 수 있습니다.
사용 방법
필요한 것은 Node.js v20 이상, 그리고 대상 플랫폼 도구입니다. iOS는 Xcode 명령줄 도구, Android는 Android Platform Tools(adb)가 있어야 합니다.
Claude Code에 추가합니다.
claude mcp add mobile-mcp -- npx -y @mobilenext/mobile-mcp@latest
Claude Desktop이나 다른 MCP 클라이언트는 설정 파일에 다음을 넣습니다.
{
"mcpServers": {
"mobile-mcp": {
"command": "npx",
"args": ["-y", "@mobilenext/mobile-mcp@latest"]
}
}
}
시뮬레이터나 에뮬레이터를 먼저 실행해 둡니다. iOS 시뮬레이터는 xcrun simctl boot "iPhone 16"처럼 부팅할 수 있습니다. 그다음 에이전트에게 다음과 같이 요청해 연결을 확인합니다.
list available devices
실행 중인 시뮬레이터, 에뮬레이터, 연결된 기기가 나오면 설정이 끝난 것입니다. 목록이 비어 있으면 시뮬레이터나 에뮬레이터가 켜져 있는지 확인합니다.
알아두면 좋은 점
- 텔레메트리가 기본으로 켜져 있습니다 — 도구를 호출할 때마다 도구 이름과 실행 시간을 PostHog로 보내고, Scarf로도 사용 신호를 보냅니다. 끄려면 설정의
env에"MOBILEMCP_DISABLE_TELEMETRY": "1"을 추가합니다. - 대상별 준비 조건 — iOS 시뮬레이터는 macOS/Linux, Android 에뮬레이터는 Linux/Windows/macOS에서 연결할 수 있습니다. 실기기는 USB로 연결한 뒤 iOS는 기기를 신뢰로 설정하고, Android는 USB 디버깅을 켜고 허용해야 합니다.
- HTTP 서버로 실행 가능 — 기본은 stdio로 동작하며,
--listen 3000옵션을 주면 Streamable HTTP 서버로 실행됩니다. 이때MOBILEMCP_AUTH를 설정하지 않으면 인증 없이 접속을 받으므로, 외부에 열 때는 토큰을 설정합니다. - 반복 테스트는 별도 도구로 — 같은 제작사는 에이전트로 탐색한 흐름을 반복 실행 가능한 테스트로 옮길 때 mobilewright를 쓰라고 안내합니다. Mobile MCP는 에이전트가 기기를 직접 다루는 쪽에 맞춰져 있습니다.
- 클라우드 기기는 선택 사항 — 원격 기기를 예약하는 도구 4개는 제작사의 Mobile Next Cloud(실제 iOS, Android 기기 대여 서비스)용입니다. 로컬 기기만 쓴다면 필요 없습니다.
- 출처 — mobile-next/mobile-mcp (Apache-2.0).