Skip to main content
Glama

Get Debug Log

get_debug_log
DestructiveIdempotent

Retrieve the crash log written by a built Xojo app's UnhandledException handler, optionally deleting it after reading so the next crash starts a fresh log.

Instructions

Returns /tmp/xmcp_debug.log, which a built Xojo app writes from its App.UnhandledException handler when it crashes (usage-guide.md has the handler to add). This is how to see an exception in a built app; in a debug run the IDE's debugger catches exceptions instead, and get_system_log reads System.DebugLog output. No log file is a normal result that says so. With clear, the file is deleted after reading, so the next crash starts a fresh log. Needs no IDE.

Input Schema

NameRequiredDescriptionDefault
clearNoDelete the log file after reading it. Default false.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.7.1
    • changedInput schema / properties / clear / description
      Previous value: -"Delete log file after reading"New value: +"Delete the log file after reading it. Default false."
  2. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Goes beyond the annotations by explaining that a missing log file is a normal, self-describing result, that deletion only happens when clear is set (reconciling destructiveHint=true with a default non-destructive read), and that no IDE is required. It omits any mention of return size, truncation, or whether the full file is always returned, which matters since there is no output schema.

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?

Front-loaded with the resource and its origin, and every sentence carries information (alternative tools, empty-result semantics, clear behavior, no-IDE requirement). Some sentences are densely packed with parentheticals, which slightly hurts scannability.

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, it covers the return artifact, the normal empty case, the destructive-flag consequence, the setup prerequisite (adding the handler per usage-guide.md), and the sibling alternative. Nothing essential to a correct call is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds rationale the schema lacks: clear deletes the file so the next crash starts a fresh log. That explains the consequence of the flag rather than restating it.

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?

Names a specific artifact (/tmp/xmcp_debug.log), its producer (a built Xojo app's App.UnhandledException handler), and its purpose (seeing an exception in a built app). It also explicitly distinguishes itself from get_system_log, which reads System.DebugLog output, so an agent can route without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States when to use it (crash in a built app), when not to (a debug run, where the IDE debugger catches exceptions), and the alternative (get_system_log for System.DebugLog). Exclusions and alternatives are explicit rather than implied.

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