Skip to main content
Glama

DebugTakeOverListener

Start an ABAP debug session with at least one breakpoint, attach to the first caught request, and take over from another debugger listening for the same SAP user.

Instructions

[read-only] [debug] Opens a debug session: arms breakpoints, listens for a debuggee and attaches the first one caught. Displaces another debugger listening for the same user. Needs at least one breakpoint. Takes whose requests are caught, the debugging mode and the debugger settings. In user mode it catches every request of the request user (the connected SAP user, or the one named), from this server and from anywhere else. Its breakpoints are one set, shared by every IDE of the same SAP user (in user mode, debugging the same request user; in terminal mode, whatever its ids), and each change rewrites that set as a whole. Runs outside batch mode.

Input Schema

NameRequiredDescriptionDefault
runNoA class (as a console application) or a report started in the background once listening; its outcome is reported as the end of the session.
detailNoHow much of the answer to return: "terse" (default, the fields you need to act), "full" (the whole parse), "raw" (the document as ADT sent it).terse
settingsNoDebugger settings, applied after each attach; a field left out keeps its value.
breakpointsYesBreakpoints, at least one: a line, an exception class, an ABAP statement or a message; a line breakpoint may carry a condition.
request_userNoUser mode: the SAP user whose requests are caught; the connected user when omitted. Debugging another user's requests needs the debug authorization for that user. Not taken in terminal mode.
debugging_modeNouser (when omitted) catches the requests of the request user; terminal catches the requests that carry this debug session's ids and needs no configuration: the run it starts carries them, so without run it catches only requests carrying the same ids.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv20.1.0

TDQS

A4.2/5.0
Behavior4/5

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

No annotations exist, so the description carries the full burden and does well: it discloses that it displaces another debugger listening for the same user, that breakpoints are a single shared set rewritten as a whole by every change, and that debugging another user's requests requires that user's debug authorization. Remaining gaps are what the call returns and how the session is later driven (DebugWait/DebugTerminate). The '[read-only]' tag sits awkwardly with 'Displaces another debugger', but since no annotation declares readOnly, this is self-inconsistency rather than an annotation contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded and free of filler, but the breakpoint-sharing sentence — 'Its breakpoints are one set, shared by every IDE of the same SAP user (in user mode, debugging the same request user; in terminal mode, whatever its ids), and each change rewrites that set as a whole' — is tangled enough to require re-reading. The whole block runs as one undivided paragraph, so the prerequisite ('Needs at least one breakpoint') is buried mid-sentence rather than up front.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with nested settings, enum modes and no output schema, the description covers prerequisites, side effects, authorization requirements and mode semantics thoroughly. What it omits is what an agent gets back from the call and what to do next (wait, step, terminate), which matters given there is no output schema to fall back on.

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 genuine semantics beyond it: it frames the parameters as 'whose requests are caught, the debugging mode and the debugger settings', and explains the behavioral consequence of terminal mode ('catches the requests that carry this debug session's ids... without run it catches only requests carrying the same ids') — a coupling between debugging_mode and run that the schema documents only piecewise.

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 — 'Opens a debug session' — then enumerates its mechanics (arms breakpoints, listens, attaches the first debuggee caught). An agent can distinguish it from DebugStartListener/DebugWait without opening any schema.

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?

Gives real preconditions and exclusions: 'Needs at least one breakpoint', 'Runs outside batch mode', and a detailed user-mode vs terminal-mode split that determines which requests get caught. It does not, however, name the sibling tool to use instead (e.g. DebugStartListener for a non-attaching session), so routing is inferable rather than explicit.

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

Deploy Server

Other Tools