Skip to main content
Glama
mgcrea

@mgcrea/mcp-ios-simulator

by mgcrea

iOS Simulator: Get Crash Log

ios_simulator_get_crash_log
Read-only

Read one simulator crash report and return what matters in it: the exception, why the process was terminated, any application-specific message, and the faulting thread's top frames with library names resolved.

Instructions

Read one simulator crash report and return what matters in it: the exception, why the process was terminated, any application-specific message, and the faulting thread's top frames with library names resolved. The full report's path is returned too; it is often tens of kilobytes, so read it only when the summary is not enough. A Swift fatalError's message may not be in the report at all — on a simulator it goes to the app's stderr.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesThe report's `name` from ios_simulator_list_crash_logs, e.g. "Canopy-2026-10-08-101500.ips" or "Retired/Canopy-2026-10-02-213409.ips". Older reports move under Retired/, so a name that worked yesterday may need listing again.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.1

TDQS

A4.5/5.0
Behavior5/5

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

Adds rich context beyond the readOnlyHint annotation: report size (tens of kilobytes), the fact that a Swift fatalError message may be absent from the report and instead appear on the app's stderr, and the summary-vs-full-report tradeoff. These are non-obvious behavioral traits an agent needs.

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?

Three sentences, each earning its place: what is returned, the cost/benefit of fetching the full file, and the fatalError caveat. Front-loaded with the core purpose.

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 single-parameter read tool with no output schema, the description covers what the summary contains, the tradeoff of the full report, and a significant real-world caveat about missing fatalError messages. No output schema exists, so the description appropriately explains what is returned.

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 coverage is 100% and the schema's `name` description already documents the filename pattern, Retired/ subfolder behavior, and where to get the name from list_crash_logs. The description adds no parameter detail beyond the schema, so a baseline 3 is appropriate.

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?

States a specific verb and resource ('Read one simulator crash report') and enumerates what it returns: exception, termination reason, app message, top frames with resolved libraries. This clearly distinguishes it from the sibling ios_simulator_list_crash_logs, which only lists.

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?

Tells the agent to read the full .ips path only when the summary is 'not enough', implying the summary is the default. It does not name list_crash_logs as the required prerequisite for obtaining the name, though the schema's description of `name` effectively routes the agent there.

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