Mobile Next MCP Server

by mobile-next
Verified

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 아키텍처

설치 및 구성

Claude Desktop에 대한 자세한 가이드

지엑스피1

클로드 코드:

claude mcp add mobile -- npx -y @mobilenext/mobile-mcp@latest ⁠

더 자세한 내용은 위키에서 읽어보세요 ! 🚀

필수 조건

MCP를 에이전트와 모바일 기기에 연결하는 데 필요한 사항:

시뮬레이터, 에뮬레이터 및 물리적 장치

Mobile MCP를 실행하면 다음에 연결할 수 있습니다.

  • macOS/Linux에서 iOS 시뮬레이터
  • Linux/Windows/macOS에서 Android 에뮬레이터 사용
  • 실제 iOS 또는 Android 기기(적절한 플랫폼 도구 및 드라이버 필요)

Mobile Next Mobile MCP를 실행하기 전에 모바일 플랫폼 SDK(Xcode, Android SDK)가 올바르게 설치되고 구성되었는지 확인하세요.

시뮬레이터/에뮬레이터에서 "헤드리스" 모드로 실행

컴퓨터에 실제 전화기가 연결되어 있지 않은 경우 에뮬레이터나 시뮬레이터를 사용하여 백그라운드에서 Mobile MCP를 실행할 수 있습니다.

예를 들어, Android의 경우:

  1. 에뮬레이터를 시작합니다(avdmanager / emulator 명령).
  2. 원하는 플래그로 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을 엽니다.
  • 매개변수:

모바일_타입_텍스트

  • 설명: 초점을 맞춘 UI 요소(예: TextField, SearchField)에 텍스트를 입력합니다.
  • 매개변수:
    • text (문자열): 입력할 텍스트
    • submit (부울): 입력 후 Enter/Return을 누를지 여부

모바일_요소_스와이프

  • 설명: 한 UI 요소에서 다른 UI 요소로 스와이프 제스처를 수행합니다.
  • 매개변수:
    • startElement (문자열): 시작 요소에 대한 사람이 읽을 수 있는 설명
    • startRef (문자열): 시작 요소의 접근성/자동화 ID
    • endElement (문자열): 끝 요소에 대한 사람이 읽을 수 있는 설명
    • endRef (문자열): 종료 요소의 접근성/자동화 ID

모바일 스와이프

  • 설명: 두 개의 화면 좌표 집합 사이에서 스와이프 제스처를 수행합니다.
  • 매개변수:
    • startX (숫자): 시작 X 좌표
    • startY (숫자): 시작 Y 좌표
    • endX (숫자): 끝 X 좌표
    • endY (숫자): 끝 Y 좌표

모바일_프레스_

  • 설명: 하드웨어 키를 누르거나 특수 이벤트(예: Android의 뒤로 가기 버튼)를 트리거합니다.
  • 매개변수:
    • key (문자열): 키 식별자(예: HOME, BACK, VOLUME_UP 등)

모바일_스크린샷_찍기

  • 설명: 현재 장치 화면의 스크린샷을 캡처합니다.
  • 매개변수: 없음

모바일_소스_가져오기

  • 설명: 현재 장치 UI 구조(접근성 스냅샷)(xml 형식)를 가져옵니다.
  • 매개변수: 없음

모든 기여자분들께 감사드립니다 ❤️

이 프로젝트를 개선하는 데 도움을 주신 모든 분들께 감사드립니다.

ID: a2b6isqsub