CCM
/MCP
SkillsMCPMarketplacesDigestLearnAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Learn
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Claude Mobile

alexgladkov/claude-in-mobile
248
Summary

Wraps ADB, simctl, and Compose Multiplatform desktop APIs to let Claude control mobile devices and desktop apps through natural language. You can take screenshots, tap UI elements, launch apps, grant permissions, and read device logs across Android phones, iOS Simulator, and desktop applications. Includes smart screenshot compression and annotated UI elements with bounding boxes for better visual understanding. The unified API means the same commands work whether you're automating an Android emulator or testing a desktop app. Particularly handy for mobile QA workflows, app testing automation, or when you need Claude to interact with apps outside the browser.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →

Claude Mobile

Known Issue — Homebrew upgrade not working? Some users may see already installed with an old version when running brew upgrade claude-in-mobile. This happens when the local tap points to the wrong repository. Fix:

brew untap alexgladkov/claude-in-mobile
brew tap alexgladkov/claude-in-mobile
brew install claude-in-mobile

MCP server for mobile, desktop, and browser automation — Android (ADB), iOS Simulator (simctl + WDA), Desktop (any macOS app), Aurora OS (audb), and Browser (CDP). Like Claude in Chrome but for devices, apps, and browsers.

Control your Android phone, emulator, iOS Simulator, desktop app, Aurora device, or headless browser with natural language through Claude.


Table of Contents

  • Quick Start
  • Features at a Glance
  • Quality Engineering
  • Installation
    • Homebrew (macOS)
    • One-liner (any client)
    • Claude Code
    • OpenCode
    • Other Agents (Pi, Qwen, Gemini, Codex, Cursor)
    • From npm / source
    • Windows
  • Platform Guides
    • Android
    • iOS
    • Desktop
    • Browser
    • Aurora OS
  • Tools Reference
    • Core Meta-Tools
    • Optional Modules
    • Flow Tools
  • Native CLI
  • Architecture
  • License

Quick Start

# Install via Homebrew (macOS)
brew tap AlexGladkov/claude-in-mobile https://github.com/AlexGladkov/claude-in-mobile
brew install claude-in-mobile

# Verify dependencies
claude-in-mobile doctor

# Add to Claude Code
claude mcp add --scope user --transport stdio mobile -- npx claude-in-mobile@latest

Then talk to Claude naturally:

"Take a screenshot of the Android emulator"
"Tap on the Login button"
"Type hello in the search field"
"Switch to iOS simulator"

Features at a Glance

FeatureDescription
Unified APISame 8 meta-tools work across Android, iOS, Desktop, Aurora, and Browser
Token-optimized8 meta-tools + 3 optional modules instead of 81 tools (~85% token reduction)
Dynamic modulesBrowser, Desktop, Store load on demand — default tool list stays lean
Smart screenshotsAuto-compressed for optimal LLM processing
Annotated screenshotsColored bounding boxes + numbered element labels
Security hardenedShell injection protection, URL validation, path traversal blocking
Structured errorsTyped error codes with auto-recovery hints
Multi-device parallelRun actions on multiple devices simultaneously
Flow engineBatch, conditional loops, and fan-out flows
Permission managementGrant/revoke/reset app permissions (Android + iOS)
Store publishingGoogle Play, Huawei AppGallery, RuStore
TelemetryPer-tool call metrics via system(action:'metrics')
Doctor commandclaude-in-mobile doctor — checks all dependencies at once

Quality Engineering

Advanced testing and monitoring built into Claude Mobile:

FeatureWhat it doesHow to use
Accessibility AuditingWCAG 2.2 checks: missing labels, touch targets < 48px, focus order, duplicatesaccessibility(action:'audit')
Visual RegressionBaseline screenshots + pixel-level diff detectionvisual(action:'baseline_save'), visual(action:'compare')
Test RecorderRecord taps/swipes/input, replay without coderecorder(action:'start'), recorder(action:'play')
Multi-Device SyncBarrier-based coordination for parallel testingsync(action:'create'), sync(action:'barrier')
App AutopilotAutonomous BFS/DFS exploration with self-healing locatorsautopilot(action:'explore')
Performance MonitorReal-time memory, CPU, FPS tracking with snapshotsperformance(action:'start'), performance(action:'snapshot')

Installation

Homebrew (macOS)

brew tap AlexGladkov/claude-in-mobile https://github.com/AlexGladkov/claude-in-mobile
brew install claude-in-mobile

Verify setup:

claude-in-mobile doctor

One-liner (any client)

Auto-detects installed clients via add-mcp:

npx add-mcp claude-in-mobile -y

Target a specific client:

