Skip to main content
Glama
conorluddy

XC-MCP: XCode CLI wrapper

by conorluddy

Manage IDB Targets

idb-targets
Idempotent

List, inspect, focus, and manage IDB simulator/device connections. Filter targets by state or type, get detailed device info, or establish and close companion connections for faster testing.

Instructions

idb-targets

Unified IDB target management - discover, inspect, focus, and manage connections.

Overview

Single tool for IDB target discovery and connection management. Routes to specialized handlers while maintaining clean operation semantics.

Operations

list

List all available IDB targets.

Parameters:

  • state (string, optional): Filter by state - 'Booted' or 'Shutdown'

  • type (string, optional): Filter by type - 'device' or 'simulator'

Example:

await idbTargetsToolUnified({
  operation: 'list',
  state: 'Booted'
})

Returns: List of targets with metadata, state, and type information.


describe

Get detailed information about a specific target.

Parameters:

  • udid (string): Target UDID

Example:

await idbTargetsToolUnified({
  operation: 'describe',
  udid: 'ABC-123-DEF'
})

Returns: Detailed target information including screen dimensions, device model, iOS version.


focus

Focus simulator window for interactive testing.

Parameters:

  • udid (string): Simulator UDID

Example:

await idbTargetsToolUnified({
  operation: 'focus',
  udid: 'ABC-123-DEF'
})

connect

Establish IDB companion connection to target.

Parameters:

  • udid (string, optional): Target UDID - auto-detects if omitted

Example:

await idbTargetsToolUnified({
  operation: 'connect',
  udid: 'ABC-123-DEF'
})

Notes: Establishes persistent gRPC connection for faster subsequent operations. Useful for warming up connections before automated testing.


disconnect

Close IDB companion connection to target.

Parameters:

  • udid (string, optional): Target UDID

Example:

await idbTargetsToolUnified({
  operation: 'disconnect',
  udid: 'ABC-123-DEF'
})

  • idb-install / idb-launch / idb-terminate / idb-uninstall: App management on IDB targets

  • idb-ui-tap, idb-ui-input, idb-ui-gesture: UI automation on targets

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNo
udidNo
stateNo
operationYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.1.0

TDQS

A4.6/5.0
Behavior4/5

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

Annotations declare idempotentHint=true, readOnlyHint=false, destructiveHint=false; description adds specific behavioral detail for the connect operation (persistent gRPC connection for faster subsequent calls). It does not contradict annotations and adds useful context, though it could say more about side effects of focus/disconnect. This is solid beyond what annotations provide.

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?

Well-structured with a clear overview, operation-specific sections, parameters, examples, and notes. The length is justified by the five operations; each sentence serves a purpose. Front-loaded with the overview and then detailed operations. No unnecessary verbosity.

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 multi-operation tool with no output schema, this description is thorough: includes parameter meanings, examples, return types for list and describe, behavioral notes for connect, and a related-tools section. An agent has all necessary information to invoke correctly and understand the tool's purpose in the broader toolset.

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?

Schema description coverage is 0%, but the description fully compensates: it explains each parameter (state, type, udid, operation) in the context of each operation, with examples and notes (e.g., connect auto-detects udid if omitted). This is exemplary parameter documentation.

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?

Clear, specific statement of purpose: 'Unified IDB target management - discover, inspect, focus, and manage connections.' It lists concrete operations and distinguishes from sibling tools by being the unified IDB target tool, not just a generic list or control tool.

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?

Provides clear context that this is the unified tool for IDB target management, covering all operations. It does not explicitly contrast with simctl or other alternatives, but its role is evident from the description and the operation set. Not fully explicit on exclusions, hence 4.

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