enumerate_devices
List all connected devices to identify available targets for Frida instrumentation, displaying 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)The MCP tool handler for 'enumerate_devices'. It is registered via the @mcp.tool() decorator and delegates to describe_devices() for listing Frida devices with metadata.@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()
- Core helper method in DeviceSelector.describe_devices() that implements the logic to enumerate Frida devices using frida.enumerate_devices() and enriches each with hint, alias, and default_candidate information.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
- Module-level helper function describe_devices() that ensures the DeviceSelector is initialized and delegates to its describe_devices() method.def describe_devices() -> List[Dict[str, str]]: global _selector if _selector is None: _selector = DeviceSelector() return _selector.describe_devices()
- src/frida_mcp/cli.py:225-225 (registration)The @mcp.tool() decorator registers the enumerate_devices function as an MCP tool in the FastMCP server.@mcp.tool()