Resources¶
โ Implemented ๐งช Tested
Current state: All resources listed here are implemented. See the Status Glossary for chip definitions.
AutoMobile exposes resources through the Model Context Protocol for AI agents to access.
MCP Resources provide read-only access to:
- Navigation graph data
- Test execution history
- Performance metrics
- Device information
Available Resources¶
This page documents the primary resources. It is not an exhaustive list of every registered resource โ the server also registers observation, device images, test runs, video recording, device snapshots, databases, failures, storage, app files, feature flags, and network resources (see the
register*Resources()calls insrc/server/index.ts).
Navigation Graph¶
URI: automobile:navigation/graph
Returns the current navigation graph showing:
- Known screens and their IDs
- Screen transitions and triggers
- UI elements that cause navigation
See Navigation Graph for details.
Navigation Apps¶
URI: automobile:navigation/apps
Lists the apps that have a persisted navigation graph, so an agent (or the desktop’s offline app picker) can choose an app to browse. This resource is device-independent โ it reads persisted data only and requires no connected device. An app appears only when it has at least one recorded screen; an empty database returns an empty list rather than an error.
Each entry provides:
appIdโ the application package id (e.g.com.example.app)displayNameโ human-readable name when known; currently alwaysnullbecause the persisted schema has no display-name columnlastUpdatedโ ISO-8601 timestamp of the app record’supdated_at
Entries are ordered newest-first by the app record’s updated_at.
Response shape:
{
"apps": [
{
"appId": "com.example.app",
"displayName": null,
"lastUpdated": "2026-01-02T00:00:00.000Z"
}
]
}
lastUpdatedcaveat: this field reflects the app record’snavigation_apps.updated_at, which is bumped on the main navigation-recording paths but not by every graph mutation (e.g.promoteSuggestion,updateNodeScreenshot,recordBackStack). It can therefore lag those changes, and theupdated_atordering can too โ do not treat it as the exact time of the most recent graph mutation. Tracked by #4931.
Booted Devices¶
URI: automobile:devices/booted
Returns booted device inventory across Android and iOS, including:
- Total, per-platform, virtual, and physical device counts
- Optional daemon pool status (idle/assigned/error) when the daemon is active
- Per-device pool assignment (status + session UUID) when available
URI Template: automobile:devices/booted/{platform}
This resource supersedes the device data that the listDevices tool used to return. listDevices still exists as an MCP tool, but now returns resource guidance โ a message pointing callers at these resource URIs โ rather than device data (see listDevicesHandler in src/server/deviceTools.ts). The separate daemon_available_devices tool was removed.
Installed Apps¶
URI: automobile:apps
Returns installed apps for booted devices. deviceId is required. Supports query parameters for filtering:
platform(androidorios)search(case-insensitive partial match on package name or display name when available)type(userorsystem)profile(Android user ID, e.g.0or10)deviceId(booted device ID, required)
Example URIs:
automobile:apps?deviceId=emulator-5554&platform=android&search=slack&type=userautomobile:apps?deviceId=YOUR_IOS_DEVICE_ID&platform=ios&search=calendar
Clients can subscribe to specific automobile:apps?deviceId=... URIs for change notifications and re-read filtered URIs after updates.
App Container Files¶
URI Template: automobile:devices/{deviceId}/apps/{appId}/files/{container}
Lists files in a logical app container without requiring callers to know Android or iOS container paths. Supported logical containers are:
documentslibrarycachetmpexternalFileswhere the platform supports it
List responses include each entry’s relative path, name, resourceUri, isDirectory marker, byte size for files when available, and lastModified timestamp when the platform can report one. Host absolute app-container paths are intentionally omitted.
Example list request:
{
"method": "resources/read",
"params": {
"uri": "automobile:devices/emulator-5554/apps/com.example.app/files/documents"
}
}
URI Template: automobile:devices/{deviceId}/apps/{appId}/files/{container}/{path}
Reads a single file from an app container. Nested paths and filenames containing spaces are encoded as URI path segments. Binary content is returned as an MCP blob so it can be round-tripped losslessly.
UTF-8 text files are returned as text with text/plain; charset=utf-8 so clients do not need Android or iOS specific decoding logic.
iOS simulator examples:
automobile:devices/AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE/apps/com.example.app/files/documents/fixtures/welcome.pngautomobile:devices/AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE/apps/com.example.app/files/cache/responses/home.jsonautomobile:devices/AAAAAAAA-BBBB-CCCC-DDDD-EEEEEEEEEEEE/apps/com.example.app/files/tmp/session/output.bin
Example read request:
{
"method": "resources/read",
"params": {
"uri": "automobile:devices/emulator-5554/apps/com.example.app/files/documents/fixtures/welcome%20image.png"
}
}
Test Timing History¶
URI: automobile:test-timings
Returns historical test execution data:
- Test class and method names
- Average execution duration
- Success/failure rates
- Device information
- Supports query parameters for filtering and sorting (e.g., lookbackDays, limit, minSamples, orderBy, sessionUuid).
See Daemon for test timing aggregation.
Performance Results¶
URI: automobile:performance-results
Returns recent UI performance audit results:
- Scroll framerate measurements
- Frame drop counts
- Render time statistics
Localization Settings¶
URI: automobile:devices/{deviceId}/localization
Returns current localization settings for a device:
- Locale tag
- Time zone
- Text direction
- Time format
- Calendar system
Using Resources¶
AI agents can request resources via MCP:
{
"method": "resources/read",
"params": {
"uri": "automobile:navigation/graph"
}
}
The agent receives structured data that it can analyze and use to inform decisions.
Implementation¶
See MCP Server for technical implementation details of resource providers.