MCP server for Garmin Connect IQ simulator control, providing tools for device management, app building, testing, and automation
13 tools with complete input schemas and descriptions. Naming follows verb_noun pattern (list_, build, run_, get_, set_, press_). Descriptions are adequate (50-150 chars) but lack LLM-optimized guidance on WHEN to use each tool or dependencies between them. Parameters are typed and described, but many lack constraints (enums, ranges). Output schemas are not documented in the visible code. Error handling structure exists (ToolFailure with code/message/fix) but recovery guidance is minimal. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications.
Build a Connect IQ application for a target device
Diagnose the health of the simulator environment and permissions
Retrieve simulator and application logs
List installed simulator devices, optionally filtered by project manifest or jungle file
List installed Connect IQ SDKs and identify the active SDK
Press a verified simulator hardware button. With allowFocus=true, this visibly brings Garmin Simulator forward and leaves it frontmost. Input is verified for 19 devices, per device and per SDK version — six of them on SDK 9.1.0 only. Call list_devices and read inputSupported.
Build and run an application in the simulator
Output schemas not documented. Tools return ToolEnvelope<Result> but Result type is not specified per tool. LLMs cannot plan downstream calls or extract required fields.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools are marked READ_ONLY or WRITE in metadata but not in MCP tool definitions. Agents cannot infer safety/retry semantics.
Descriptions lack WHEN-to-use guidance and dependencies. E.g., run_app says 'Build and run' but does not explain when to call it vs build+sim_start separately, or that sim_start must be called first.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2025-06-18+ | v2 |
Build and run unit tests in the simulator
Capture a screenshot from the simulator
Set the GPS position in the simulator
Start the Garmin Connect IQ simulator
Get the current status of the Garmin Connect IQ simulator
Stop the Garmin Connect IQ simulator
Parameters lack constraints. 'device' is a string with no enum or validation hint. 'limit' in get_logs has no min/max. LLMs may pass invalid values; no self-correction guidance.
Error recovery guidance minimal. ToolFailure includes 'fix' field but examples in code show generic messages. No guidance like 'If device not found, call list_devices() first.'