Skip to main content
Glama
netcoredbg-mcp

netcoredbg-mcp

by thebtf

start_debug

Launch a .NET program under the debugger to inspect call stacks, variables, and breakpoints; optionally build the project first so you debug current code.

Instructions

Start debugging a .NET program. RECOMMENDED for most debugging scenarios.

This is the preferred method for debugging .NET applications. It launches a new process under the debugger with full feature support including:

  • Complete call stack visibility

  • Full variable inspection

  • All breakpoint features

SMART RESOLUTION: For .NET 6+ apps (WPF/WinForms), automatically resolves .exe to .dll to avoid "deps.json conflict" errors. You can pass either App.exe or App.dll - the correct target will be selected automatically.

PRE-BUILD: By default, builds the project before launching to ensure you're debugging the latest code. Provide build_project path to .csproj file. Set pre_build=False to skip building (e.g., for pre-built binaries).

ENVIRONMENT: String values override the debuggee environment; null removes inherited variables (case-insensitive on Windows). Launch overrides do not change the server or pre-build environment. Removals may drain and restart an idle adapter. With pre_build=False, a removal request is refused while a debuggee is active; stop it explicitly first. The existing pre-build stop/build sequence is unchanged.

BUILD FAILURE: A completed failed restore/build is included in the first error response's data: failed stage, executed argv, working directory, exit code, stdout/stderr, and parsed diagnostics. No debugger is launched. Validation failures and attempts without a completed build omit this data.

BUILD WARNINGS: Hidden by default to reduce noise. If the build succeeds but the app behaves unexpectedly, call get_build_diagnostics() to see all warnings — they may reveal the issue.

Use attach_debug only for already-running processes (e.g., ASP.NET services).

Escape hatch: see the dap-escape-hatch prompt for unwrapped DAP requests.

Args: program: Path to the .NET executable or DLL to debug (auto-resolved) cwd: Working directory for the program args: Command line arguments env: Debuggee environment overrides; null removes an inherited variable launch_profile: Optional project launch profile name stop_at_entry: Stop at entry point pre_build: Build project before launching (default: True). Requires build_project. build_project: Path to .csproj file (required when pre_build=True) build_configuration: Build configuration (Debug/Release) stealth_mode: Avoid foreground-stealing UI actions for GUI debugging

Input Schema

NameRequiredDescriptionDefault
cwdNo
envNo
argsNo
programYes
pre_buildNo
stealth_modeNo
build_projectNo
stop_at_entryNo
launch_profileNo
build_configurationNoDebug

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.17.2

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only declare openWorldHint=false, so the description carries the full burden and does so richly: it discloses smart .exe/.dll resolution, that pre-build runs by default, env override/removal semantics (case-insensitive, removal may drain/restart an idle adapter, refused during active debuggee), and that failed builds return diagnostics without launching a debugger.

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

Conciseness4/5

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

Front-loaded and well-sectioned with headers (SMART RESOLUTION, PRE-BUILD, ENVIRONMENT, etc.). Slightly redundant at the top ('RECOMMENDED...' then 'preferred method...') and the ENVIRONMENT paragraph is dense, but overall the structure earns its length.

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

Completeness5/5

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

For a 10-parameter launch tool with no output schema and minimal annotations, the description covers the behavioral surface an agent needs: build dependency, env semantics, failure data shape, hidden warnings, and stealth mode. Nothing essential to a correct call is missing.

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

Parameters5/5

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

Schema coverage is 0%, so the description must compensate and it does: the Args block documents all 10 parameters, including the critical pre_build=True -> build_project dependency, env null-removal semantics, and build_configuration values. This adds substantial meaning beyond the bare schema titles.

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?

States a specific verb and resource ('Start debugging a .NET program') and explicitly positions itself against the sibling attach_debug: 'Use attach_debug only for already-running processes.' An agent can distinguish launch vs attach without opening either schema.

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?

Explicit when-to-use ('RECOMMENDED for most debugging scenarios', 'preferred method') and when-not (attach_debug is only for already-running processes). It also names an escape hatch (dap-escape-hatch prompt) and gives clear triggers for pre_build=False and get_build_diagnostics.

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

Deploy Server

Other Tools