npx add-mcp claude-in-mobile -a claude-code -y
npx add-mcp claude-in-mobile -a opencode -y
npx add-mcp claude-in-mobile -a cursor -y

Claude Code

# Project-local
claude mcp add --transport stdio mobile -- npx claude-in-mobile@latest

# Global (all projects)
claude mcp add --scope user --transport stdio mobile -- npx claude-in-mobile@latest

Claude Code Plugin

claude plugin marketplace add AlexGladkov/claude-in-mobile
claude plugin install claude-in-mobile@claude-in-mobile

OpenCode

Two modes:

A) MCP server (Node.js):

opencode mcp add
# Choose local MCP → npx -y claude-in-mobile

Or in opencode.json:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "mobile": {
      "type": "local",
      "command": ["npx", "-y", "claude-in-mobile"],
      "enabled": true
    }
  }
}

B) Native CLI + Skill (no Node.js needed):

claude-in-mobile setup opencode            # project-local
claude-in-mobile setup opencode --global   # user-wide

Other Agents

Native CLI skill works with any agent that supports Agent Skills:

claude-in-mobile setup pi --global       # Pi
claude-in-mobile setup qwen --global     # Qwen Code
claude-in-mobile setup gemini --global   # Gemini CLI
claude-in-mobile setup codex --global    # Codex
claude-in-mobile setup cursor --global   # Cursor

Drop --global for project-local install. Restart the agent after setup.

MCP server config for Qwen / Gemini / Codex / Cursor

Qwen Code — .qwen/settings.json or ~/.qwen/settings.json:

{ "mcpServers": { "mobile": { "command": "npx", "args": ["-y", "claude-in-mobile"] } } }

Gemini CLI — .gemini/settings.json or ~/.gemini/settings.json:

{ "mcpServers": { "mobile": { "command": "npx", "args": ["-y", "claude-in-mobile"] } } }

Codex:

codex mcp add mobile -- npx -y claude-in-mobile

Cursor — .cursor/mcp.json:

{ "mcpServers": { "mobile": { "command": "npx", "args": ["-y", "claude-in-mobile"] } } }

From npm / source

# npm (no install)
npx claude-in-mobile

# From source
git clone https://github.com/AlexGladkov/claude-in-mobile.git
cd claude-in-mobile
npm install
npm run build:all

Using a local build with any MCP client:

{ "mcpServers": { "mobile": { "command": "node", "args": ["/path/to/claude-in-mobile/dist/index.js"] } } }

Windows

claude mcp add --transport stdio mobile -- cmd /c npx claude-in-mobile@latest

Platform Guides

Android

Requirements:

  • ADB installed (auto-discovered or set ADB_PATH)
  • USB debugging enabled on device, or running emulator

ADB discovery order:

PriorityLocation
1ADB_PATH env var
2$ANDROID_HOME/platform-tools/adb
3$ANDROID_SDK_ROOT/platform-tools/adb
4OS default: ~/Library/Android/sdk (macOS), %LOCALAPPDATA%\Android\Sdk (Windows), ~/Android/Sdk (Linux)
5adb from PATH

If none found → [ADB_NOT_INSTALLED] error with probed paths.

Examples:

"Show connected devices"
"Take a screenshot on Android"
"Tap on Settings"
"Swipe down to scroll"
"Type 'hello' in the search field"
"Press the back button"
"Grant camera permission to com.example.app"
"Launch com.example.app"

CLI:

claude-in-mobile screenshot android
claude-in-mobile tap android 540 960
claude-in-mobile input android "hello world"
claude-in-mobile ui-dump android | grep "Login"

Coordinate space (raw x/y in tap / swipe / long_press)

When you call an input tool with raw x/y (or x1/y1/x2/y2 for swipe), the values are interpreted in the most recent screenshot's pixel space and auto-scaled to device coordinates before dispatch. The scale comes from the last screen_capture call: e.g., capture at preset='low' (270×480) on a 1080×2400 device sets a 4× factor, so tap(135, 240) becomes tap(540, 960) on the device.

This is convenient for the common flow screen_capture → reason about pixel → tap, but has two gotchas worth knowing:

  • Coordinates from ui_find / ui_tree are device coordinates, not screenshot coordinates. They come from uiautomator which always reports in device space. If the most recent screenshot was at a low preset, passing those device coords as raw x/y will over-scale them. Prefer index, text, or resourceId for ui-sourced taps to avoid the issue entirely.
  • No screenshot taken yet? Then there's no scale stored, and raw x/y are passed through 1:1 as device coords.

The cleanest mental model: raw coords match whatever pixel space you're looking at on screen (your last screenshot). For everything else, use the resolver fields (index, text, resourceId, label).


