Skip to main content
Glama
axiomzero-qed

motor.mcp_server

DAXQO Motor

Local GUI exploration, verified navigation and persistent app maps for any harness.

Motor 将页面观察、有限探索、语义导航和动作核验封装为独立工具。支持 Python API、命令行、MCP 和可替换设备适配器,采集器为可选组件。

  • Python 3.10+, standard-library-only core, MIT license.

  • Persistent app maps, bounded exploration and observed action verification.

  • Device leases, cancellation and escalation when verification is uncertain.

  • No model provider or cloud service required.

Install and try without a phone

python -m pip install "git+https://github.com/axiomzero-qed/DAXQO-Motor.git@v0.1.0"
daxqo-motor --adapter motor.demo:create_adapter doctor
daxqo-motor --adapter motor.demo:create_adapter --data ./data scout demo.app --page-only --max-depth 1

From a source checkout: python -m pip install .. Motor runs without Trajectory Collector or a sibling source directory. The demo is a synthetic in-memory backend, not a physical phone.

Related MCP server: syl-mcp

Connect another harness over MCP

python -m motor.mcp_server --adapter motor.demo:create_adapter --map-db ./data/map.sqlite3 --source my_harness

Tools: motor_map, motor_scout, motor_navigate, motor_reflex, motor_cancel.

Replace the demo with Android or a trusted module:factory. Every entry point uses the same guarded Motor engine. See host config and adapter contract.

Physical Android adapter

A phone needs a compatible DAXQO Android bridge with Motor lease/event routes and owner-enabled control permissions. Pairing and Android permissions remain enforced. Another harness does not need DAXQO's agent server or model configuration.

On the phone's existing Linux:

python -m motor.mcp_server --state-dir /path/to/bridge/pairing-state --map-db ./data/map.sqlite3

From an authorized USB host:

daxqo-motor --adb /path/to/adb --serial DEVICE_SERIAL doctor
python -m motor.mcp_server --adb /path/to/adb --serial DEVICE_SERIAL --map-db ./data/map.sqlite3

ADB comes from --adb, DAXQO_ADB, PATH or Android SDK environment variables. --android-package selects another compatible bridge APK. Use --device-id with a stable UUID if the bridge has no identity endpoint.

Native build instructions use explicit compatible source paths. Python installation neither installs an APK nor enables phone permissions.

Optional recording

Install Collector separately before using recording or the collector extra:

python -m pip install "git+https://github.com/axiomzero-qed/DAXQO-Trajectory-Collector.git@v0.1.0"
daxqo-motor --serial DEVICE_SERIAL --trajectory-data /path/to/shared-dataset scout io.daxqo.motorfixture --collect

MCP defaults to no collection. --trajectory-feedback attaches context to an existing bridge recording session without starting/stopping it or ACKing records. CLI --collect explicitly owns a recording session and requires a Dataset root. Map and Dataset paths are separate. See Collector integration.

Python API

from pathlib import Path
from motor import Motor, MapStore
from motor.plugins import load_adapter

adapter = load_adapter("motor.demo:create_adapter")
with MapStore(Path("./data/map.sqlite3")) as store:
    result = Motor(adapter, store).scout("demo.app")

External adapters supply observations, truthful execution results and device-wide ownership enforcement. An optional recording sink can be passed to Motor(adapter, store, sink=None).

Development

python -m pip install ".[dev]"
python -m unittest discover -s tests
python -m build
python examples/mcp_smoke.py

The independent MCP client test uses the synthetic backend. Physical-device acceptance remains separate. Historical results: ACCEPTANCE.md, BENCHMARK.md.

Source releases exclude device data, credentials, generated reports, APKs and website sources.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP clients to inspect and operate native macOS apps through the Accessibility tree with safety-gated semantic actions, stale-state rejection, and outcome verification. Supports tools for app state reading, element finding, clicking, typing, form filling, window capture, and guarded workflows like menu selection and Save As.
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP clients to observe and control Windows desktop applications by reading UIA element trees and capturing screenshots, then acting through UIA patterns or synthesized mouse and keyboard input. It runs standalone on an interactive Windows session, without requiring the original host application.
    1
    -