MCP server for streaming macOS Console.app and iOS device logs — works with Claude, Copilot, and any MCP-compatible AI assistant
Console-mcp has 10 tools with complete input schemas and descriptions, but quality is uneven. Tool names follow verb_noun convention (get_, list_, stream_) which is good. However, descriptions are generic and lack actionable context for LLM selection. Parameters have types and enums where appropriate (logLevel), but descriptions are minimal (10-30 chars). No output schemas are documented. Error handling is present but not recovery-focused. The server lacks tool annotations (readOnlyHint, idempotentHint) despite all tools being read-only. No pagination support despite tools returning potentially large result sets.
Get macOS Console.app logs with optional filtering by process name and log level
Get full details of a specific crash report by filename
Get list of crash reports from ~/Library/Logs/DiagnosticMessages with optional process filtering
Get logs from a connected iOS device using idevicesyslog with optional process filtering
Get logs from an iOS Simulator with optional process filtering
List all connected iOS devices with their details (UDID, name, model, connection type)
List all available iOS Simulators with their details (UDID, name, state, runtime, availability)
No output schemas documented. LLMs cannot infer what fields to expect from tool responses, forcing them to guess at downstream field names and types.
Tool descriptions lack context for LLM selection. Descriptions like 'Get macOS Console.app logs with optional filtering' (65 chars) do not explain WHEN to use this tool vs stream_console_logs, or what the output structure is.
No tool annotations (readOnlyHint, idempotentHint). All 10 tools are read-only and safe to retry, but this is not declared. LLMs cannot infer safety properties and may avoid retrying on transient failures.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Stream macOS Console.app logs in real-time with optional process filtering
Stream logs from a connected iOS device in real-time with optional process filtering
Stream logs from an iOS Simulator in real-time with optional process filtering
No pagination support. Tools like list_connected_devices and list_simulators return unbounded lists. If 50+ devices/simulators exist, response bloats context window. No limit, offset, or cursor parameters.
Parameter descriptions are minimal (10-30 chars). 'Optional process name to filter logs' lacks format guidance. Should specify: is it a regex, substring match, or exact match? What happens if process not found?