iOS

Requirements:

  • macOS with Xcode
  • iOS Simulator (no physical device support yet)
  • WebDriverAgent for full UI inspection (optional but recommended)

WebDriverAgent setup:

# Automatic (via Appium)
npm install -g appium
appium driver install xcuitest

# Or set custom path
export WDA_PATH=/path/to/WebDriverAgent

On first use, WDA is auto-built (~2 min one-time), launched on simulator, and connected on port 8100+.

What WDA enables:

  • ui(action:'tree') — full accessibility tree
  • ui(action:'find') — element discovery by label/text
  • input(action:'tap', label:'...') — element-based tapping
  • Improved swipe and gesture simulation

Troubleshooting:

# Install Xcode CLI tools
xcode-select --install

# Accept license
sudo xcodebuild -license accept

# Check simulator is booted
xcrun simctl list | grep Booted

# Check port
lsof -i :8100
Manual WDA test
cd ~/.appium/node_modules/appium-xcuitest-driver/node_modules/appium-webdriveragent
xcodebuild test -project WebDriverAgent.xcodeproj \
  -scheme WebDriverAgentRunner \
  -destination 'platform=iOS Simulator,id=<DEVICE_UDID>'

Examples:

"Take a screenshot on iOS"
"Open Safari on iOS"
"Tap on the Login button"
"Type my email in the text field"
"Swipe left on the card"
"Reset all permissions for com.apple.Maps"

Desktop

Requirements:

  • macOS (Windows/Linux planned)
  • Accessibility permissions: System Settings → Privacy & Security → Accessibility
  • JDK 17+ (for building Desktop companion)

Supported apps: Any macOS application — SwiftUI, AppKit, Electron, Compose Desktop.

Launch modes:

ModeExample
By bundleIddesktop(action:'launch', bundleId:'com.apple.Calculator')
By .app pathdesktop(action:'launch', appPath:'/Applications/Slack.app')
Attach by PIDdesktop(action:'launch', pid:12345)

Enable the module first:

"Enable desktop module"

Or it auto-enables on first desktop(...) call.

Examples:

"Launch Calculator"
"Take a screenshot of the desktop app"
"Get window list"
"Resize window to 1280x720"
"Tap at 100, 200 on desktop"
"Get clipboard content"
"Get performance metrics"
"Stop the desktop app"

Full API documentation: docs/SPEC_DESKTOP.md


Browser

Requirements:

  • Chrome or Chromium installed (or set CHROME_PATH)

Browser automation via Chrome DevTools Protocol (CDP). The browser module loads on demand.

Examples:

"Open https://example.com in the browser"
"Click the Sign In button"
"Fill the email field with test@example.com"
"Take a browser screenshot"
"Execute JS: document.title"
"Wait for the loading spinner to disappear"

Available actions:

ActionDescription
openOpen URL in new session
navigateGo to URL in existing session
clickClick element by ref
fillType into input field
fill_formFill multiple fields at once
press_keyKeyboard input
snapshotDOM snapshot with element refs
screenshotVisual screenshot
evaluateRun JavaScript
wait_for_selectorWait for element to appear
closeClose session
list_sessionsShow active sessions
clear_sessionReset cookies/storage

Aurora OS

Requirements:

  • audb CLI: cargo install audb-client
  • SSH-enabled Aurora OS device
  • Python on device for tap/swipe: devel-su pkcon install python

Examples:

"List Aurora devices"
"Take a screenshot on Aurora"
"Tap at 100, 200 on Aurora"
"Launch ru.example.app on Aurora"
"List installed apps on Aurora"
"Get logs from Aurora device"
"Push file.txt to /home/defaultuser/"

Tools Reference

v3.8.0 provides 8 core meta-tools + 3 optional modules. Each meta-tool uses an action parameter.

Core Meta-Tools

Meta-ToolActionsDescription
devicelist, set, set_target, get_target, enable_module, disable_module, list_modulesDevice management, module control
inputtap, double_tap, long_press, swipe, text, keyTouch and keyboard input
screencapture, annotateScreenshots and visual annotation
uitree, find, find_tap, tap_text, analyze, wait, assert_visible, assert_goneUI hierarchy, element interaction
applaunch, stop, install, listApp lifecycle
systemactivity, shell, wait, open_url, logs, clear_logs, info, webview, clipboard_*, permission_*, file_*, metrics, reset_metricsSystem ops, clipboard, permissions, files, telemetry
flow_batch—Execute multiple commands in one round-trip (max 50)
flow_run—Multi-step automation with conditionals and loops (max 20 steps)

Optional Modules

