MCP debug_breakpoint_set

Description

Sets a breakpoint, routed by the file's extension: .ts/.tsx/.js/.jsx go to the TypeScript/CDP debugger, .brs/.xml go to the BrightScript/DAP debugger (Roku's own socket-based debug protocol on port 8081 -- NOT Microsoft DAP).

For BrightScript files, the local path you pass is converted into the pkg:/ URI the device requires -- never pass a pkg:/ string yourself, pass the same local path you'd use for any other tool in this session.

IMPORTANT: for a BrightScript breakpoint, a success response (this call returning at all) is NOT the same as the breakpoint actually being armed. The response's own "verified" field is the only thing that means it will fire -- BREAKPOINT_VERIFIED is the device's only async confirmation, and a breakpoint that never receives it (e.g. a duplicate of an already-set line) can still return an id, still show up in debug_breakpoints_list, and never fire. Always check "verified" before assuming a breakpoint is live; if it's false, try a different line or check debug_breakpoints_list for a duplicate.

Parameters:

  • file (string, required): local file path (.ts, .tsx, .js, .jsx, .brs, or .xml). For .ts/.tsx/.js/.jsx it may be absolute or relative to the session project root (exact match, no suffix matching); .brs/.xml paths are unchanged.
  • line (number, required): 1-based line number.
  • condition (string, optional): for BrightScript, this uses a separate device command (ADD_CONDITIONAL_BREAKPOINTS) from a plain breakpoint; for TypeScript, a JS expression gating when it triggers.
  • ignoreCount (number, optional, BrightScript only): number of hits to skip before the breakpoint actually stops execution.
  • sessionId (string, optional): defaults to the active debug session.

Aliases

Aliases: cdp_breakpoint_set.

See also

Parameters

additionalProperties: false

NameTypeRequiredValues
filestringYes
linenumberYes
conditionstringNo
ignoreCountnumberNo
sessionIdstringNo

file

Local file path (.ts, .js, .brs, or .xml). Source files: absolute, or relative to the session project root.

line

1-based line number.

condition

Condition gating when the breakpoint triggers.

ignoreCount

BrightScript only: hits to skip before actually stopping.

sessionId

Debug session id; defaults to the active session.


Did this page help you?