MCP Mobile Server
Provides tools for Android development including device management, emulator control, APK installation, logcat debugging, and screenshot capture.
Integrates with Android Studio SDK for environment setup, virtual device creation and management, and build automation.
Offers comprehensive Flutter development tools including project creation, hot reload sessions, building, testing, dependency management, performance profiling, and automated environment setup.
Enables iOS development workflows with simulator management, device listing, screenshot capture, and app installation capabilities.
Integrates with Xcode for iOS simulator management, device orchestration, and iOS build processes.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Mobile Server start a Flutter development session with hot reload"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
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 |
| Selects best available device, runs doctor, starts hot reload — one command |
| Unit + widget + integration tests with coverage reporting |
| Multi-platform release builds (APK, App Bundle, IPA) |
| End-to-end: test → build → sign |
| Diagnoses and auto-fixes common Flutter build errors |
| Widget inspection session |
| Intelligent device orchestration across platforms |
| Device selection → APK install → launch → logcat in one step |
| AVD create → start → wait → ready |
| 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-serverOption 2 — Install globally
npm install -g @cristianoaredes/mcp-mobile-server
mcp-mobile-serverOption 3 — Build from source
git clone https://github.com/cristianoaredes/mcp-mobile-server.git
cd mcp-mobile-server
npm install
npm run build
npm startClaude 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 workingRun flutter_doctor to check my Flutter setupWork with devices
List all connected Android devices and iOS simulatorsStart a Flutter development session with hot reload on the best available deviceBuild and test
Run the full test suite for my Flutter project at /path/to/projectBuild release versions for Android and iOSFix 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 registeredProject 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 registryThe 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 ciSee CONTRIBUTING.md for guidelines and docs/ for the full documentation set.
Documentation
Resource | Description |
Get running in under 5 minutes | |
All 36 tools with parameters and examples | |
System design, security layer, and ADRs | |
Android development guide | |
iOS development guide | |
Flutter development guide | |
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
Verify the config file path is correct for your OS
Check the JSON is valid (no trailing commas)
Restart Claude Desktop completely
Ask Claude: "Use health_check to verify the mobile server"
License
MIT — free to use, modify, and distribute.
Available Tools
31 toolsandroid_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
Scored across 31 tools
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.
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.
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.
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
Let AI agents control Android and iOS devices on Mobilerun Cloud: screen, input, apps, workflows.
Give your AI agent a real cloud Android phone: push APKs, drive it, get screenshots and logs.
Flutter in-app bug tracking, visual pin annotations, and device logs directly into your AI IDE.
Drive real devices from your AI Coding tool. Embed a client SDK (Unity, Godot, Flutter, iOS/macOS, Android, React Native, Web) in your app, then capture screenshots, traverse the UI tree, inject taps and key events, and run automated test tasks on the physical device over a secure relay.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables 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.77MIT
- AlicenseAqualityDmaintenanceEnables 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.1524 npm1MIT

MCP Appiumofficial
AlicenseAqualityAmaintenanceEnables 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.3214,478 npm518Apache 2.0- AlicenseAqualityDmaintenanceEnables AI agents to build, deploy, drive, and debug Android apps — managing Gradle builds, emulators, adb deployment, logcat capture, and full UI automation.5376 npmMIT