Skip to main content
Glama

Robot Actions — Remote Device Control

ios_set_location

Set the iOS device's GPS location for testing location-aware apps. Needs no automation session: it drives the device's own developer location-simulation service, and falls back to the automation agent's route only if that is unavailable. Stays in effect until ios_clear_location, a device reboot, or a restart of the device service (the simulation is a held connection on iOS 17+ — the reply's transport says which route ran). SCOPE: only affects apps that read CoreLocation (CLLocationManager, Safari navigator.geolocation). Does NOT affect apps using IP-based geolocation, Wi-Fi/cell-tower triangulation, or anti-fraud detection paths.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
udidYesiOS device UDID
latitudeYesLatitude in decimal degrees, e.g. 37.7749
longitudeYesLongitude in decimal degrees, e.g. -122.4194

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and delivers thoroughly: no session required, route fallback, persistence semantics, iOS 17+ held-connection behavior, the reply's `transport` field, and explicit scope limits. This lets an agent anticipate side effects and avoid misuse (e.g., IP-based geolocation apps).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but efficient: purpose is front-loaded, behavioral details are grouped logically, and the SCOPE sentence clearly bounds applicability. There is no filler or redundant repetition of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers invocation prerequisites, persistence, route fallback, and affected software paths, which is strong given no output schema and no annotations. It does omit some operational details like device/service prerequisites or explicit error/return structures beyond the transport note, so it is not fully exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already documents udid, latitude, and longitude with clear examples. The tool description adds little parameter-level meaning beyond 'GPS location,' so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource: 'Set the iOS device's GPS location for testing location-aware apps.' It further distinguishes itself from related tools by detailing the mechanism (developer location-simulation service vs. automation agent fallback) and the scope, making it clearly different from ios_get_location, ios_clear_location, and ios_play_location_route.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: when to use it (testing location-aware apps), that no automation session is needed, how fallback works, and when the effect ends (until ios_clear_location, reboot, or service restart). It does not explicitly name sibling alternatives such as ios_play_location_route for route playback, so it falls just short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources