Skip to main content
Glama
conorluddy

XC-MCP: XCode CLI wrapper

by conorluddy

Shutdown Simulator

simctl-shutdown
Idempotent

Shut down iOS simulator devices by UDID, all booted, or all devices, with clear feedback for already shutdown or failed shutdowns.

Instructions

simctl-shutdown

Shutdown iOS simulator devices with intelligent device management.

Overview

Gracefully shuts down one or more iOS simulator devices. Supports shutting down specific devices, all currently booted devices, or all devices at once with smart targeting options. Better error handling with clear feedback when devices cannot be shut down.

Parameters

Required

  • deviceId (string): Device UDID, "booted" for all booted devices, or "all" for all devices

Returns

Shutdown status with device information, duration, success indicator, command output, and next step guidance. Handles common scenarios like device already shutdown gracefully.

Examples

Shutdown specific device

await simctlShutdownTool({ deviceId: 'ABC-123-DEF' });

Shutdown all booted devices

await simctlShutdownTool({ deviceId: 'booted' });

Shutdown all devices

await simctlShutdownTool({ deviceId: 'all' });
  • simctl-boot: Boot device after shutdown

  • simctl-list: Find device UDID to shutdown

  • simctl-delete: Delete device after shutdown (required for deletion)

Notes

  • Smart device targeting: "booted", "all", or specific UDID

  • Graceful shutdown operation

  • Handles "already shutdown" scenario without error

  • State tracking updates internal device state for better recommendations

  • Batch operations efficiently handle multiple device shutdowns

  • Required before device deletion (safety check)

  • Use "booted" to quickly shutdown all running simulators

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
deviceIdYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv4.1.0
  2. Removedv1.1.0
  3. First observedv1.0.0

TDQS

A4.7/5.0
Behavior5/5

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

Beyond the idempotentHint and destructiveHint annotations, the description discloses meaningful behaviors: graceful shutdown, handling of 'already shutdown' without error, batch operation efficiency, internal state tracking, and a safety-check relationship with device deletion. These details help an agent predict side effects and downstream requirements.

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

Conciseness4/5

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

The description is well-structured with Overview, Parameters, Returns, Examples, Related Tools, and Notes sections, making it easy to scan. It is somewhat verbose for a single-parameter tool, and some notes repeat earlier content, but every section adds practical value and nothing feels irrelevant.

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

Completeness5/5

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

For a simple one-parameter tool, the description is complete: it documents the only parameter, describes return information, provides examples for all valid value categories, notes edge-case handling, and explains the relationship to deletion and state tracking. With no output schema present, the Returns section helps fill that gap.

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

Parameters5/5

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

The schema provides no description coverage (0%), but the description fully compensates by explaining that deviceId accepts a UDID, 'booted', or 'all', and illustrates each value with concrete examples. This is exactly the semantic information an agent needs and would not get from the schema alone.

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?

The description opens with 'Shutdown iOS simulator devices' and elaborates with a specific verb and resource: 'Gracefully shuts down one or more iOS simulator devices.' It clearly distinguishes the tool from siblings like simctl-boot and simctl-list by naming its exact operation and supported targeting modes.

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 Related Tools section explicitly connects simctl-shutdown to simctl-boot, simctl-list, and simctl-delete, and notes it is 'Required before device deletion.' It also gives practical guidance like using 'booted' for quick shutdown of all running simulators. It stops short of explicit when-not-to-use exclusions, such as distinguishing shutdown from simctl-terminate, so it is slightly below a perfect score.

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