Skip to main content
Glama

MCP Mobile Server — AI-Powered Mobile Development for Android, iOS, and Flutter

36 tools for mobile development automation, ready to use inside Claude Desktop and any MCP-compatible AI client.

by Cristiano Arêdes


What is this?

MCP Mobile Server is a Model Context Protocol server that gives AI assistants direct, structured access to your mobile development toolchain. It bridges Claude Desktop (and other MCP clients) to Flutter, Android SDK, and iOS/Xcode workflows through 36 typed tools and 10 high-level "super-tools" that orchestrate complete multi-step workflows.

Instead of switching between terminals and docs, you describe what you want in natural language and the server executes the right commands — with validation, error handling, and fallback strategies built in.

Supported platforms: Android · iOS · Flutter · macOS · Linux · Windows (partial)


Related MCP server: Specter MCP

Features

Category

Tools

What you can do

Core / Health

5

Environment diagnostics, Flutter doctor, device discovery

Device Management

9

List, create, start, and stop Android emulators and iOS simulators

Flutter Development

6

Hot reload sessions, builds, tests, dependency management

Utilities

4

Logcat, screenshots, simulator boot/shutdown

Setup & Configuration

2

Automated Flutter and Android SDK environment setup

Super-Tools (workflows)

10

Complete end-to-end workflows combining multiple atomic tools

Super-Tools — complete workflows in one call

Tool

What it does

flutter_dev_session

Selects best available device, runs doctor, starts hot reload — one command

flutter_test_suite

Unit + widget + integration tests with coverage reporting

flutter_release_build

Multi-platform release builds (APK, App Bundle, IPA)

flutter_deploy_pipeline

End-to-end: test → build → sign

flutter_fix_common_issues

Diagnoses and auto-fixes common Flutter build errors

flutter_inspector_session

Widget inspection session

mobile_device_manager

Intelligent device orchestration across platforms

android_full_debug

Device selection → APK install → launch → logcat in one step

android_emulator_workflow

AVD create → start → wait → ready

ios_simulator_manager

Boot → wait → ready → screenshot lifecycle management

Security built in

  • All shell commands are validated against an allowlist before execution

  • Dangerous pattern detection blocks injection attempts

  • Path traversal protection on all file arguments

  • Runtime input validation via Zod

  • Configurable timeouts on long-running processes


Requirements

Requirement

Version

Node.js

18.0.0 or later

npm or yarn

any recent version

Flutter SDK

3.0+ (for Flutter tools)

Android SDK / Android Studio

any recent (for Android tools)

Xcode

14+ on macOS (for iOS tools)

You only need the SDKs for the platforms you work on. The server starts and serves tools even when some SDKs are absent.


Installation

Option 1 — Run with npx (no install needed)

npx @cristianoaredes/mcp-mobile-server

Option 2 — Install globally

npm install -g @cristianoaredes/mcp-mobile-server
mcp-mobile-server

Option 3 — Build from source

git clone https://github.com/cristianoaredes/mcp-mobile-server.git
cd mcp-mobile-server
npm install
npm run build
npm start

Claude Desktop Setup

Add the server to your Claude Desktop configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "mobile-dev": {
      "command": "npx",
      "args": ["@cristianoaredes/mcp-mobile-server"]
    }
  }
}

Restart Claude Desktop after saving. The 36 mobile development tools will appear automatically.


Usage Examples

Check your environment

Use the health_check tool to verify the mobile development server is working
Run flutter_doctor to check my Flutter setup

Work with devices

List all connected Android devices and iOS simulators
Start a Flutter development session with hot reload on the best available device

Build and test

Run the full test suite for my Flutter project at /path/to/project
Build release versions for Android and iOS

Fix build problems

My Flutter app won't build. Use flutter_fix_common_issues to diagnose and fix it.

Validate the installation from the command line

# After building from source:
npm run mcp:validate

# Expected output:
# ✅ Server configuration is valid
# ✅ 36 tools registered

Project Structure

src/
  server.ts          # MCP server entry point
  tools/
    android.ts       # Android SDK tools
    ios.ts           # iOS / Xcode / Simulator tools
    flutter.ts       # Flutter SDK tools
    super-tools.ts   # High-level workflow automation
    setup-tools.ts   # Environment setup tools
  utils/
    process.ts       # Process execution and tracking
    security.ts      # Command validation and sandboxing
    fallbacks.ts     # Fallback strategies (ADB → native-run, etc.)
    tool-categories.ts # Tool registry

The server communicates over stdio using JSON-RPC 2.0, the standard MCP transport.


Contributing

# Clone and install
git clone https://github.com/cristianoaredes/mcp-mobile-server.git
cd mcp-mobile-server
npm install

# Run in development mode (watch)
npm run dev

# Run tests
npm test

# Run linter and full CI check
npm run ci

See CONTRIBUTING.md for guidelines and docs/ for the full documentation set.


Documentation

Resource

Description

Quick Start Guide

Get running in under 5 minutes

Tools Reference

All 36 tools with parameters and examples

Architecture

System design, security layer, and ADRs

Android Workflow

Android development guide

iOS Workflow

iOS development guide

Flutter Workflow

Flutter development guide

Troubleshooting

Common issues and solutions


Troubleshooting

Flutter not found

# Run the automated setup tool
# In Claude Desktop: "Use flutter_setup_environment to install Flutter"

Android SDK not configured

# In Claude Desktop: "Use android_sdk_setup to configure Android"

No devices available

# List what's available
# "Use android_list_emulators and ios_list_simulators to see available devices"

# Or start a new one
# "Use android_start_emulator to launch an Android emulator"

