enumerate_devices
Lists all connected devices on the system for mobile and desktop application analysis with Frida MCP, providing device IDs, names, types, and connection details.
Instructions
List all devices connected to the system.
Returns:
A list of device information dictionaries containing:
- id: Device ID
- name: Device name
- type: Device type
- hint: How to reference the device via device_id
- alias: Configured alias for remote devices (if any)
- default_candidate: Whether the device is the current default choice
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/frida_mcp/cli.py:225-239 (handler)MCP tool handler for 'enumerate_devices', decorated with @mcp.tool(). Returns formatted device list via describe_devices() helper. Includes schema in type annotation and docstring describing output fields.@mcp.tool() def enumerate_devices() -> List[Dict[str, Any]]: """List all devices connected to the system. Returns: A list of device information dictionaries containing: - id: Device ID - name: Device name - type: Device type - hint: How to reference the device via device_id - alias: Configured alias for remote devices (if any) - default_candidate: Whether the device is the current default choice """ return describe_devices()
- Thin wrapper around DeviceSelector.describe_devices(), ensuring selector is initialized.def describe_devices() -> List[Dict[str, str]]: global _selector if _selector is None: _selector = DeviceSelector() return _selector.describe_devices()
- Core implementation: Enumerates devices with frida.enumerate_devices(), adds metadata like hints, aliases, and default status using config.def describe_devices(self) -> List[Dict[str, str]]: devices = self._frida.enumerate_devices() descriptions: List[Dict[str, str]] = [] default_choice = ( self._config.default_device or "auto" ).strip().lower() or "auto" fallback_order = self._config.fallback_order() for device in devices: entry = { "id": device.id, "name": device.name, "type": device.type, } entry["hint"] = self._usage_hint(device) entry["default_candidate"] = self._is_default_candidate( device, default_choice, fallback_order ) alias = self._config.address_to_alias.get( _normalize_remote_identifier(device.id) ) if alias: entry["alias"] = alias descriptions.append(entry) return descriptions