Skip to main content
Glama
paramount-engineering

Roku Dev Studio MCP Server

Debugger: Step

debugger_step

Step a halted Roku thread line by line, skipping calls, entering calls, or finishing the current function. Choose step kind over, in, or out to control debugging.

Instructions

Single-step the halted thread. kind: "over" (default — next line, skipping calls), "in" (into the call), or "out" (finish the current function). Requires the target to be HALTED. Follow with debugger_wait_for_stop to get the new location.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNoStep kind (default "over").
deviceNoOptional. Roku IP or serial; must match a connected Dev Studio tab. Omit to use the focused tab.
threadIndexNoOptional thread to step (default the stopped/primary thread).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.0.2

TDQS

A4.4/5.0
Behavior3/5

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

Annotations already indicate the tool is not read-only (readOnlyHint=false) and not idempotent (idempotentHint=false), so the mutation behavior is implicit. The description adds the halted requirement and the fact that it moves execution, which is useful context beyond the annotations. However, it does not describe what happens if the thread is invalid or if stepping fails, leaving some behavioral gaps.

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

Conciseness5/5

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

The description is two sentences with no wasted words. The primary action is front-loaded, followed by the kind options, then the critical precondition and next-step guidance. Every clause serves a purpose, and the structure is logical and easy to parse.

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?

Given the tool's moderate complexity (3 optional params, no output schema) and annotations that already cover mutation, the description is fairly complete. It provides the essential precondition, parameter semantics, and a follow-up for retrieving results. It lacks explicit error-handling details, but that is minor given that the schema covers all parameters and the annotations cover safety. An agent can call this tool correctly with the information provided.

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. The description adds significant value for the 'kind' parameter by explaining each enum value in plain language ('over' = next line skipping calls, 'in' = into the call, 'out' = finish current function), which goes beyond the schema's minimal 'Step kind (default "over").' The device and threadIndex parameters are adequately described in the schema, and the description does not repeat them.

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?

The description clearly states the action ('Single-step the halted thread') with a specific verb and resource. It also enumerates the three step kinds, making the tool's function unambiguous. It distinguishes itself from siblings like debugger_continue and debugger_pause by focusing on single-stepping.

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?

It explicitly states a critical prerequisite ('Requires the target to be HALTED') and provides a direct follow-up instruction ('Follow with debugger_wait_for_stop to get the new location'). This gives the agent clear guidance on when and how to use the tool, including a sequence that avoids wasted calls.

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