[
{
"name": "debugger_start",
"description": "Start a new debug session with a Node.js process",
"arguments": [
{
"name": "command",
"type": "string",
"desc": "Command to execute (e.g., 'node', 'npm')"
},
{
"name": "args",
"type": "array",
"desc": "Command arguments"
},
{
"name": "cwd",
"type": "string",
"desc": "Working directory for the process"
},
{
"name": "timeout",
"type": "number",
"desc": "Maximum execution time in milliseconds"
}
]
},
{
"name": "debugger_stop_session",
"description": "Stop a debug session and cleanup all resources",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session to stop"
}
]
},
{
"name": "debugger_set_breakpoint",
"description": "Set a breakpoint at a specific file and line number with optional condition",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
},
{
"name": "file",
"type": "string",
"desc": "File path where to set the breakpoint"
},
{
"name": "line",
"type": "number",
"desc": "Line number for the breakpoint"
},
{
"name": "condition",
"type": "string",
"desc": "Optional condition expression"
}
]
},
{
"name": "debugger_remove_breakpoint",
"description": "Remove a breakpoint from the session",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
},
{
"name": "breakpointId",
"type": "string",
"desc": "ID of the breakpoint to remove"
}
]
},
{
"name": "debugger_toggle_breakpoint",
"description": "Toggle a breakpoint between enabled and disabled states",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
},
{
"name": "breakpointId",
"type": "string",
"desc": "ID of the breakpoint to toggle"
}
]
},
{
"name": "debugger_list_breakpoints",
"description": "Get all breakpoints for a debug session",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
}
]
},
{
"name": "debugger_continue",
"description": "Resume execution until the next breakpoint or program termination",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
}
]
},
{
"name": "debugger_step_over",
"description": "Execute the current line and pause at the next line in the same scope",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
}
]
},
{
"name": "debugger_step_into",
"description": "Execute the current line and pause at the first line inside any called function",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
}
]
},
{
"name": "debugger_step_out",
"description": "Execute until the current function returns and pause at the calling location",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
}
]
},
{
"name": "debugger_pause",
"description": "Pause a running debug session",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
}
]
},
{
"name": "debugger_inspect",
"description": "Evaluate a JavaScript expression in the current execution context",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
},
{
"name": "expression",
"type": "string",
"desc": "JavaScript expression to evaluate"
}
]
},
{
"name": "debugger_get_local_variables",
"description": "Get all local variables in the current scope",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
}
]
},
{
"name": "debugger_get_global_variables",
"description": "Get global variables accessible from the current scope",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
}
]
},
{
"name": "debugger_inspect_object",
"description": "Inspect an object's properties with nested resolution",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
},
{
"name": "objectId",
"type": "string",
"desc": "Object reference ID to inspect"
},
{
"name": "depth",
"type": "number",
"desc": "Maximum depth for nested object inspection"
}
]
},
{
"name": "debugger_add_watch",
"description": "Add an expression to the watch list",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
},
{
"name": "expression",
"type": "string",
"desc": "Expression to watch"
}
]
},
{
"name": "debugger_remove_watch",
"description": "Remove an expression from the watch list",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
},
{
"name": "watchId",
"type": "string",
"desc": "ID of the watch to remove"
}
]
},
{
"name": "debugger_get_watches",
"description": "Get all watched expressions with their current values",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
}
]
},
{
"name": "debugger_get_stack",
"description": "Get the current call stack with function names and file locations",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
}
]
},
{
"name": "debugger_switch_stack_frame",
"description": "Switch the execution context to a specific stack frame",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
},
{
"name": "frameIndex",
"type": "number",
"desc": "Index of the stack frame to switch to"
}
]
},
{
"name": "debugger_detect_hang",
"description": "Detect if a process hangs or enters an infinite loop",
"arguments": [
{
"name": "command",
"type": "string",
"desc": "Command to execute"
},
{
"name": "args",
"type": "array",
"desc": "Command arguments"
},
{
"name": "timeout",
"type": "number",
"desc": "Maximum execution time in milliseconds"
},
{
"name": "sampleInterval",
"type": "number",
"desc": "Interval for sampling execution location in milliseconds"
}
]
},
{
"name": "debugger_start_cpu_profile",
"description": "Start CPU profiling for performance analysis",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
}
]
},
{
"name": "debugger_stop_cpu_profile",
"description": "Stop CPU profiling and get profile data",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
}
]
},
{
"name": "debugger_take_heap_snapshot",
"description": "Take a heap snapshot for memory analysis",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
}
]
},
{
"name": "debugger_get_performance_metrics",
"description": "Get performance metrics for the debug session",
"arguments": [
{
"name": "sessionId",
"type": "string",
"desc": "ID of the debug session"
}
]
}
]