kui_accessibility
Get the full Accessibility tree (AX tree) of the KUI document. Returns a tree of accessible nodes with roles, names, and properties. Useful for verifying ARIA attributes and screen-reader compatibility.
kui_accessibility()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1597
Report an issue with this entry →kui_box_model
Get layout box model quads (content / padding / border / margin) for an element. Returns four 8-float coordinate arrays (clockwise from top-left) plus element width and height in CSS pixels. Args: selector: CSS selector identifying the element
kui_box_model(selector: str)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1404
Report an issue with this entry →kui_breakpoint_remove
Remove a breakpoint by its numeric ID (returned by kui_breakpoint_set). Args: breakpoint_id: Numeric ID returned from kui_breakpoint_set
kui_breakpoint_remove(breakpoint_id: int)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1902
Report an issue with this entry →kui_breakpoint_set
Set a breakpoint in a Lua script. Args: source: Script source name or filename (e.g. "main.lua", "ui/handlers.lua") line: 1-based line number to break on condition: Optional Lua expression; break only when it evaluates to true log_message: Optional log message (logpoint — logs but does not pause)
kui_breakpoint_set(source: str, line: int, condition: str='', log_message: str='')Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1881
Report an issue with this entry →kui_breakpoints
List all active breakpoints with their source, line, and condition.
kui_breakpoints()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1912
Report an issue with this entry →kui_call_stack
Get the current Lua call stack (only valid when execution is paused). Returns a list of stack frames with source file, line, and function name.
kui_call_stack()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1959
Report an issue with this entry →kui_click
Click at viewport coordinates (CSS pixels) in the KUI window. Args: x: X coordinate (viewport-relative, CSS pixels) y: Y coordinate (viewport-relative, CSS pixels) button: "left" | "middle" | "right" (default "left") click_count: 1 = single click, 2 = double-click modifiers: Bitmask — 1=Alt, 2=Ctrl, 4=Meta, 8=Shift
kui_click(x: float, y: float, button: str='left', click_count: int=1, modifiers: int=0)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1264
Report an issue with this entry →kui_connect
Connect to a running KUI application's DevTools server. KUI's /json endpoint aggregates ALL live KUI targets on the machine (KUI-039 unified discovery), so this discovers every running app/window — not just the one on port. Call kui_targets() first to list them. Args: port: DevTools base port to query/scan (default 9229). Discovery also scans the next several ports, so this rarely needs changing. target: Optional selector when multiple apps are running — match by target id (e.g. "kui-9230") or a case-insensitive substring of the title. Empty = pick the app on port, else the first one.
kui_connect(port: int=9229, target: str='')Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:459
Report an issue with this entry →kui_console
Get all console messages (KUI_LOG_INFO/WARN/ERROR) from the KUI application.
kui_console()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1477
Report an issue with this entry →kui_debugger_disable
Disable the Lua script debugger and remove all breakpoints.
kui_debugger_disable()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1875
Report an issue with this entry →kui_debugger_enable
Enable the Lua script debugger. Must be called before setting breakpoints. Requires the KUI app to have called window->attachScriptEngine().
kui_debugger_enable()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1865
Report an issue with this entry →kui_debugger_eval
Evaluate a Lua expression in the context of a paused stack frame. Different from kui_eval: this evaluates in the paused frame's local scope, allowing access to local variables and upvalues. Args: expression: Lua expression to evaluate frame_index: Stack frame index (0 = innermost, default 0)
kui_debugger_eval(expression: str, frame_index: int=0)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1978
Report an issue with this entry →kui_debugger_state
Get the current debugger state: running | paused | disabled. When paused, also returns the current source file and line number.
kui_debugger_state()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1918
Report an issue with this entry →kui_disconnect
Stop any leased performance recording and disconnect from DevTools.
kui_disconnect()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:535
Report an issue with this entry →kui_dispatch_event
Fire a synthetic DOM event on the element matching selector. Args: selector: CSS selector identifying the target element event_type: Event type string, e.g. "click", "input", "my-custom-event" bubbles: Whether the event bubbles up the DOM (default True) cancelable: Whether the event can be cancelled (default True) detail: Optional JSON string stored in event.detail (never eval'd)
kui_dispatch_event(selector: str, event_type: str, bubbles: bool=True, cancelable: bool=True, detail: str='')Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1666
Report an issue with this entry →kui_dom
Get the DOM tree or a specific element's properties. Args: selector: CSS selector to locate a specific element. Leave empty to get the full document tree. depth: Tree depth when fetching the full document (1–10, default 3)
kui_dom(selector: str='', depth: int=3)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1373
Report an issue with this entry →kui_element_at
Find the topmost element at the given viewport coordinates. Useful after a screenshot: identify which element is at a visual position before clicking or inspecting it. Args: x: X coordinate (CSS pixels, viewport-relative) y: Y coordinate (CSS pixels, viewport-relative)
kui_element_at(x: float, y: float)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1609
Report an issue with this entry →kui_eval
Evaluate a Lua expression in the KUI scripting engine and return the result. Requires the KUI app to have called window->attachScriptEngine(). Args: expression: Lua expression string, e.g. 'document:getElementById("btn"):getAttribute("class")'
kui_eval(expression: str)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1483
Report an issue with this entry →kui_event_listeners
Get all event listeners attached to the element matching selector. Args: selector: CSS selector identifying the element
kui_event_listeners(selector: str)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1656
Report an issue with this entry →kui_events
Collect push events from KUI for up to 0.5 s and return the last N. Note: In stateless mode this opens a fresh connection and collects whatever push events the server sends within the collection window. Args: count: Maximum number of events to return (default 20)
kui_events(count: int=20)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1523
Report an issue with this entry →kui_exception_breaks
Configure exception breakpoints for Lua runtime errors. Args: mode: "none" — never break on exceptions (default) "uncaught" — break only on unhandled errors "all" — break on every error (including pcall'd ones)
kui_exception_breaks(mode: str='none')Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:2003
Report an issue with this entry →kui_force_pseudo
Force a CSS pseudo-state on the element matching selector. Useful for inspecting :hover, :focus, :active, :visited styles without actually moving the mouse. Args: selector: CSS selector identifying the element pseudo: Pseudo-state name: "hover" | "focus" | "active" | "visited"
kui_force_pseudo(selector: str, pseudo: str)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1720
Report an issue with this entry →kui_get_style
Get all computed CSS properties for the element matching selector. Args: selector: CSS selector, e.g. "#header", "button.primary"
kui_get_style(selector: str)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1431
Report an issue with this entry →kui_key
Send a keyboard event to the focused element. Common key names: "Enter", "Escape", "Tab", "Backspace", "Delete", "ArrowUp", "ArrowDown", "ArrowLeft", "ArrowRight", "Home", "End", "PageUp", "PageDown", "F1"–"F12", "a"–"z", "0"–"9". Args: key: DOM key name string event_type: "keyDown" | "keyUp" | "char" modifiers: Bitmask — 1=Alt, 2=Ctrl, 4=Meta, 8=Shift
kui_key(key: str, event_type: str='keyDown', modifiers: int=0)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1347
Report an issue with this entry →kui_layout_metrics
Get viewport and content layout dimensions of the KUI window.
kui_layout_metrics()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:659
Report an issue with this entry →kui_matched_rules
Get the CSS rules that match the element identified by selector. Returns all author and user-agent rules that apply, with their source (inline / stylesheet index / inherited). Args: selector: CSS selector identifying the element
kui_matched_rules(selector: str)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1694
Report an issue with this entry →kui_mouse_move
Move the mouse cursor to viewport coordinates without clicking. Args: x: X coordinate (CSS pixels) y: Y coordinate (CSS pixels)
kui_mouse_move(x: float, y: float)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1294
Report an issue with this entry →kui_network_resources
Get all HTTP resources loaded by the KUI document (images, scripts, etc.).
kui_network_resources()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1758
Report an issue with this entry →kui_outer_html
Get the outer HTML markup of the element matching selector. Args: selector: CSS selector, e.g. "#main", ".card:first-child"
kui_outer_html(selector: str)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1387
Report an issue with this entry →kui_page_info
Get KUI page metadata: title, URL, scroll position, viewport size.
kui_page_info()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1736
Report an issue with this entry →kui_pause
Pause Lua script execution at the next executed line.
kui_pause()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1927
Report an issue with this entry →kui_perf_buffer
Read buffer use, dropped evidence counts, and the suggested lower-cost mode.
kui_perf_buffer(session_id: str='')Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1042
Report an issue with this entry →kui_perf_capabilities
Report exact performance schema, modes, limits, and CPU/memory/GPU availability. Availability is explicit: unsupported or failed providers are never returned as a numeric zero. This call does not start recording.
kui_perf_capabilities()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:730
Report an issue with this entry →kui_perf_capture_interaction
Record one interaction in a single call and return a compact per-frame summary. Sequence (one WebSocket): optional warm-up action → start recording → wait warmup_ms → perform the input → wait settle_ms → stop. Then reads the frozen recording and returns only frames that did style/layout/paint work, trimmed like kui_perf_record_get(detail="compact"), plus totals. In attribution mode it also returns layout-run nodes grouped by their topology-transfer outcome and the top node_limit layout nodes. The session id is remembered, so kui_perf_frame / kui_perf_hot_nodes / kui_perf_node_history can drill down afterwards. Args: action: click | key | type | none (none = just record warmup_ms+settle_ms). selector: click target; its border-box center is used (overrides x/y). x, y: click position in viewport CSS pixels when no selector is given. key: DOM key name for action="key" (keyDown + keyUp). text: characters for action="type". modifiers: 1=Alt, 2=Ctrl, 4=Meta, 8=Shift. mode: timeline (timing only, lowest overhead) | attribution | deep-trace. warmup_action: perform the same input once before recording, so the recorded pass is not a first-time (cold cache) run. warmup_ms: delay between start and input. settle_ms: delay after input before stopping (and after the warm-up). max_frames: retained-frame cap for this recording. node_limit: top layout nodes listed (attribution modes).
kui_perf_capture_interaction(action: str='click', selector: str='', x: float=-1.0, y: float=-1.0, key: str='', text: str='', modifiers: int=0, mode: str='attribution', warmup_action: bool=False, warmup_ms: int=200, settle_ms: int=500, max_frames: int=64, node_limit: int=30)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1166
Report an issue with this entry →kui_perf_export_recording
Export a stopped recording as one bounded, privacy-redacted JSON payload. Args: session_id: Recording id; empty uses the last session. confirm_export: Must be true to assert an explicit user-approved export. max_bytes: UTF-8 payload limit, 1024..4194304 bytes. The engine excludes DOM text, input values, URLs, tokens, selectors, element ids/classes, and stable GPU adapter/engine identifiers. Active recordings must be stopped first so the returned payload is atomic.
kui_perf_export_recording(session_id: str='', confirm_export: bool=False, max_bytes: int=4 * 1024 * 1024)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1014
Report an issue with this entry →kui_perf_frame
Read exact phase, work, damage, layer, DOM, and display-list data for one frame. Args: frame_id: Frame id from a recording page. session_id: Recording id; empty uses the last session. detail: full (default, raw protocol frame) | compact (same trimming as kui_perf_record_get).
kui_perf_frame(frame_id: str, session_id: str='', detail: str='full')Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:855
Report an issue with this entry →kui_perf_hot_nodes
Rank high-frequency nodes by invalidation, style, layout, paint, or DL work. Attribution mode is required for node-level results. detail="compact" (default) returns each node's identity, non-zero counters and its layoutTopologyTransfer outcome only; detail="full" returns the raw protocol page. min_layout_runs > 0 switches to layout ranking, pages through the recording until nodes fall below the threshold, and adds layoutRunsByTransferOutcome (nodes and layout runs grouped by the node's last topology-transfer outcome). Args: session_id: Recording id; empty uses the last session. sort_by: estimatedCost | dirty | style | layout | paint | displayList | raster (DeepTrace submitted drawable ops; not GPU completion). limit: Maximum nodes returned (1..200; with min_layout_runs, the cap on listed nodes — grouping still covers every qualifying node). detail: compact | full. min_layout_runs: Only nodes whose layout algorithm ran at least this often.
kui_perf_hot_nodes(session_id: str='', sort_by: str='estimatedCost', limit: int=50, detail: str='compact', min_layout_runs: int=0)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:876
Report an issue with this entry →kui_perf_insights
Return evidence-backed dirty/style/layout/paint/damage/resource/buffer cards.
kui_perf_insights(session_id: str='')Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1049
Report an issue with this entry →kui_perf_node_history
Read ordered dirty events, related update passes, and node totals.
kui_perf_node_history(performance_node_id: str, session_id: str='', cursor: str='0', max_events: int=200)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:962
Report an issue with this entry →kui_perf_record_get
Read a retained recording page, including summary, work, and resources. This is an explicit read; the MCP server never polls in the background. Follow hasMore=true using the returned cursor to page through long runs. detail="compact" (default) keeps each frame's timing, non-zero work counters, layout path / sub-phase timing, topology-transfer statistics and a few render fields, and drops per-sample memory-category descriptions; values are not altered. Use detail="full" for the raw protocol payload. Args: session_id: Recording id; empty uses this MCP process's last session. cursor: Return frame ids greater than this cursor (default 0). max_frames: Maximum returned frames for this page (1..512). resource_cursor: Return resource sequences greater than this cursor. max_resource_samples: Maximum resource samples for this page (1..512). detail: compact | full. layout_frames_only: compact only — omit frames that did no layout work (the omitted count is reported as framesOmitted).
kui_perf_record_get(session_id: str='', cursor: str='0', max_frames: int=120, resource_cursor: str='0', max_resource_samples: int=120, detail: str='compact', layout_frames_only: bool=False)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:816
Report an issue with this entry →kui_perf_record_start
Explicitly start a bounded fine-grained render recording. The MCP transport opens a new WebSocket for each tool call, so this always requests lifecycle=leased; closing that short-lived socket must not stop the recording. Always finish with kui_perf_record_stop(), then retrieve the retained evidence with kui_perf_record_get(). To measure one interaction (click / key / typing), prefer kui_perf_capture_interaction(): it records, performs the input and stops in a single call, so agent latency between tool calls cannot end the recording. The recording stops by itself when max_duration_ms elapses (stopReason "timeout") or when no tool call touches the session for lease_ttl_ms (stopReason "lease-expired"). Agent tool calls are often tens of seconds apart, so both defaults are 120 s here. Args: mode: summary | timeline | attribution | deep-trace. max_frames: Retained-frame cap (1..4096). max_duration_ms: Automatic duration cap in milliseconds (stopReason "timeout"). resource_interval_ms: CPU/memory sample interval (minimum 250 ms). gpu_sampling: Opt in to Windows PDH GPU sampling; may affect tail latency. lease_ttl_ms: Stop after this long without a session call (stopReason "lease-expired"). node_details: Promote timeline to attribution for per-node evidence. categories: Optional timing/work/render/resources/updatePasses/nodes/trace subset. max_nodes: Attribution node cap; 0 uses the engine default. buffer_size: Requested bounded buffer budget in bytes; 0 uses defaults.
kui_perf_record_start(mode: str='attribution', max_frames: int=300, max_duration_ms: int=120000, resource_interval_ms: int=1000, gpu_sampling: bool=False, lease_ttl_ms: int=120000, node_details: bool=True, categories: list[str] | None=None, max_nodes: int=0, buffer_size: int=0)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:740
Report an issue with this entry →kui_perf_record_stop
Explicitly stop a fine-grained recording without discarding its evidence. Args: session_id: Recording id; empty uses the last session started by this MCP process.
kui_perf_record_stop(session_id: str='')Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:804
Report an issue with this entry →kui_perf_resolve_node
Resolve a recorded node to a stable session/document-scoped identity. The returned backendNodeId is stable only within the recording's document epoch. Use kui_perf_reveal_node() for a fresh Elements-panel locator; never persist the ephemeral DFS selector.
kui_perf_resolve_node(performance_node_id: str, session_id: str='')Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:975
Report an issue with this entry →kui_perf_reveal_node
Reveal a live recorded node in Elements using a fresh DOM locator. Args: performance_node_id: Session-scoped node id returned by hot-nodes. document_epoch: Exact epoch returned by start/resolveNode. session_id: Recording id; empty uses the last session. highlight: Also paint the DevTools highlight overlay. Frozen, detached, or epoch-mismatched nodes return an explicit unavailable result instead of an unsafe stale selector.
kui_perf_reveal_node(performance_node_id: str, document_epoch: str, session_id: str='', highlight: bool=False)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:989
Report an issue with this entry →kui_perf_trace
Read one bounded DeepTrace event page. Events contain paint-owner DisplayList ranges, concrete backend replay receipts, operation-type distributions, surface metadata, and present-call receipts. GPU/display completion remains explicitly unsupported unless a backend provider reports it.
kui_perf_trace(session_id: str='', cursor: str='0', max_events: int=200)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1056
Report an issue with this entry →kui_performance
Get performance metrics: frame time, layout count, paint count, etc.
kui_performance()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:665
Report an issue with this entry →kui_profile_start
Start the Lua script profiler, not a renderer/process CPU profiler.
kui_profile_start()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1841
Report an issue with this entry →kui_profile_stop
Stop Lua script profiling and return data marked profileKind=lua.
kui_profile_stop()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1847
Report an issue with this entry →kui_reload
Reload the HTML document currently loaded in the KUI window.
kui_reload()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:652
Report an issue with this entry →kui_remove_attr
Remove an HTML attribute from the element matching selector. Args: selector: CSS selector identifying the element name: Attribute name to remove (e.g. "disabled", "class")
kui_remove_attr(selector: str, name: str)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1645
Report an issue with this entry →kui_remove_style
Remove an inline CSS property (element.style) from the element matching selector. Works on any element, whether or not it has an HTML id attribute. Args: selector: CSS selector, e.g. "#header", "button.primary" prop: CSS property name to remove (e.g. "color", "display")
kui_remove_style(selector: str, prop: str)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1707
Report an issue with this entry →kui_render_option
Get or set runtime render-optimization toggles (FR-DEVTOOLS-RENDEROBS-004). With no name, returns the current options (retainedDLSkip, retainedSurface, layerPromotion, partialDamage, selectiveLayout, ifcAlternateSlot, layerLimit) with their value/availability. Turning ifcAlternateSlot off releases every IFC result-cache second slot (one laid-out SkParagraph each) immediately. With a name, flips that optimization live (bool options use enabled; layerLimit uses value). Args: name: option to set; empty = list all. enabled: target on/off for boolean options. value: integer value for layerLimit (>=0); ignored for bools.
kui_render_option(name: str='', enabled: bool=True, value: int=-1)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:704
Report an issue with this entry →kui_render_stats
Get render-mode stats (FR-DEVTOOLS-RENDEROBS). Returns a summary (framesPainted/framesReused/skipRate, work-fps vs present-fps, layer R/C/S counts, partialDamageEnabled, plus animationSources — KUI-070 idle full-frame diagnosis: the per-source breakdown of what keeps the engine producing a frame every vblank: animationTimerActive (master switch; false = on-demand rendering engaged, frame-skip NOT regressed), activeTransitions, activeAnimations, lottie, view3d, scriptRaf) plus the most recent window per-frame records (mode = full|partial|layer|skipped). Enabling this also turns on the per-frame repaint recording ring. Args: window: number of recent frames to include (max 240).
kui_render_stats(window: int=120)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:671
Report an issue with this entry →kui_repaint_rects
Get the rectangles that repainted, incrementally since a frame index. Returns {frames:[{i,mode,overflow,rects:[{x,y,w,h}]}], lastFrame}. Poll with since_frame = lastFrame to stream only new repaints (the data behind the DevTools paint-flashing overlay). Args: since_frame: only return frames with index > this (0 = all recent).
kui_repaint_rects(since_frame: int=0)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:690
Report an issue with this entry →kui_resume
Resume Lua script execution after a breakpoint or pause.
kui_resume()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1933
Report an issue with this entry →kui_scope
Get local variables and upvalues for a call stack frame. Args: frame_index: 0-based index into the call stack (0 = innermost frame)
kui_scope(frame_index: int=0)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1968
Report an issue with this entry →kui_screencast_save
Collect screencast frames for 3 s and save each as a numbered PNG file. Args: output_dir: Directory to write frame_0000.png, frame_0001.png, etc. max_frames: Cap on frames to save (avoids huge dumps, default 100)
kui_screencast_save(output_dir: str='.', max_frames: int=100)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1789
Report an issue with this entry →kui_screencast_start
Start continuous frame capture (screencast). KUI will push Page.screencastFrame events for every N-th rendered frame. Collect them with kui_events() or kui_wait_event('Page.screencastFrame'). Args: every_nth_frame: Capture interval — 1 = every frame, 2 = every other, etc. Higher values reduce overhead. Default 2.
kui_screencast_start(every_nth_frame: int=2)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1766
Report an issue with this entry →kui_screencast_stop
Stop the running screencast and flush any remaining frames.
kui_screencast_stop()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1783
Report an issue with this entry →kui_screenshot
Capture a PNG screenshot of the KUI window and save it to disk. Args: output_path: Destination file path for the PNG. Absolute path recommended; relative = working directory.
kui_screenshot(output_path: str='kui_screenshot.png')Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:624
Report an issue with this entry →kui_script_sources
Get all Lua script source files known to the debugger. Returns source names, line counts, and whether each script is currently loaded.
kui_script_sources()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1994
Report an issue with this entry →kui_scroll
Scroll at the given coordinates. Args: x: X coordinate of scroll origin (CSS pixels) y: Y coordinate of scroll origin (CSS pixels) delta_x: Horizontal scroll delta in pixels (positive = right) delta_y: Vertical scroll delta in pixels (positive = down, default 120)
kui_scroll(x: float, y: float, delta_x: float=0.0, delta_y: float=120.0)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1306
Report an issue with this entry →kui_scroll_info
Get the current document scroll position and total scrollable height.
kui_scroll_info()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1752
Report an issue with this entry →kui_scroll_to
Scroll the document to the given vertical position. Args: y: Target scroll Y position in CSS pixels
kui_scroll_to(y: float)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1742
Report an issue with this entry →kui_send
Send any CDP command to KUI and return the raw JSON response. Use this for commands not covered by the specialized kui_* tools. Args: method: CDP method, e.g. "DOM.getDocument", "CSS.getMatchedRules" params_json: JSON object string of parameters, e.g. '{"depth": 3}'
kui_send(method: str, params_json: str='{}')Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:605
Report an issue with this entry →kui_set_attr
Set an HTML attribute on the element matching selector. Args: selector: CSS selector name: Attribute name (e.g. "class", "data-active", "disabled") value: Attribute value string
kui_set_attr(selector: str, name: str, value: str)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1417
Report an issue with this entry →kui_set_html
Replace the inner HTML of the element matching selector. Args: selector: CSS selector identifying the element html: HTML markup to set as innerHTML
kui_set_html(selector: str, html: str)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1634
Report an issue with this entry →kui_set_style
Inject a CSS rule targeting selector into the document. This uses CSS.addRule which appends a new rule to the document's dynamic stylesheet — it does not overwrite existing rules. Args: selector: CSS selector for the new rule (e.g. "#box", ".item:hover") css_text: CSS declarations without braces (e.g. "color: red; display: none") Example: kui_set_style("#hero", "background: linear-gradient(#f00,#00f); opacity: 0.8")
kui_set_style(selector: str, css_text: str)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1441
Report an issue with this entry →kui_set_style_property
Set a single inline CSS property (element.style) on the element matching selector. Unlike kui_set_style (which injects a new stylesheet rule), this edits the element's own inline style — the highest-priority, single-element override, equivalent to what the DevTools Styles panel's "element.style {}" section edits. Args: selector: CSS selector, e.g. "#header", "button.primary" prop: CSS property name (e.g. "color", "display") value: CSS value (e.g. "red", "flex") important: set the !important priority flag
kui_set_style_property(selector: str, prop: str, value: str, important: bool=False)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1458
Report an issue with this entry →kui_set_text
Set the text content of the element matching selector. Args: selector: CSS selector identifying the element text: Plain text to set as the element's text content
kui_set_text(selector: str, text: str)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1623
Report an issue with this entry →kui_status
Return current connection status plus all discoverable KUI targets.
kui_status()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:544
Report an issue with this entry →kui_step
Step through Lua script execution. Args: action: "over" — step over the current line (do not enter function calls) "into" — step into function calls "out" — step out of the current function
kui_step(action: str='over')Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1939
Report an issue with this entry →kui_storage_clear
Clear all KUI in-memory storage (both localStorage and sessionStorage).
kui_storage_clear()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:2033
Report an issue with this entry →kui_storage_get_all
Get all key-value pairs from KUI's in-memory localStorage or sessionStorage. Args: local: True = localStorage (default), False = sessionStorage
kui_storage_get_all(local: bool=True)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1497
Report an issue with this entry →kui_storage_remove
Remove a key from KUI's in-memory localStorage or sessionStorage. Args: key: Storage key to remove local: True = localStorage (default), False = sessionStorage
kui_storage_remove(key: str, local: bool=True)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:2022
Report an issue with this entry →kui_storage_set
Set a key-value pair in KUI's in-memory localStorage or sessionStorage. Args: key: Storage key string value: Value string to store local: True = localStorage (default), False = sessionStorage
kui_storage_set(key: str, value: str, local: bool=True)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1507
Report an issue with this entry →kui_targets
List all live KUI applications/windows discoverable on localhost. Thanks to KUI-039 unified discovery, KUI's /json endpoint aggregates every live target across processes; this scans from port upward and returns the de-duplicated set. Use the printed id/title with kui_connect(target=...). Args: port: Base port to query/scan (default 9229).
kui_targets(port: int=9229)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:578
Report an issue with this entry →kui_timeline
Get the performance event timeline (layout, paint, composite events).
kui_timeline()Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1857
Report an issue with this entry →kui_type
Type a string into the currently focused KUI element (char-by-char). Args: text: Plain text string to type. No escape sequences.
kui_type(text: str)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1330
Report an issue with this entry →kui_wait_event
Block until KUI pushes a specific event, then return it. Useful for waiting for DOM mutations after a click before asserting state. Common event names: "DOM.childNodeInserted", "DOM.childNodeRemoved", "DOM.attributeModified", "DOM.characterDataModified", "Console.messageAdded", "Page.screencastFrame" Args: event_name: CDP event method name to wait for timeout: Maximum seconds to wait (default 5.0)
kui_wait_event(event_name: str, timeout: float=5.0)Verification scope
Indexed from current sources. Runtime, combination and platform checks have not been completed for every entry.
tools/kui_devtools_mcp/server.py:1558
Report an issue with this entry →