Debugging MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_codebaseA | Fast text search across the workspace files. Uses ripgrep when available, falls back to a recursive file walk. Returns matching file paths, line numbers, and line content. |
| initialize_sessionA | Auto-detects the workspace's technology stack, package manager, test runner, log paths, and entry points. Call this first to establish context before debugging. |
| run_testsA | Executes the workspace's test suite. Auto-detects the appropriate test runner. The |
| get_recent_commitsA | Retrieves recent git commits for the workspace. Useful for correlating code changes with failures. Returns commit hash, author, date, and message. |
| connect_dapA | Establishes a TCP connection to a running Debug Adapter Protocol (DAP) server. This must be called before |
| inspect_runtime_stateA | Retrieves the live debugging snapshot from a connected DAP session: threads, call stack, scopes, and local variables with their current values. Requires an active DAP connection (call |
| evaluate_expressionA | Evaluates an expression in the context of the debuggee's current state. Requires an active DAP connection and typically works best when the debuggee is stopped. The |
| step_debuggerA | Controls execution flow of the debuggee. Use this to resume, step over, step into, or step out. Requires an established debugging connection which is currently paused. This command will mutate the state of the debuggee and wait up to 3 seconds for it to pause again. |
| disconnect_dapA | Cleanly disconnects from the current DAP session. The debuggee continues running — this does NOT terminate it. Idempotent: safe to call even if not connected. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| debug-error | Given an error message or stack trace, orchestrate a structured debugging workflow using the available tools. Identifies likely root causes and suggests next actions. |
| explain-stacktrace | Analyzes a stack trace and produces a human-readable explanation of the failure, walking through each frame and identifying the key transition points. |
| correlate-failure | Links recent git commits to a current failure. Helps identify which change likely introduced the bug by cross-referencing error context with commit diffs. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| workspace-structure | A dynamic directory tree of the workspace. Excludes common non-essential directories like node_modules and .git. Limited to 4 levels deep. |
| workspace-logs | Real-time access to application log files found in the workspace. Scans common log directories and returns the most recent entries. |
TDQS
Scored across 9 tools
The tools have clear purposes but some overlap exists. For example, 'initialize_session' and 'connect_dap' both establish debugging context, and 'evaluate_expression' and 'inspect_runtime_state' both retrieve debuggee state information. The descriptions help differentiate them, but an agent might occasionally misselect between related tools.
Most tools follow a consistent verb_noun pattern (e.g., 'connect_dap', 'evaluate_expression', 'run_tests'), with clear and descriptive names. However, 'get_recent_commits' and 'search_codebase' slightly deviate by using 'get' and 'search' instead of more action-oriented verbs, but overall the naming is highly readable and predictable.
With 9 tools, the count is well-scoped for a debugging server. Each tool serves a distinct role in the debugging workflow, from setup and connection to runtime inspection and code analysis, without feeling excessive or insufficient for the domain.
The toolset covers core debugging operations effectively, including session initialization, DAP connection, runtime inspection, expression evaluation, and test execution. Minor gaps exist, such as no explicit tool for setting breakpoints or managing breakpoint lists, but agents can work around this using existing tools like 'step_debugger' and 'search_codebase'.