NexusAndroid
Android computer use over plain ADB: screen, gestures, SMS, notifications, files.
Connector by pironjulien · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/pironjulien-nexus-android
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: mobile-development, workflow-automation
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 2 read · 2 write · 0 delete · 14 not yet classified
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Python package
Tools by what they do 18
Read from the source code; the running server may list different tools.
Read 2 · Look things up without changing anything.
infolook
Write 2 · Create, change, send or run things.
draftmessages
Not yet classified 14 · We could not tell from the name and description.
actappscapturecheckupclipboardfilesfunctionslaunchlogsmapnotificationsphone
Show 2 more tools
settingsweb
Secrets and settings it asks for
Other settings (environment variables or headers).
NEXUS_ANDROID_ADBNEXUS_ANDROID_AWAKE_IDLENEXUS_ANDROID_KEEP_AWAKENEXUS_ANDROID_SERIAL
Files it touches
- Any path the agent passes to its tools
Tools (18)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
actGestures on the phone, in order (stops at the first error), then the updated screen. Steps: tap, long_press, double_tap, type (any text, accents and emoji included; target = field to tap first; non-ASCII is pasted through the clipboard, which is then given back to the user unchanged), clear, key (back, home, recent, delete, ctrl+a, arrows, tab, volume; enter and other KEYCODE_*: confirm=true + accord, alone in their step), scroll (direction = reading direction: down to see what follows), swipe (target → to), drag (held, moved, dropped: target → to), zoom (direction in|out, target = center, amo…
appsPhone apps. info: version, install and update dates, source, enabled. stop: force-stop (no data lost, the app starts again when opened). clear: delete all its data. uninstall: remove it (a system app is only hidden for the user; restore brings it back by its full package name). install: an .apk from the PC (path; sensitive folders refused), as an update keeping its data when already there. clear, uninstall and install: confirm=true, only on the user's explicit order. Never for the system's own parts (phone, interface, Settings, store, keyboard, Google services), nor clear/uninstall of banking,…
captureSave the phone screen as a file on the PC, e.g. to show a problem to a support service: folder dest (default ~\Downloads\Telephone, same folder rules as files pull), never overwrites; the response gives the path. screenshot: full resolution PNG (JPEG if name ends in .jpg), security codes blacked out as on look images. record: video of the next `seconds` (default 30, max 180), then saved. start: begins a video and returns at once so gestures can go on (stops by itself after `seconds`, default and max 180); stop: ends it and saves it. Video: MP4, 720p, 4 Mbit/s, no sound, one at a time. Security…
checkupPhone checkup: system, security patch, battery, storage, memory, apps outside official stores, wireless debugging, accessibility. clean=true also clears app caches (no data loss).
clipboardThe phone's clipboard. read: its text (security codes masked; a lone code, password or token is never shown), or says it is empty or not text. write: puts `text` in it (accents and emoji allowed, 256 KB at most), without pasting it anywhere; it replaces what the user had copied.
draftPrepare a reply without sending it: opens the conversation with the text already written (accents allowed). to: address book name ("Alice"), number (06…, +33…, 36179: digits alone are a number) or conversation number in brackets "[N]". app: sms (SMS/RCS) or whatsapp. Sending: only if the user explicitly says "send" for THIS draft, then act(steps=[{"do":"tap","target":"Send","confirm":true,"accord":"<token>"}]) with the token returned here for this exact draft (any change to it voids the token) and check on the image that it went out.
filesFiles in the phone's shared storage (/sdcard: DCIM/Camera for photos, Download, Documents…). list: folder contents, most recent first (default /sdcard/Download). pull: copies path from the phone to the PC (dest, default ~\Downloads\Telephone; never overwrites). push: puts the PC file path into the phone folder dest (default /sdcard/Download; refused if it already exists). Nothing is ever deleted. PC side: Downloads, Documents, Desktop, Pictures and Videos are free; elsewhere confirm=true (the user's explicit order for that path); keys, secrets (.ssh, .env…) and Windows startup never.
functionsStructured actions that apps expose to assistants (Android AppFunctions): alarms, timers and stopwatch, reminders, notes, calendar events, contacts, gallery, files, calls… on Samsung and Google apps, run directly without the screen (works even with the phone locked). list: the apps and their functions (app: one app). run: app (package or part of its name), function (name from list, e.g. findAlarms), params as the app expects them: {"findAlarmsParams": {}}; when a field is missing, the app's error names it. Reading is free; creating or updating changes the user's data (do it on their order); de…
infoRead-only. location: last known position (accuracy, age, Maps link). calls: recent calls (incoming, outgoing, missed). contacts: numbers for a name (query). calendar: events of the next `days` days.
launchOpen an app by package name (com.whatsapp) or a fragment of it ("whatsapp", "maps"), then show it. Precise screen: action (android.settings.WIFI_SETTINGS, android.intent.action.VIEW…) and/or data (URI or deep link), extras {name: string, integer or boolean}; app then limits the target to that app. The target is resolved first, then reported with the new foreground. Calling, sending or paying directly (CALL, auto-send extras, payment actions and links): confirm=true, set only on the user's explicit order for this intent, plus accord=<token> returned for THIS exact intent once the user said yes …
logsAndroid logs (logcat), to understand why an app crashed or misbehaves; newest last, about 30,000 characters at most. crash: crashes grouped one per block (time, package, Java exception and its "Caused by", first app frames; native crashes: signal, cause, backtrace). anr: "app not responding" events (Android's drop box, kept for days, and the recent event log) with their reason. recent: last `lines` log lines (default 200, max 2000). app: package or part of its name, as in launch (an uninstalled app: its full package name); for recent, its running processes, those Android started earlier, and l…
lookSee the phone screen: numbered elements [N] (role, text, states, center @x,y), and an image when needed. show: auto (default, text first: the list alone; the image is joined when the screen has no readable element), both (list and image), image, elements, none. query: list only the elements containing this text. region [x1,y1,x2,y2]: zoom (pixels of the last full image). marks (show=both): [N] numbers drawn on the image, with a thin outline of each element (auto = all when few, else unnamed elements only; all; none). Unreadable UI tree: the image is not sent (codes not masked), unless confirm=…
mapMap of the whole phone, read without touching the screen. find (default): where something is set, from the user's words (query="read notifications on the Buds"; titles are in the phone's language, accents optional) → path from Settings, current value, and how to open it directly (launch(action=…) or map(action="open", target=…, key=…), the row highlighted). Built from the phone's own Settings app (every screen, French titles) plus the app screens noted on screen; rebuilt by itself after an update. open: target (package/activity from find), optional key to highlight a row. snapshot: saves the p…
messagesThe phone's SMS and RCS messages. No argument: recent conversations [N] with contact, date, unread count. conversation=N, or contact="Alice" (address book name): the last `limit` messages (up to 500), with the `images` most recent photos attached (0 for none; videos and files are only mentioned). before: ISO date given at the end of a response ("older: …") to read the next, older page. Response limited to about 60,000 characters, cut between two messages.
notificationsNotifications shown on the phone (app, time, title, text), most recent first; security codes masked. all=true: also the ongoing ones (running services). For dismissed notifications, Android keeps only the app name.
Show 3 more tools
phoneLink status: phone reached (USB or Wi-Fi), model, screen, foreground app.
settingsReversible phone settings: without value, reads the state; otherwise changes it, then reads it back. wifi/bluetooth/data/location/nfc: on|off (turning Wi-Fi off is refused when the link goes through it). dnd (do not disturb): on|off|priority|alarms. brightness: 1-100 (%) or auto. volume: 0-100 (%, media).
webWeb pages open on the phone, read through Chrome's DevTools (like a browser debugger), without scrolling or touching the screen. read: the whole text of the page (also what is outside the screen), its title, address and links; default = the page of the app in the foreground (Chrome, or an app whose WebView allows debugging), or tab=N from tabs. query: keep only the lines containing this text. tabs: the pages reachable. Read-only: no field value (passwords included) and no script change; codes, tokens, e-mails and numbers masked; banking, payment and identity apps never read. Chrome answers onl…
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Weekly downloads
- 1,519
- Last commit
- Oct 24, 2026 (4 days ago)
- Last release
- Oct 26, 2026 (2 days ago)
- Last package publish
- Oct 24, 2026 (4 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.pironjulien/nexus-android- Version
- 0.14.1
- Auth
- No auth
- Packages
- pypi nexus-android
- License
- MIT
- Repository
- github.com/pironjulien/NexusAndroid
- Website
- julienpiron.fr/nexusandroid/
- First seen
- Oct 24, 2026
- Last checked
- Oct 26, 2026
More from pironjulien
- 0.585score
NexusAGYmail
pironjulien
Gmail for AI agents through the official API: Google's tool names, sends only after the user's yes.
ConnectorAFreshness: ALocalClaude Code +5 - 0.581score
NexusBrowser
pironjulien
Your real Chrome, driven in background tabs.
ConnectorAFreshness: ALocal★ 4↓ 955/wkClaude Code +5 - 0.571score
NexusWindows for Antigravity
pironjulien
Windows computer use in the background for Antigravity: UI Automation, Win32 messages, read back.
ConnectorAFreshness: ALocal★ 5↓ 182/wkClaude Code +5 - 0.564score
NexusWindows for Claude
pironjulien
Windows computer use in the background: UI Automation and Win32 messages, every action read back.
ConnectorAFreshness: ALocal★ 4↓ 89/wkClaude Code +5 - 0.540score
NexusWindows for Codex
pironjulien
Windows computer use in the background for Codex: UI Automation, Win32 messages, read back.
ConnectorAFreshness: ALocal★ 3Claude Code +5
Cite this page
NexusAndroid MCP server. Agent Mart. https://agentmart.dev/connectors/pironjulien-nexus-android (last updated 2026-10-26)