Problem
Commands that only work on specific platforms are not marked as such in CLI help or MCP tool descriptions. LLMs discover platform limitations only after hitting PLATFORM_NOT_SUPPORTED errors.
Platform-specific commands with no marking:
| Command |
iOS |
Android |
macOS |
| set-renderer / get-renderer |
- |
- |
macOS only |
| safari-auth |
iOS only |
- |
- |
| debug-screens |
iOS only |
- |
- |
| set/get-debug-overlay |
iOS only |
- |
- |
| set/get-tv-sync |
iOS only |
- |
- |
| set-geolocation |
error |
works |
- |
| set-request-interception |
error |
stub |
- |
| show-keyboard / hide-keyboard |
works |
works |
not supported |
Inconsistent error behavior:
- iOS returns
PLATFORM_NOT_SUPPORTED for geolocation/interception
- Android returns stub success responses for the same endpoints
- Neither tells the LLM upfront that the command won't work
Proposal
- Add
platforms field to MCP tool definitions: ["ios", "android", "macos"]
- Add
--platform note to CLI help for restricted commands
- Include platform info in
--llm-help output
- Android stubs should return
PLATFORM_NOT_SUPPORTED like iOS (or both should return stub success — pick one, be consistent)
get-capabilities response should be surfaced in discovery so LLMs can check before calling
Problem
Commands that only work on specific platforms are not marked as such in CLI help or MCP tool descriptions. LLMs discover platform limitations only after hitting
PLATFORM_NOT_SUPPORTEDerrors.Platform-specific commands with no marking:
Inconsistent error behavior:
PLATFORM_NOT_SUPPORTEDfor geolocation/interceptionProposal
platformsfield to MCP tool definitions:["ios", "android", "macos"]--platformnote to CLI help for restricted commands--llm-helpoutputPLATFORM_NOT_SUPPORTEDlike iOS (or both should return stub success — pick one, be consistent)get-capabilitiesresponse should be surfaced in discovery so LLMs can check before calling