Skip to content

Add cross-platform mobile and TV MCP automation - #43

Merged
setoelkahfi merged 3 commits into
developmentfrom
feature/android-device-mvp
Jul 31, 2026
Merged

Add cross-platform mobile and TV MCP automation#43
setoelkahfi merged 3 commits into
developmentfrom
feature/android-device-mvp

Conversation

@setoelkahfi

Copy link
Copy Markdown
Collaborator

Description

Adds a focused cross-platform MCP automation profile for Apple and Android devices. It unifies device discovery, target selection, capabilities, screenshots, app lifecycle, URLs, and input actions behind 18 canonical tools; keeps smb --mcp cloud-only; and exposes the automation surface through xcrs --mcp and smb --mcp --scope automation. Tool definitions, registry metadata, and documentation are updated for TDQS quality and mobile/TV discoverability.

Type of Change

  • Bug fix
  • New feature
  • Refactor (no functional change)
  • Documentation update
  • CI / tooling change

How Has This Been Tested?

  • cargo test --workspace --exclude smbcloud-auth-sdk-wasm
  • Manual testing (xcrs --mcp and smb --mcp --scope automation against a USB Android phone and Google TV Streamer)

Checklist

  • cargo check --workspace passes through strict Clippy/workspace compilation
  • cargo clippy --workspace --exclude smbcloud-auth-sdk-wasm --tests -- -D warnings passes
  • cargo fmt --all -- --check passes
  • No new unwrap() or expect() calls in production code
  • No new mod.rs files introduced
  • No new dependencies added
  • Error messages are user-friendly and surfaced through MCP errors

Release Notes

  • Added cross-platform mobile and TV app automation for Apple and Android devices through XCRS MCP tools.

setoelkahfi and others added 3 commits July 31, 2026 13:23
The Apple-platform MCP tools were named `smb_simulator_*` even though most
drive the app through a ControlKit runner on a simulator *or* a physical
device *or* macOS. That wrong scope signal, divergence from the verbs coding
agents already know (XcodeBuildMCP's `describe_ui`/`tap`/`screenshot`), and a
per-call `simulator_name`/`simulator_udid`/`host`/`controlkit_port` matrix with
no selection step made Codex, Copilot, and Claude Code pick the wrong tools.

- Rename host-agnostic actions to bare ecosystem verbs: `describe_ui`,
  `list_elements`, `tap`, `type_text`, `swipe`, `button`, `orientation_get/set`,
  `launch_app`, `terminate_app`, `capabilities`, `click` (macOS), `gesture`
  (visionOS). Keep truly simulator-only tools honest: `list_simulators`,
  `find_simulator`, `boot_and_install`, `open_url`.
- Add `use_target` so a simulator or device is selected once and later actions
  need no target arguments; missing target fields fall back to it.
- Consolidate near-duplicates: merge `device_screenshot` into a single
  auto-routing `screenshot`, fold `press_home` into `button`, and `watchos_tap`
  into `tap` (~25 tools down to 19).
- Rewrite descriptions to be intent-first with honest host scope and use-when
  hints, dropping "ControlKit"/"simulator" jargon from the user-facing surface.
- Update docs/mcp.md and docs/controlkit.md with the new names and a
  select-a-target-then-act workflow.

Both the `smb_*` and standalone `xcrs_*` surfaces are renamed in lockstep.

Release Notes:

- Renamed the Apple-platform MCP tools to clearer, host-agnostic names (e.g.
  `smb_tap`, `smb_describe_ui`, `smb_screenshot`) and added `smb_use_target` to
  select a simulator or device once for subsequent actions. This is a breaking
  change for any scripts using the previous `smb_simulator_*` tool names.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Unify Apple and Android device discovery, target selection, capabilities, and app control behind a focused 18-tool automation profile. Separate smbCloud tools from XCRS automation and update TDQS-oriented definitions, tests, registry metadata, and documentation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@setoelkahfi setoelkahfi added this to the 0.5.0 milestone Jul 31, 2026
@setoelkahfi
setoelkahfi merged commit 8cf409e into development Jul 31, 2026
6 checks passed
@setoelkahfi
setoelkahfi deleted the feature/android-device-mvp branch July 31, 2026 14:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant