Server has 8 tools with complete JSON schemas and descriptions. Naming follows verb_noun pattern (open_*, close_*, launch_*, run_*, list_*). Descriptions are present (avg ~100 chars) but lack LLM-optimized guidance on WHEN to use each tool vs alternatives. Parameter schemas are well-typed with descriptions. Critical gap: no error recovery guidance (e.g., 'If core dump not found, call list_crash_files()'), no output schema documentation, and mutual exclusivity in run_lldb_cmd is documented but not enforced with clear error messages. Tool composition is sound (each does one thing), but descriptions could better explain prerequisites and failure modes.
Close a launch debug session and terminate the program
Close a core dump analysis session
Close a remote debugging session
Launch a program under LLDB for debugging on macOS
List core dump and crash report files on macOS (searches /cores/, ~/Library/Logs/DiagnosticReports/)
Open and analyze a macOS core dump file with LLDB
Connect to a remote debugserver target (macOS remote debugging via debugserver)
run_lldb_cmd has three mutually exclusive parameters (core_dump_path, remote_address, program_path) but no validation error message documented. LLM may pass multiple or none, causing silent failures.
No output schema documented for any tool. Descriptions state 'returns text' but LLMs need to know exact field structure (e.g., does list_crash_files return {files: [{name, path, size}]} or plain text?). Blocks downstream tool chaining.
Error handling lacks recovery guidance. When 'Core dump not found' error occurs, description should suggest 'Call list_crash_files() to discover available dumps.' Currently returns bare error.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | <=2025-11-25 | v2 |
Execute an LLDB command in an existing debug session
Descriptions do not explain WHEN to use each tool vs alternatives. E.g., when should LLM call open_lldb_core vs open_lldb_remote vs launch_debug? No guidance on prerequisites (e.g., 'Requires LLDB installed and debugserver running for remote').
Boolean parameters (include_backtrace, include_threads, etc.) default to false, which is safe, but descriptions do not explain what data is MISSING if false. LLM may not realize it needs to set these flags to get useful output.