Claude Desktop not recognizing the server

  1. Verify the config file path is correct for your OS

  2. Check the JSON is valid (no trailing commas)

  3. Restart Claude Desktop completely

  4. Ask Claude: "Use health_check to verify the mobile server"


License

MIT — free to use, modify, and distribute.


GitHub Stars

Report a Bug · Request a Feature · Full Documentation

Available Tools

31 tools
android_create_avdC

Create a new Android Virtual Device (AVD)

Inputs: name (required), systemImageId (required), device, sdcard.

android_install_apkC

Install an APK file to an Android device or emulator

Inputs: serial (required), apkPath (required), options.

android_list_devicesA

List connected Android devices and emulators (supports ADB fallback to native-run)

Inputs: no named parameters.

android_list_emulatorsB

List available Android emulators

Inputs: no named parameters.

android_logcatC

Capture Android logcat output from device or emulator

Inputs: serial (required), filter, lines, clear.

android_screenshotC

Capture screenshot from Android device or emulator

Inputs: serial (required), outputPath (required), options.

android_sdk_setupC

Setup Android SDK and configure environment for Android development

Inputs: action, components.

android_start_emulatorC

Start an Android emulator

Inputs: avdName (required), options.

android_stop_emulatorC

Stop a running Android emulator

Inputs: avdName (required).

flutter_buildC

Build Flutter app for specific target platform

Inputs: cwd (required), target (required), buildMode, flavor.

flutter_cleanB

Clean Flutter build cache and generated files

Inputs: cwd (required).

flutter_dev_sessionB

Complete Flutter dev setup: check env, list devices, select best device, run with hot reload

Inputs: cwd (required), target, preferPhysical.

flutter_doctorB

Run Flutter doctor to check development environment setup

Inputs: no named parameters.

flutter_fix_common_issuesC

Auto-fix common issues: clean, pub get, pod install, gradle sync, invalidate caches

Inputs: cwd (required), deep.

flutter_launch_emulatorC

Launch a Flutter emulator

Inputs: emulatorId (required).

flutter_list_devicesB

List connected devices and emulators available for Flutter development

Inputs: no named parameters.

flutter_pub_getC

Install Flutter project dependencies (pub get)

Inputs: cwd (required).

flutter_release_buildC

Build release versions for all platforms: APK, AAB, IPA with signing

Inputs: cwd (required), platforms, obfuscate.

flutter_runC

Start a Flutter development session (hot reload enabled)

Inputs: cwd (required), deviceId, target, flavor, +1 more.

flutter_setup_environmentC

Complete Flutter SDK installation and environment setup with automatic path configuration

Inputs: action, channel, installPath, autoConfig.

flutter_testC

Run Flutter tests with optional coverage

Inputs: cwd (required), testFile, coverage.

flutter_test_suiteC

Run complete test suite: unit tests, widget tests, integration tests with coverage report

Inputs: cwd (required), coverage, integrationTests.

flutter_versionB

Get Flutter SDK version information

Inputs: no named parameters.

health_checkB

Check server health, tool availability and environment status

Inputs: verbose.

ios_boot_simulatorC

Boot an iOS simulator

Inputs: udid (required).

ios_list_simulatorsB

List available iOS simulators

Inputs: no named parameters.

ios_shutdown_simulatorC

Shutdown an iOS simulator

Inputs: udid (required).

ios_take_screenshotC

Take a screenshot of an iOS simulator

Inputs: udid (required), path (required).

mobile_device_managerC

Smart device management: list all, recommend best, auto-start if needed

Inputs: action, platform.

native_run_install_appC

Install app on device using native-run (works for Android APK & iOS app)

Inputs: appPath (required), platform, deviceId.

native_run_list_devicesC

List connected devices using native-run (Android & iOS support)

Inputs: platform.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 31 tools

    Disambiguation4/5

    Most tools have distinct purposes, but there is some overlap between Android and Flutter device listing tools (e.g., android_list_devices vs. flutter_list_devices vs. native_run_list_devices) that could cause confusion. The descriptions help differentiate, but the boundaries are not perfectly clear.

    Naming Consistency5/5

    Tool names follow a consistent snake_case pattern with clear prefixes (android_, flutter_, ios_, etc.) and verb_noun structure throughout. This makes the set predictable and easy to navigate, with no deviations in naming conventions.

    Tool Count3/5

    With 31 tools, the count is borderline high for a mobile development server, feeling heavy and potentially overwhelming. While the tools cover Android, Flutter, and iOS comprehensively, the number could be streamlined without losing functionality.

    Completeness5/5

    The tool surface provides complete coverage for mobile development workflows, including setup, device management, building, testing, and debugging across Android, Flutter, and iOS. There are no obvious gaps, and agents can handle typical tasks without dead ends.

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      C
      quality
      D
      maintenance
      Enables comprehensive control of Android devices via ADB for Flutter development, UI testing, and visual QA workflows. Provides 60+ tools for device management, UI inspection, app testing, performance profiling, and debugging through natural language.
      77
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables AI agents to build, test, debug, and interact with Kotlin Multiplatform Mobile (Android/iOS) applications through automated build pipelines, UI automation, crash analysis, and app state inspection.
      15
      24 npm
      1
      MIT
    • A
      license
      A
      quality
      A
      maintenance
      Enables AI assistants to automate mobile app testing and development for iOS and Android through natural language interactions. Supports intelligent element identification, session management, automated test generation, and comprehensive device interactions including clicks, swipes, screenshots, and app management.
      32
      14,478 npm
      518
      Apache 2.0