Load on demand via device(action:'enable_module', module:'<name>') or auto-enable on first call.

ModuleActionsDescription
browseropen, close, list_sessions, navigate, click, fill, fill_form, press_key, snapshot, screenshot, evaluate, wait_for_selector, clear_sessionChrome/Chromium via CDP
desktoplaunch, stop, windows, focus, resize, clipboard_get, clipboard_set, performance, monitorsAny macOS app
storeupload, set_notes, submit, get_releases, discard, promote, halt_rollout, get_versionsGoogle Play, Huawei AppGallery, RuStore

Flow Tools

ToolDescription
flow_batchSequential execution, one round-trip (max 50 commands)
flow_runMulti-step flows with if_not_found, repeat, on_error (max 20 steps)
flow_parallelSame action on multiple devices via Promise.allSettled (max 10)

Backward Compatibility

All v3.0/v3.1 tool names work as aliases: tap → input(action:'tap'), screenshot → screen(action:'capture'), launch_app → app(action:'launch'), etc.


Native CLI

2 MB Rust binary. No Node.js, no dependencies.

Install

brew tap AlexGladkov/claude-in-mobile
brew install claude-in-mobile

Or download from Releases.

Why use the CLI

CLIMCP Server
Installbrew install or copy binarynpx / npm
DependenciesNoneNode.js
Startup~5ms~500ms
Use from terminalDirect commandsNeeds MCP client
CI/CDExit codes, stdout/stderrNot designed for CI
Token costSkill loads on demandSchema always present

Test script example

#!/bin/bash
claude-in-mobile launch android com.example.app
claude-in-mobile wait 2000
claude-in-mobile tap android 0 0 --text "Login"
claude-in-mobile input android "test@example.com"
claude-in-mobile screenshot android -o result.png
claude-in-mobile ui-dump android | grep "Welcome" && echo "PASS" || echo "FAIL"

Store management (CLI)

claude-in-mobile store upload --package com.example.app --file app.aab
claude-in-mobile huawei upload --package com.example.app --file app.aab
claude-in-mobile rustore upload --package com.example.app --file app.apk

Doctor

Check all dependencies at once:

claude-in-mobile doctor

Checks: ADB, ANDROID_HOME, Xcode, simctl, Appium, WDA, JDK, audb-client, Chrome. Color-coded output with fix suggestions.


Architecture

┌─────────────┐     ┌──────────────────┐     ┌─────────────────┐
│ Claude Code │────▶│                  │────▶│  Android (ADB)  │
├─────────────┤     │  Claude Mobile   │     ├─────────────────┤
│  OpenCode   │────▶│   MCP Server     │────▶│ iOS (simctl+WDA)│
├─────────────┤     │                  │     ├─────────────────┤
│   Cursor    │────▶│  8 meta-tools    │────▶│ Desktop (macOS) │
├─────────────┤     │  + 3 modules     │     ├─────────────────┤
│ Qwen/Gemini │────▶│                  │────▶│ Aurora (audb)   │
├─────────────┤     │  Auto-detects    │     ├─────────────────┤
│  Any MCP    │────▶│  platform        │────▶│ Browser (CDP)   │
└─────────────┘     └──────────────────┘     └─────────────────┘
  1. Client sends commands via MCP protocol (8 meta-tools + 3 optional modules)
  2. Server routes to platform adapter (ADB, simctl+WDA, Desktop, audb, CDP)
  3. Commands execute on device/app/browser
  4. Results (screenshots, UI trees, metrics) return to client
  5. Modules auto-enable on first call — no manual setup needed

License

MIT

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Categories
Automation & WorkflowsMobile Development
UpdatedJan 6, 2026
View on GitHub

Related Automation & Workflows MCP Servers

View all →
n8n Workflow Builder

makafeli/n8n-workflow-builder

AI assistant integration for n8n workflow automation through Model Context Protocol (MCP). Connect Claude Desktop, ChatGPT, and other AI assistants to n8n for natural language workflow management.
519
N8N

illuminaresolutions/n8n-mcp-server

MCP server implementation for n8n workflow automation
120
Make Mcp

danishashko/make-mcp

Unofficial MCP server for Make.com automation - build, validate & deploy scenarios via AI
5
n8n Manager MCP

lukisch/n8n-manager-mcp

MCP server for n8n workflow management -- view, create, sync and manage workflows via AI.
1
Airflow

io.github.us-all/airflow

Airflow MCP — list DAGs/runs/task instances, tail logs, trigger and clear (write-gated)
Mcp Workflow

io.github.infoinlet-marketplace/mcp-workflow

Workflow automation for AI agents — browse 125 connectors + 234 templates, run via FluxTurn.