Skip to main content
Glama
XC881

xcnodejs-debugger-mcp

by XC881

Launch Node program

debug_launch
Destructive

Start a Node.js script under the debugger, pausing before execution to set breakpoints. Returns a session ID for subsequent debugging commands.

Instructions

Spawn a Node program under --inspect-brk=127.0.0.1:0 and return a new sessionId in awaiting_start. cwd defaults to the package root of program (the directory that owns that file's node_modules). User code does not run until debug_continue, debug_resume, or debug_wait_for_pause. Set breakpoints in the entry script and in node_modules packages before continuing. require/import/loader are optional --require/--import/--experimental-loader injects, resolved from the program's node_modules. Child processes are auto-attached by default. Call again to debug another program in parallel. Runs the target as the MCP user. launch executes a process; evaluate runs JavaScript inside it. Only use on a trusted local workspace. Inspector is bound to 127.0.0.1.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cwdNoWorking directory. Defaults to the package root of program (walks up from the file, skipping node_modules)
envNoExtra environment variables (merged over the MCP process env)
argsNoArguments passed to the program
labelNoOptional label shown in debug_list_sessions
importNoOptional --import modules, resolved from the program file node_modules
loaderNoOptional --experimental-loader modules, resolved from the program file node_modules
programYesEntry script path, absolute or relative to cwd
requireNoOptional --require modules, resolved from the program file node_modules (CJS hooks, @babel/register)
runtimeArgsNoExtra runtime args inserted after inspect/preload flags
autoLoadBabelNoAuto --require @babel/register from the program node_modules when a Babel config exists. Default: true for .jsx/.ts/.tsx, false for .js
runtimeExecutableNoRuntime binary. Defaults to the Node executable running this MCP server
autoAttachChildrenNoAuto-attach child_process children and worker_threads. Default true

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already indicate destructiveHint=true, and the description adds substantial context: 'Runs the target as the MCP user,' 'Inspector is bound to 127.0.0.1,' and 'User code does not run until...' It also discloses auto-attach of children. No contradiction with annotations; the description enriches the safety and behavioral profile beyond the structured metadata.

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 dense yet efficient. It front-loads the core action, then covers cwd behavior, execution gating, breakpoint advice, module injection, child attachment, parallel usage, user context, differentiation from evaluate, security, and inspector binding—each sentence adds value with no fluff.

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 12 parameters, nested objects, and no output schema, the description explains the workflow, return value (sessionId), security constraints, and execution semantics. It could mention how to retrieve output (via debug_get_output) but that is a sibling tool and not strictly necessary. Overall, it is complete enough for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well-documented. The description adds minimal param-specific meaning beyond the schema; for example, it restates the cwd default already present in the schema and mentions require/import/loader injects but does not explain syntax or resolution beyond schema descriptions. Baseline 3 is appropriate.

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 opens with a clear verb and resource: 'Spawn a Node program under --inspect-brk=127.0.0.1:0 and return a new sessionId in awaiting_start.' It also explicitly differentiates itself from debug_evaluate ('launch executes a process; evaluate runs JavaScript inside it'), making it unambiguous among siblings.

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?

The description provides clear usage context: it states the execution is paused until debug_continue/resume/wait_for_pause, advises setting breakpoints before continuing, and mentions parallel launches. It cautions 'Only use on a trusted local workspace.' However, it does not explicitly contrast with debug_attach (for existing processes), relying on the verb 'spawn' to imply new-process usage.

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