# @slp-dev1/qwen-dap-mcp

Native runtime debugging via DAP-to-MCP for crashes, hangs, dumps, symbols, and forensics.

- **Type:** MCP server
- **Trust:** 85/100 (A), scored on the package rubric
- **Verification:** verified (build provenance)
- **Version:** 0.18.1
- **Author:** io.github.SLP-DEV1
- **License:** Unknown
- **npm:** @slp-dev1/qwen-dap-mcp
- **Source:** https://github.com/SLP-DEV1/qwen-dap-mcp
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

85/100 (A), scored on the package rubric
- Publisher verified: no
- Build provenance: verified attestation
- npm trusted publishing (OIDC): yes
- Install scripts: nothing suspicious found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 1 day

## Security scan

- **Status:** clean
- **Scanned:** 2026-09-19T17:58:59.980Z
- **Version scanned:** 0.18.1
- **CVEs:** none found by OSV at scan time

## Tools

40 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `debug_causal_trace` — Build a bounded consumer-to-writer evidence chain for one suspicious debugger-visible value. Use it after crash or differential evidence identifies a value whos
- `debug_progress_probe` — Sample a live target across short resume/pause intervals to distinguish no observed progress, same-frame execution movement, and probable busy loops. Use it whe
- `debug_reverse_execution` — Move a stopped live target backward using DAP reverseContinue or stepBack when the active adapter advertises reverse-execution support. Use it with record/repla
- `debug_runtime_report` — Create a shareable structured report from the current stopped target with normalized crash fingerprinting, Symbol Doctor status, sanitizer stderr correlation, p
- `debug_cluster_crashes` — Group multiple previously produced qwen-dap-mcp runtime reports by their normalized crash fingerprint. Use it after opening and reporting several dumps or repro
- `debug_child_requests` — Inspect bounded DAP reverse requests such as startDebugging emitted by an adapter when a child, fork, worker, or subprocess wants a debugger session. Use it to 
- `debug_regression_oracle` — Classify a completed reproduction against an original crash fingerprint for git-bisect-style workflows. Use it only after debug_runtime_report or crash verifica
- `debug_diagnose_stop`
- `debug_source_disassembly` — Correlate source locations, disassembly, registers, and pointer-like locals for the raw fault frame and the first likely project-controlled frame. Use this for 
- `debug_this_crash`
- `debug_find_writer`
- `debug_this_hang`
- `debug_codelldb_info` — Locate a CodeLLDB >= 1.11.0 adapter from an explicit path, CODELLDB_PATH, common VS Code-compatible extension directories, or PATH.
- `debug_start_codelldb` — Auto-discover and initialize CodeLLDB using DAP over stdio. CodeLLDB 1.11.0 or newer is required.
- `debug_launch_codelldb` — Launch a native program through an initialized CodeLLDB session. Uses terminal=console so no runInTerminal reverse request is required.
- `debug_attach_codelldb` — Attach an initialized CodeLLDB session to an authorized local native process by PID.
- `debug_start` — Start a local Debug Adapter Protocol process and initialize a debug session. The adapter is spawned directly without a shell.
- `debug_launch` — Send a DAP launch request, wait for initialization, configure optional source breakpoints, and complete DAP configuration.
- `debug_attach` — Send a DAP attach request to an authorized local target and complete DAP configuration.
- `debug_set_breakpoints` — Replace simple line breakpoints for one source file.
- `debug_set_source_breakpoints` — Replace source breakpoints for one file, including optional condition, hit condition, column and log message.
- `debug_set_function_breakpoints` — Replace function breakpoints when supported by the active DAP adapter.
- `debug_set_instruction_breakpoints` — Replace instruction breakpoints at DAP instruction references when supported by the adapter.
- `debug_data_breakpoint_info` — Ask the debugger for a stable dataId and supported access modes for a variable/property before creating a watchpoint.
- `debug_set_data_breakpoints` — Replace data breakpoints/watchpoints using dataIds returned by debug_data_breakpoint_info.
- `debug_set_exception_breakpoints` — Configure adapter-defined exception filters, optionally with filter conditions.
- `debug_pause` — Pause a running thread and optionally wait for the resulting stopped event.
- `debug_continue` — Resume one paused thread in a live debug session. Use this after inspecting a stopped state when execution should proceed to the next stop or termination; do no
- `debug_step` — Step over, into, or out of the current frame and optionally wait for the next stopped event.
- `debug_threads` — List threads in the current debuggee.
- `debug_stack` — Read stack frames for a thread.
- `debug_scopes` — Read scopes such as Locals, Arguments, or Registers for a stack frame.
- `debug_variables` — Expand a positive DAP variablesReference returned by a scope, variable, or evaluation result.
- `debug_evaluate` — Evaluate an expression in the debugger. Expressions may have side effects depending on debugger/language.
- `debug_modules` — List loaded executable images and libraries.
- `debug_disassemble` — Disassemble instructions around a DAP memoryReference.
- `debug_read_memory` — Read a bounded memory range through DAP. Returns base64 plus a hexadecimal rendering and rejects adapter responses larger than the requested bound.
- `debug_exception_info` — Read structured exception information for a stopped thread.
- `debug_snapshot` — Capture bounded evidence from the current stopped debug state without resuming execution. Use this when an agent needs raw stack, locals, registers, exception d
- `debug_status` — Inspect debugger lifecycle state, the selected stop, recent DAP events, and bounded adapter stderr without changing target execution. Use this to determine whet

## Install

**Verdict: install** — No blocking findings and no open coverage gaps — safe to install as configured.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"qwen-dap\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@slp-dev1/qwen-dap-mcp\"\n      ]\n    }\n  }\n}"
```

## Blast radius

Contained to moderate — no credential declaration found, from the publisher, the upstream registry, or the README. Known so far: runs on your machine; read-only tool surface.
- Floor 12, ceiling 30 (tier: unknown)
- `unknown` means the floor and ceiling land in different bands — not measured enough to name one. It does not mean low.
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/%40slp-dev1%2Fqwen-dap-mcp
- Install plan: https://forgeregistry.com/api/v1/packages/%40slp-dev1%2Fqwen-dap-mcp/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/%40slp-dev1%2Fqwen-dap-mcp
- HTML page: https://forgeregistry.com/registry/%40slp-dev1%2Fqwen-dap-mcp
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
