GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者による説明(英語の原文)
AI control of Android/iOS devices. Screenshots, UI tree, AI vision, Flutter, video. 49 tools.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
GOOGLE_API_KEY, MOBILE_MCP_LICENSE_KEY, MCP_ADB_PATH, MCP_DEFAULT_DEVICE「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"mobile-device": {
"command": "npx",
"args": [
"-y",
"mobile-device-mcp"
],
"env": {
"GOOGLE_API_KEY": "your-value",
"MOBILE_MCP_LICENSE_KEY": "your-value",
"MCP_ADB_PATH": "your-value",
"MCP_DEFAULT_DEVICE": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add mobile-device --env GOOGLE_API_KEY=your-value --env MOBILE_MCP_LICENSE_KEY=your-value --env MCP_ADB_PATH=your-value --env MCP_DEFAULT_DEVICE=your-value -- npx -y mobile-device-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"mobile-device": {
"command": "npx",
"args": [
"-y",
"mobile-device-mcp"
],
"env": {
"GOOGLE_API_KEY": "your-value",
"MOBILE_MCP_LICENSE_KEY": "your-value",
"MCP_ADB_PATH": "your-value",
"MCP_DEFAULT_DEVICE": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"mobile-device": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"mobile-device-mcp"
],
"env": {
"GOOGLE_API_KEY": "your-value",
"MOBILE_MCP_LICENSE_KEY": "your-value",
"MCP_ADB_PATH": "your-value",
"MCP_DEFAULT_DEVICE": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
MCP_ADB_PATH envMCP_DEFAULT_DEVICE envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月9日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント saranshbamania で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:GOOGLE_API_KEY, MOBILE_MCP_LICENSE_KEY
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.2.9)がレジストリに届いたのは8 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
mobile-device-mcp
MCP server that gives AI coding assistants (Claude Code, Cursor, Windsurf) the ability to see and interact with mobile devices. 49 tools for screenshots, UI inspection, touch interaction, AI-powered visual analysis, Flutter widget tree inspection, video recording, and test generation.
AI assistants can read your code but can't see your phone. This fixes that.
| Feature | mobile-device-mcp | mobile-next/mobile-mcp | appium/appium-mcp |
|---|---|---|---|
| Total tools | 49 | 20 | ~15 |
| Setup | npx (30 sec) | npx | Requires Appium server |
| AI visual analysis | 12 tools (Claude + Gemini) | None | Vision-based finding |
| Flutter widget tree | 10 tools (Dart VM Service) | None | None |
| Smart element finding | 4-tier (<1ms local search) | Accessibility tree only | XPath/selectors |
| Companion app (23x faster UI tree) | Yes | No | No |
| Video recording | Yes | No | No |
| Test script generation | TS, Python, JSON | No | Java/TestNG only |
| iOS simulator support | Yes | Yes | Yes |
| iOS real device | Planned | Yes | Yes |
| Screenshot compression | 89% (251KB->28KB) | None | 50-80% |
| Multi-provider AI | Claude + Gemini | N/A | Single provider |
| Price | Free + Pro (₹499/mo) | Free | Free |
Web developers have browser DevTools, Playwright, and Puppeteer -- AI assistants can click around, take screenshots, and verify fixes. Mobile developers? They're stuck manually screenshotting, copying logs, and describing what's on screen. They're human middleware between the AI and the device.
Developer: "The login button doesn't work"
Without this tool: With this tool:
npx mobile-device-mcp
No global install needed. Runs directly via npx.
macOS / Linux:
{
"mcpServers": { "mobile-device": { "type": "stdio", "command": "npx", "args": ["-y", "mobile-device-mcp"], "env": { "GOOGLE_API_KEY": "your-google-api-key" } } } }
Windows:
{
"mcpServers": { "mobile-device": { "type": "stdio", "command": "cmd", "args": ["/c", "npx", "-y", "mobile-device-mcp"], "env": { "GOOGLE_API_KEY": "your-google-api-key" } } } }
With Pro license key (after purchasing Pro):
macOS / Linux (Pro)
{
"mcpServers": { "mobile-device": { "type": "stdio", "command": "npx", "args": ["-y", "mobile-device-mcp"], "env": { "GOOGLE_API_KEY": "your-google-api-key", "MOBILE_MCP_LICENSE_KEY": "MDMCP-XXXXX-XXXXX-XXXXX-XXXXX" } } } }
</details>
Windows (Pro)
{
"mcpServers": { "mobile-device": { "type": "stdio", "command": "cmd", "args": ["/c", "npx", "-y", "mobile-device-mcp"], "env": { "GOOGLE_API_KEY": "your-google-api-key", "MOBILE_MCP_LICENSE_KEY": "MDMCP-XXXXX-XXXXX-XXXXX-XXXXX" } } } }
</details>
The server starts and stops automatically -- you never run it manually. Your AI assistant manages it as a background process via the MCP protocol.
Claude Code: type /mcp -- you should see mobile-device: Connected
Cursor: check MCP panel in settings
Then just talk to your phone:
You: "Open my app, tap the login button, type test@email.com in the email field"
AI: [takes screenshot -> sees the screen -> smart_tap("login button") -> smart_type("email field", "test@email.com")]
You: "Find all the bugs on this screen" AI: [analyze_screen -> inspects layout, checks for overflow, missing labels, broken states]
You: "Navigate to settings and verify dark mode works" AI: [smart_tap("settings") -> take_screenshot -> smart_tap("dark mode toggle") -> visual_diff -> reports result]
No test scripts. No manual screenshots. Just describe what you want in plain English.
| Tool | Config file | Docs |
|---|---|---|
| Claude Code | .mcp.json in project root | claude.ai/docs |
| Cursor | .cursor/mcp.json | cursor.com/docs |
| VS Code + Copilot | MCP settings | code.visualstudio.com |
| Windsurf | MCP settings | windsurf.com |
All use the same JSON config -- just put it in the right file for your editor.
Copy .mcp.json into any mobile project -- Flutter, React Native, Kotlin, Swift -- and your AI assistant gets device superpowers in that directory. No global install needed.
| Tool | What it does |
|---|---|
list_devices | List all connected Android devices/emulators |
get_device_info | Model, manufacturer, Android version, SDK level |
get_screen_size | Screen resolution in pixels |
take_screenshot | Capture screenshot (PNG or JPEG, configurable quality & resize) |
get_ui_elements | Get the accessibility/UI element tree as structured JSON |
tap | Tap at coordinates |
double_tap | Double tap at coordinates |
long_press | Long press at coordinates |
swipe | Swipe between two points |
type_text | Type text into the focused field |
press_key | Press a key (home, back, enter, volume, etc.) |
list_apps | List installed apps |
get_current_app | Get the foreground app |
get_logs | Get logcat entries with filtering |
[Get Pro License](https://rzp.io/rzp/r4ijQsJY) -- unlock all 49 tools. After payment, you'll receive your license key via email within 1 hour. Add it to your .mcp.json:
{
"mcpServers": { "mobile-device": { "type": "stdio", "command": "npx", "args": ["-y", "mobile-device-mcp"], "env": { "GOOGLE_API_KEY": "your-google-api-key", "MOBILE_MCP_LICENSE_KEY": "your-license-key" } } } }
Use AI vision (Claude or Gemini) to understand what's on screen.
| Tool | What it does |
|---|---|
analyze_screen | AI describes the screen: app name, screen type, interactive elements, visible text, suggestions |
find_element | Find a UI element by description: *"the login button"*, *"email input field"* |
smart_tap | Find an element by description and tap it in one step |
smart_type | Find an input field by description, focus it, and type text |
suggest_actions | Plan actions to achieve a goal: *"log into the app"*, *"add item to cart"* |
visual_diff | Compare current screen with a previous screenshot -- what changed? |
extract_text | Extract all visible text from the screen (AI-powered OCR) |
verify_screen | Verify an assertion: *"the login was successful"*, *"error message is showing"* |
wait_for_settle | Wait until the screen stops changing |
wait_for_element | Wait for a specific element to appear on screen |
handle_popup | Detect and dismiss popups, dialogs, permission prompts |
fill_form | Fill multiple form fields in one step |
Connect to running Flutter apps via Dart VM Service Protocol. Maps every widget to its source code location (file:line).
| Tool | What it does |
|---|---|
flutter_connect | Discover and connect to a running Flutter app on the device |
flutter_disconnect | Disconnect from the Flutter app and clean up resources |
flutter_get_widget_tree | Get the full widget tree (summary or detailed) |
flutter_get_widget_details | Get detailed properties of a specific widget by ID |
flutter_find_widget | Search the widget tree by type, text, or description |
flutter_get_source_map | Map every widget to its source code location (file:line:column) |
flutter_screenshot_widget | Screenshot a specific widget in isolation |
flutter_debug_paint | Toggle debug paint overlay (shows widget boundaries & padding) |
flutter_hot_reload | Hot reload Flutter app (preserves state) |
flutter_hot_restart | Hot restart Flutter app (resets state) |
macOS only. Control iOS simulators via xcrun simctl.
| Tool | What it does |
|---|---|
ios_list_simulators | List available iOS simulators |
ios_boot_simulator | Boot a simulator by name or UDID |
ios_shutdown_simulator | Shut down a running simulator |
ios_screenshot | Take a screenshot of a simulator |
| Tool | What it does |
|---|---|
record_screen | Start recording the device screen |
stop_recording | Stop recording and save the video |
| Tool | What it does |
|---|---|
start_test_recording | Start recording your MCP tool calls |
stop_test_recording | Stop recording and generate a test script |
get_recorded_actions | Get recorded actions as TypeScript, Python, or JSON |
| Tool | What it does |
|---|---|
launch_app | Launch an app by package name |
stop_app | Force stop an app |
install_app | Install an APK |
uninstall_app | Uninstall an app |
The server is optimized to minimize latency and AI token costs:
smart_tap is 35x faster than naive AI calls (205ms vs 7.6s).Promise.all().| Variable | Description | Default |
|---|---|---|
GOOGLE_API_KEY or GEMINI_API_KEY | Google API key for Gemini vision (recommended) | -- |
|
冒頭だけを表示しています。続きはリポジトリで読めます