local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Enables automation of native Android applications through accessibility snapshots or coordinate-based interactions, supporting both emulators and physical devices for testing, data-entry, and multi-step user journeys.
Provides platform-agnostic automation of iOS applications using accessibility trees and screenshots, allowing for scripted flows and form interactions on both simulators and physical devices without manual control.
Supports interaction with Samsung mobile devices for application testing and automation through structured accessibility snapshots or coordinate-based taps.
Mobile Next - 모바일 자동화를 위한 MCP 서버
플랫폼에 구애받지 않는 인터페이스를 통해 확장 가능한 모바일 자동화를 구현하는 모델 컨텍스트 프로토콜(MCP) 서버 로, iOS 또는 Android에 대한 별도의 지식이 필요하지 않습니다. 이 서버를 통해 에이전트와 LLM은 구조화된 접근성 스냅샷 또는 스크린샷 기반 좌표 기반 탭을 통해 네이티브 iOS/Android 애플리케이션 및 기기와 상호 작용할 수 있습니다.
https://github.com/user-attachments/assets/c4e89c4f-cc71-4424-8184-bdbc8c638fa1
🚀 모바일 MCP 로드맵: 모바일의 미래 구축
모바일 MCP를 끊임없이 발전시켜 나가는 저희의 여정에 함께해 주세요! 자세한 로드맵을 확인하여 향후 기능, 개선 사항, 그리고 이정표를 살펴보세요. 여러분의 의견은 모바일 자동화의 미래를 만들어가는 데 매우 소중합니다.
👉 로드맵 탐색
주요 사용 사례
모바일 자동화 확장에 도움이 되는 방법:
- 📲 테스트나 데이터 입력 시나리오를 위한 네이티브 앱 자동화(iOS 및 Android).
- 📝 시뮬레이터/에뮬레이터 또는 물리적 장치(iPhone, Samsung, Google Pixel 등)를 수동으로 제어하지 않고도 스크립트화된 흐름과 형태 상호 작용이 가능합니다.
- 🧭 LLM이 주도하는 다단계 사용자 여정 자동화
- 👆 에이전트 기반 프레임워크를 위한 범용 모바일 애플리케이션 상호 작용
- 🤖 모바일 자동화 사용 사례, 데이터 추출을 위한 에이전트 간 통신을 지원합니다.
주요 특징
- 🚀 빠르고 가벼움 : 대부분의 상호작용에 기본 접근성 트리를 사용하거나 a11y 레이블을 사용할 수 없는 경우 스크린샷 기반 좌표를 사용합니다.
- 🤖 LLM 친화적 : 접근성(스냅샷)에 컴퓨터 비전 모델이 필요하지 않습니다.
- 🧿 Visual Sense : 화면에 실제로 렌더링된 내용을 평가하고 분석하여 다음 동작을 결정합니다. 접근성 데이터나 뷰 계층 좌표를 사용할 수 없는 경우, 스크린샷 기반 분석으로 대체됩니다.
- 📊 결정론적 도구 적용 : 가능한 한 구조화된 데이터에 의존함으로써 순전히 스크린샷 기반 접근 방식에서 발견되는 모호성을 줄입니다.
- 📺 구조화된 데이터 추출 : 화면에 표시되는 모든 항목에서 구조화된 데이터를 추출할 수 있습니다.
모바일 MCP 아키텍처
설치 및 구성
지엑스피1
필수 조건
MCP를 에이전트와 모바일 기기에 연결하는 데 필요한 사항:
- Xcode 명령줄 도구
- 안드로이드 플랫폼 도구
- 노드.js
- MCP는 Claude MCP , OpenAI Agent SDK , Copilot Studio 와 같은 기본 모델 또는 에이전트를 지원합니다.
시뮬레이터, 에뮬레이터 및 물리적 장치
Mobile MCP를 실행하면 다음에 연결할 수 있습니다.
- macOS/Linux에서 iOS 시뮬레이터
- Linux/Windows/macOS에서 Android 에뮬레이터 사용
- 실제 iOS 또는 Android 기기(적절한 플랫폼 도구 및 드라이버 필요)
Mobile Next Mobile MCP를 실행하기 전에 모바일 플랫폼 SDK(Xcode, Android SDK)가 올바르게 설치되고 구성되었는지 확인하세요.
시뮬레이터/에뮬레이터에서 "헤드리스" 모드로 실행
컴퓨터에 실제 전화기가 연결되어 있지 않은 경우 에뮬레이터나 시뮬레이터를 사용하여 백그라운드에서 Mobile MCP를 실행할 수 있습니다.
예를 들어, Android의 경우:
- 에뮬레이터를 시작합니다(avdmanager / emulator 명령).
- 원하는 플래그로 Mobile MCP를 실행하세요
iOS에서는 Mobile MCP를 해당 시뮬레이터 인스턴스와 함께 사용하기 전에 Xcode가 필요하고 시뮬레이터를 실행해야 합니다.
xcrun simctl list
xcrun simctl boot "iPhone 16"
모바일 명령 및 상호 작용 도구
명령과 도구는 접근성 기반 로케이터(권장)와 좌표 기반 입력을 모두 지원하므로 접근성/자동화 ID가 없는 경우에도 유연하게 자동화를 안정적이고 원활하게 수행할 수 있습니다.
모바일_목록_앱
- 설명: 장치에 설치된 모든 앱을 나열합니다.
- 매개변수:
bundleId
(문자열): com.google.android.keep 또는 com.apple.mobilenotes와 같은 애플리케이션의 고유 번들/패키지 식별자
모바일_런치_앱
- 설명: 장치/에뮬레이터에서 지정된 앱을 실행합니다.
- 매개변수:
bundleId
(문자열): com.google.android.keep 또는 com.apple.mobilenotes와 같은 애플리케이션의 고유 번들/패키지 식별자
모바일_종료_앱
- 설명: 실행 중인 애플리케이션을 종료합니다.
- 매개변수:
packageName
(문자열): 애플리케이션의 번들/패키지 식별자 호출을 기반으로 pid를 기준으로 앱을 강제로 중지하거나 종료합니다.
모바일_화면_크기_가져오기
- 설명: 모바일 기기의 화면 크기를 픽셀 단위로 가져옵니다.
- 매개변수: 없음
모바일_좌표에서_화면_클릭
- 설명: 좌표에 따라 지정된 화면 좌표를 탭합니다.
- 매개변수:
x
(숫자): X좌표y
(숫자): Y 좌표
모바일_화면_요소_목록
- 설명: 화면에 있는 요소와 해당 좌표를 표시 텍스트나 접근성 레이블과 함께 나열합니다.
- 매개변수: 없음
모바일_요소_탭
- 설명: 접근성 로케이터로 식별된 UI 요소를 탭합니다.
- 매개변수:
element
(문자열): 사람이 읽을 수 있는 요소 설명(예: "로그인 버튼")ref
(문자열): 스냅샷의 접근성/자동화 ID 또는 참조
모바일 탭
- 설명: 지정된 화면 좌표를 탭합니다.
- 매개변수:
x
(숫자): X좌표y
(숫자): Y 좌표
모바일_누름_버튼
- 설명: 기기의 버튼(홈, 뒤로, 볼륨, Enter, 전원 버튼)을 누릅니다.
- 매개변수: 없음
모바일_오픈_URL
- 설명: 장치의 브라우저에서 URL을 엽니다.
- 매개변수:
url
(문자열): 열릴 URL(예: " https://example.com ").
모바일_타입_텍스트
- 설명: 초점을 맞춘 UI 요소(예: TextField, SearchField)에 텍스트를 입력합니다.
- 매개변수:
text
(문자열): 입력할 텍스트submit
(부울): 입력 후 Enter/Return을 누를지 여부
모바일_요소_스와이프
- 설명: 한 UI 요소에서 다른 UI 요소로 스와이프 제스처를 수행합니다.
- 매개변수:
startElement
(문자열): 시작 요소에 대한 사람이 읽을 수 있는 설명startRef
(문자열): 시작 요소의 접근성/자동화 IDendElement
(문자열): 끝 요소에 대한 사람이 읽을 수 있는 설명endRef
(문자열): 종료 요소의 접근성/자동화 ID
모바일 스와이프
- 설명: 두 개의 화면 좌표 집합 사이에서 스와이프 제스처를 수행합니다.
- 매개변수:
startX
(숫자): 시작 X 좌표startY
(숫자): 시작 Y 좌표endX
(숫자): 끝 X 좌표endY
(숫자): 끝 Y 좌표
모바일_프레스_키
- 설명: 하드웨어 키를 누르거나 특수 이벤트(예: Android의 뒤로 가기 버튼)를 트리거합니다.
- 매개변수:
key
(문자열): 키 식별자(예: HOME, BACK, VOLUME_UP 등)
모바일_스크린샷_찍기
- 설명: 현재 장치 화면의 스크린샷을 캡처합니다.
- 매개변수: 없음
모바일_소스_가져오기
- 설명: 현재 장치 UI 구조(접근성 스냅샷)(xml 형식)를 가져옵니다.
- 매개변수: 없음
모든 기여자분들께 감사드립니다 ❤️
이 프로젝트를 개선하는 데 도움을 주신 모든 분들께 감사드립니다.
You must be authenticated.
Tools
iOS 및 Android 기기에서 플랫폼에 독립적인 인터페이스를 통해 확장 가능한 모바일 자동화를 구현하는 모델 컨텍스트 프로토콜 서버로, 에이전트와 LLM이 접근성 스냅샷이나 좌표 기반 상호 작용을 사용하여 모바일 애플리케이션과 상호 작용할 수 있도록 합니다.
- 🚀 Mobile MCP Roadmap: Building the Future of Mobile
- Main use cases
- Main Features
- Mobile MCP Architecture
- Installation and configuration
- Prerequisites
- Mobile Commands and interaction tools
- mobile_list_apps
- mobile_launch_app
- mobile_terminate_app
- mobile_get_screen_size
- mobile_click_on_screen_at_coordinates
- mobile_list_elements_on_screen
- mobile_element_tap
- mobile_tap
- mobile_press_button
- mobile_open_url
- mobile_type_text
- mobile_element_swipe
- mobile_swipe
- mobile_press_key
- mobile_take_screenshot
- mobile_get_source
- Thanks to all contributors ❤️