Skip to main content
Glama
XC881

xcnodejs-debugger-mcp

by XC881

Evaluate

debug_evaluate
Destructive

Evaluate a JavaScript expression inside a live Node.js process to inspect variables and test code, whether paused at a breakpoint or running normally.

Instructions

Evaluate a JavaScript expression. Uses Debugger.evaluateOnCallFrame when paused, otherwise Runtime.evaluate. 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
sessionIdNoSession id from debug_launch/debug_attach. Required when more than one session is live.
expressionYesJavaScript expression
callFrameIdNoCall frame id when paused. Default: top frame

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already state destructiveHint=true and readOnlyHint=false, and the description adds meaningful behavior beyond that: expression evaluation runs as the MCP user, the inspector is bound to 127.0.0.1, and evaluation switches call-frame vs runtime mode depending on paused state. This gives useful context for safety and invocation without contradicting the annotations.

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 compact and front-loaded with the core operation before switching to mode details. Each sentence earns its place: the mechanics, the security warning, and the launch comparison all add distinct value without filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description and schema cover invocation constraints well, and the security caveat is valuable. However, there is no output schema and no description of what the tool returns for a successful evaluation, exception details, or error shape, which is especially relevant for an expression evaluator. This is a clear gap, but it is partially mitigated by the surrounding annotations and schema coverage.

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 description coverage is 100%, so the schema already explains sessionId, expression, and callFrameId. The description does not add significant parameter-level meaning beyond matching callFrameId to the paused-mode behavior. Baseline 3 is appropriate because the structured schema carries most of the parameter documentation burden.

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?

It does not repeat the tool name or rely on the title alone; the description gives a concrete operation and differentiates the tool's core purpose.

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 gives explicit routing context: it says "Uses Debugger.evaluateOnCallFrame when paused, otherwise Runtime.evaluate," which tells the agent when one mode is used. It also gives a clear safety constraint: "Only use on a trusted local workspace." It does not enumerate all sibling exclusions, but it names launch as the alternative for running a full process.

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