dap-mcp-server 0.1.12 → 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/README.md +50 -10
  2. package/SKILL.md +39 -184
  3. package/build/adapters/builtin.js +25 -0
  4. package/build/adapters/builtin.js.map +1 -1
  5. package/build/adapters/detect.d.ts +12 -0
  6. package/build/adapters/detect.js +91 -0
  7. package/build/adapters/detect.js.map +1 -1
  8. package/build/adapters/recipes.d.ts +46 -0
  9. package/build/adapters/recipes.js +128 -0
  10. package/build/adapters/recipes.js.map +1 -0
  11. package/build/adapters/registry.js +35 -12
  12. package/build/adapters/registry.js.map +1 -1
  13. package/build/dap/types.d.ts +20 -0
  14. package/build/diagnostics/doctor.d.ts +70 -0
  15. package/build/diagnostics/doctor.js +268 -0
  16. package/build/diagnostics/doctor.js.map +1 -0
  17. package/build/server.js +432 -161
  18. package/build/server.js.map +1 -1
  19. package/build/session/inspect.d.ts +12 -2
  20. package/build/session/inspect.js +33 -20
  21. package/build/session/inspect.js.map +1 -1
  22. package/build/session/run.d.ts +2 -0
  23. package/build/session/run.js +13 -23
  24. package/build/session/run.js.map +1 -1
  25. package/build/session/session.d.ts +38 -2
  26. package/build/session/session.js +158 -12
  27. package/build/session/session.js.map +1 -1
  28. package/{src/test-fixtures/crash-adapter.js → build/session/state-format.d.ts} +11 -2
  29. package/build/session/state-format.js +62 -0
  30. package/build/session/state-format.js.map +1 -0
  31. package/integrations/claude/dap-debugging/.claude-plugin/plugin.json +9 -0
  32. package/integrations/claude/dap-debugging/.mcp.json +8 -0
  33. package/integrations/claude/dap-debugging/skills/dap-debugging/SKILL.md +51 -0
  34. package/package.json +8 -3
  35. package/.forgejo/workflows/publish.yml +0 -63
  36. package/CLAUDE.md +0 -71
  37. package/TODO.md +0 -32
  38. package/docs/plans/2026-03-05-dap-wrapper-mcp-design.md +0 -326
  39. package/docs/plans/2026-03-05-dap-wrapper-mcp-implementation.md +0 -2815
  40. package/src/adapters/builtin.ts +0 -75
  41. package/src/adapters/detect.test.ts +0 -36
  42. package/src/adapters/detect.ts +0 -36
  43. package/src/adapters/registry.test.ts +0 -74
  44. package/src/adapters/registry.ts +0 -86
  45. package/src/dap/dap-client.test.ts +0 -118
  46. package/src/dap/dap-client.ts +0 -588
  47. package/src/dap/protocol.test.ts +0 -82
  48. package/src/dap/protocol.ts +0 -78
  49. package/src/dap/ring-buffer.test.ts +0 -82
  50. package/src/dap/ring-buffer.ts +0 -64
  51. package/src/dap/types.ts +0 -115
  52. package/src/index.ts +0 -30
  53. package/src/integration/debug-lifecycle.test.ts +0 -131
  54. package/src/server.ts +0 -1096
  55. package/src/session/inspect.test.ts +0 -126
  56. package/src/session/inspect.ts +0 -160
  57. package/src/session/run.test.ts +0 -74
  58. package/src/session/run.ts +0 -144
  59. package/src/session/session-manager.test.ts +0 -74
  60. package/src/session/session-manager.ts +0 -67
  61. package/src/session/session.test.ts +0 -126
  62. package/src/session/session.ts +0 -482
  63. package/src/test-fixtures/mock-adapter.js +0 -164
  64. package/src/test-fixtures/no-stop-adapter.js +0 -77
  65. package/src/test-fixtures/silent-adapter.js +0 -24
  66. package/src/test-fixtures/tcp-mock-adapter.js +0 -87
  67. package/tsconfig.json +0 -16
@@ -23,7 +23,14 @@ import { DAPClient } from "../dap/dap-client.js";
23
23
  import { RingBuffer } from "../dap/ring-buffer.js";
24
24
  import path from "node:path";
25
25
  const MAX_OUTPUT_LINES = 10000;
26
+ const MAX_STATE_OUTPUT_ENTRIES = 50;
26
27
  const DEFAULT_TIMEOUT = 30000;
28
+ function isRegistersScope(scope) {
29
+ return scope.presentationHint === "registers" || /^registers?$/i.test(scope.name);
30
+ }
31
+ function isFrameLocalScope(scope) {
32
+ return !scope.expensive && !/^(global|static)/i.test(scope.name);
33
+ }
27
34
  export class DebugSession {
28
35
  id;
29
36
  client;
@@ -31,16 +38,21 @@ export class DebugSession {
31
38
  _state = "idle";
32
39
  outputBuffer = new RingBuffer(MAX_OUTPUT_LINES);
33
40
  nextOutputSeq = 1;
41
+ lastReportedOutputSeq = 0;
34
42
  breakpointsMap = new Map();
35
43
  capabilities = {};
36
44
  stoppedThreadId;
37
45
  stoppedReason;
46
+ stoppedDescription;
47
+ _exitCode;
48
+ exitCodeResolvers = [];
38
49
  launchConfig;
39
50
  attachConfig;
40
51
  launchMode = "launch";
41
52
  stoppedResolvers = [];
42
53
  initializedResolvers = [];
43
54
  terminatedResolvers = [];
55
+ lifecycleResolvers = [];
44
56
  _initializedReceived = false;
45
57
  constructor(id, config) {
46
58
  this.id = id;
@@ -60,6 +72,7 @@ export class DebugSession {
60
72
  this._state = "terminated";
61
73
  }
62
74
  this.resolveTerminatedWaiters();
75
+ this.resolveLifecycleWaiters({ status: "terminated" });
63
76
  });
64
77
  }
65
78
  resolveTerminatedWaiters() {
@@ -68,6 +81,12 @@ export class DebugSession {
68
81
  for (const r of resolvers)
69
82
  r();
70
83
  }
84
+ resolveLifecycleWaiters(outcome) {
85
+ const resolvers = this.lifecycleResolvers;
86
+ this.lifecycleResolvers = [];
87
+ for (const resolve of resolvers)
88
+ resolve(outcome);
89
+ }
71
90
  get state() {
72
91
  return this._state;
73
92
  }
@@ -156,34 +175,34 @@ export class DebugSession {
156
175
  async launch(config) {
157
176
  this.launchConfig = config;
158
177
  this.launchMode = "launch";
159
- await this.client.sendRequest("launch", config);
160
178
  this._state = "running";
179
+ await this.client.sendRequest("launch", config);
161
180
  }
162
181
  async attach(config) {
163
182
  this.attachConfig = config;
164
183
  this.launchMode = "attach";
165
- await this.client.sendRequest("attach", config);
166
184
  this._state = "running";
185
+ await this.client.sendRequest("attach", config);
167
186
  }
168
187
  async continueExecution(threadId) {
169
188
  const tid = threadId ?? this.stoppedThreadId ?? 1;
170
- await this.client.sendRequest("continue", { threadId: tid });
171
189
  this._state = "running";
190
+ await this.client.sendRequest("continue", { threadId: tid });
172
191
  }
173
192
  async next(threadId) {
174
193
  const tid = threadId ?? this.stoppedThreadId ?? 1;
175
- await this.client.sendRequest("next", { threadId: tid });
176
194
  this._state = "running";
195
+ await this.client.sendRequest("next", { threadId: tid });
177
196
  }
178
197
  async stepIn(threadId) {
179
198
  const tid = threadId ?? this.stoppedThreadId ?? 1;
180
- await this.client.sendRequest("stepIn", { threadId: tid });
181
199
  this._state = "running";
200
+ await this.client.sendRequest("stepIn", { threadId: tid });
182
201
  }
183
202
  async stepOut(threadId) {
184
203
  const tid = threadId ?? this.stoppedThreadId ?? 1;
185
- await this.client.sendRequest("stepOut", { threadId: tid });
186
204
  this._state = "running";
205
+ await this.client.sendRequest("stepOut", { threadId: tid });
187
206
  }
188
207
  async pause(threadId) {
189
208
  const tid = threadId ?? this.stoppedThreadId ?? 1;
@@ -249,6 +268,66 @@ export class DebugSession {
249
268
  this.stoppedResolvers.push(wrappedResolve);
250
269
  });
251
270
  }
271
+ /**
272
+ * Wait for the next meaningful lifecycle outcome without racing two promises.
273
+ * Unlike waitForStopped/waitForTerminated, a timeout is returned as data so
274
+ * callers can reliably distinguish a running process from a completed one.
275
+ */
276
+ async waitForStopOrTermination(timeout = DEFAULT_TIMEOUT) {
277
+ if (this._state === "stopped") {
278
+ return {
279
+ status: "stopped",
280
+ event: {
281
+ seq: 0,
282
+ type: "event",
283
+ event: "stopped",
284
+ body: { reason: this.stoppedReason || "unknown", threadId: this.stoppedThreadId },
285
+ },
286
+ };
287
+ }
288
+ if (this._state === "terminated")
289
+ return { status: "terminated" };
290
+ return new Promise((resolve) => {
291
+ let settled = false;
292
+ const wrappedResolve = (outcome) => {
293
+ if (settled)
294
+ return;
295
+ settled = true;
296
+ clearTimeout(timer);
297
+ const index = this.lifecycleResolvers.indexOf(wrappedResolve);
298
+ if (index !== -1)
299
+ this.lifecycleResolvers.splice(index, 1);
300
+ resolve(outcome);
301
+ };
302
+ const timer = setTimeout(() => wrappedResolve({ status: "timeout" }), timeout);
303
+ this.lifecycleResolvers.push(wrappedResolve);
304
+ });
305
+ }
306
+ get exitCode() {
307
+ return this._exitCode;
308
+ }
309
+ /**
310
+ * The debuggee's exit code, if the adapter reports one. Adapters disagree on
311
+ * whether `exited` precedes or trails `terminated`, so callers that have just
312
+ * seen termination give it a short grace period.
313
+ */
314
+ async waitForExitCode(timeout = 250) {
315
+ if (this._exitCode !== undefined)
316
+ return this._exitCode;
317
+ await new Promise((resolve) => {
318
+ const timer = setTimeout(done, timeout);
319
+ const resolvers = this.exitCodeResolvers;
320
+ function done() {
321
+ clearTimeout(timer);
322
+ const idx = resolvers.indexOf(done);
323
+ if (idx !== -1)
324
+ resolvers.splice(idx, 1);
325
+ resolve();
326
+ }
327
+ resolvers.push(done);
328
+ });
329
+ return this._exitCode;
330
+ }
252
331
  async getThreads() {
253
332
  const response = await this.client.sendRequest("threads");
254
333
  return response.body?.threads || [];
@@ -284,9 +363,14 @@ export class DebugSession {
284
363
  return vars;
285
364
  }
286
365
  async evaluate(expression, frameId, context = "repl") {
366
+ let resolvedFrameId = frameId;
367
+ if (resolvedFrameId === undefined && this._state === "stopped") {
368
+ const frames = await this.getStackTrace(this.stoppedThreadId ?? 1, 1);
369
+ resolvedFrameId = frames[0]?.id;
370
+ }
287
371
  const args = { expression, context };
288
- if (frameId !== undefined)
289
- args.frameId = frameId;
372
+ if (resolvedFrameId !== undefined)
373
+ args.frameId = resolvedFrameId;
290
374
  const response = await this.client.sendRequest("evaluate", args);
291
375
  return {
292
376
  result: response.body?.result ?? "",
@@ -295,7 +379,44 @@ export class DebugSession {
295
379
  variablesReference: response.body?.variablesReference ?? 0,
296
380
  };
297
381
  }
298
- async collectState(threadId, depth = 10, variableDepth = 1) {
382
+ async getExceptionDetails(threadId) {
383
+ if (this.capabilities.supportsExceptionInfoRequest) {
384
+ try {
385
+ const response = await this.client.sendRequest("exceptionInfo", { threadId });
386
+ const body = response.body;
387
+ if (body) {
388
+ return {
389
+ id: body.exceptionId,
390
+ description: body.description ?? body.details?.message,
391
+ breakMode: body.breakMode,
392
+ };
393
+ }
394
+ }
395
+ catch {
396
+ /* Fall back to what the stopped event said */
397
+ }
398
+ }
399
+ return this.stoppedDescription ? { description: this.stoppedDescription } : undefined;
400
+ }
401
+ /**
402
+ * Output no earlier state has reported yet, capped to the newest entries.
403
+ * The full buffer always stays available through getOutput().
404
+ */
405
+ unreportedOutput(consume) {
406
+ const since = this.lastReportedOutputSeq;
407
+ const entries = this.outputBuffer.getFiltered((e) => e.seq > since);
408
+ if (consume && entries.length > 0) {
409
+ this.lastReportedOutputSeq = entries[entries.length - 1].seq;
410
+ }
411
+ if (entries.length === 0)
412
+ return {};
413
+ const omitted = Math.max(0, entries.length - MAX_STATE_OUTPUT_ENTRIES);
414
+ return {
415
+ output: entries.slice(omitted).map((e) => e.text),
416
+ outputOmitted: omitted > 0 ? omitted : undefined,
417
+ };
418
+ }
419
+ async collectState(threadId, depth = 10, variableDepth = 1, options = {}) {
299
420
  const tid = threadId ?? this.stoppedThreadId ?? 1;
300
421
  const threads = await this.getThreads();
301
422
  const frames = await this.getStackTrace(tid, depth);
@@ -309,17 +430,28 @@ export class DebugSession {
309
430
  }
310
431
  : { file: "<unknown>", line: 0 };
311
432
  const scopes = [];
433
+ const omittedScopes = [];
312
434
  if (topFrame) {
435
+ const requested = options.scopes?.map((name) => name.toLowerCase());
313
436
  const rawScopes = await this.getScopes(topFrame.id);
314
437
  for (const scope of rawScopes) {
438
+ const wanted = requested
439
+ ? requested.includes(scope.name.toLowerCase())
440
+ : !isRegistersScope(scope) && (!options.localsOnly || isFrameLocalScope(scope));
441
+ if (!wanted) {
442
+ omittedScopes.push(scope.name);
443
+ continue;
444
+ }
315
445
  const variables = await this.getVariables(scope.variablesReference, variableDepth);
316
446
  scopes.push({ name: scope.name, variables });
317
447
  }
318
448
  }
319
- const output = this.outputBuffer.getAll().map((e) => e.text);
449
+ const reason = this.stoppedReason || "unknown";
450
+ const exception = reason === "exception" ? await this.getExceptionDetails(tid) : undefined;
320
451
  return {
321
452
  status: "stopped",
322
- reason: this.stoppedReason || "unknown",
453
+ reason,
454
+ exception,
323
455
  location,
324
456
  threads: threads.map((t) => ({ id: t.id, name: t.name, stopped: t.id === tid })),
325
457
  stackTrace: frames.map((f) => ({
@@ -330,7 +462,8 @@ export class DebugSession {
330
462
  column: f.column,
331
463
  })),
332
464
  scopes,
333
- output: output.length > 0 ? output : undefined,
465
+ omittedScopes: omittedScopes.length > 0 ? omittedScopes : undefined,
466
+ ...this.unreportedOutput(options.consumeOutput ?? false),
334
467
  };
335
468
  }
336
469
  addOutput(category, text) {
@@ -374,6 +507,8 @@ export class DebugSession {
374
507
  /* Ignore — adapter may have already exited */
375
508
  }
376
509
  this._state = "terminated";
510
+ this.resolveTerminatedWaiters();
511
+ this.resolveLifecycleWaiters({ status: "terminated" });
377
512
  await this.client.dispose();
378
513
  }
379
514
  getLaunchConfig() {
@@ -406,12 +541,17 @@ export class DebugSession {
406
541
  this._state = "stopped";
407
542
  this.stoppedThreadId = event.body?.threadId;
408
543
  this.stoppedReason = event.body?.reason;
544
+ this.stoppedDescription = (event.body?.text ?? event.body?.description);
409
545
  {
410
546
  const resolvers = this.stoppedResolvers;
411
547
  this.stoppedResolvers = [];
412
548
  for (const resolve of resolvers)
413
549
  resolve(event);
414
550
  }
551
+ this.resolveLifecycleWaiters({
552
+ status: "stopped",
553
+ event: event,
554
+ });
415
555
  break;
416
556
  case "continued":
417
557
  this._state = "running";
@@ -422,8 +562,14 @@ export class DebugSession {
422
562
  break;
423
563
  case "terminated":
424
564
  case "exited":
565
+ if (event.event === "exited" && typeof event.body?.exitCode === "number") {
566
+ this._exitCode = event.body.exitCode;
567
+ for (const resolve of [...this.exitCodeResolvers])
568
+ resolve();
569
+ }
425
570
  this._state = "terminated";
426
571
  this.resolveTerminatedWaiters();
572
+ this.resolveLifecycleWaiters({ status: "terminated" });
427
573
  break;
428
574
  }
429
575
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"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"}
@@ -19,5 +19,14 @@
19
19
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
20
  * SOFTWARE.
21
21
  */
22
-
23
- process.exit(1);
22
+ import { StoppedState } from "../dap/types.js";
23
+ export type StateDetail = "compact" | "full";
24
+ /** Stack depth worth paying for on every step; get_state can ask for more. */
25
+ export declare const COMPACT_STACK_DEPTH = 5;
26
+ /**
27
+ * The token-frugal view of a stopped state: no columns, no redundant
28
+ * variable bookkeeping, and no thread list unless there are threads to tell
29
+ * apart. Undefined members disappear on JSON serialization.
30
+ */
31
+ export declare function compactState(state: StoppedState): Record<string, unknown>;
32
+ export declare function renderState(state: StoppedState, detail: StateDetail, extra?: Record<string, unknown>): string;
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Copyright (c) 2026 Ivan Iraci <ivan.iraci@professioneit.com>
3
+ *
4
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ * of this software and associated documentation files (the "Software"), to deal
6
+ * in the Software without restriction, including without limitation the rights
7
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ * copies of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be included in
12
+ * all copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20
+ * SOFTWARE.
21
+ */
22
+ /** Stack depth worth paying for on every step; get_state can ask for more. */
23
+ export const COMPACT_STACK_DEPTH = 5;
24
+ function compactVariable(variable) {
25
+ return {
26
+ name: variable.name,
27
+ value: variable.value,
28
+ type: variable.type || undefined,
29
+ variablesReference: variable.variablesReference > 0 ? variable.variablesReference : undefined,
30
+ children: variable.children?.map(compactVariable),
31
+ };
32
+ }
33
+ /**
34
+ * The token-frugal view of a stopped state: no columns, no redundant
35
+ * variable bookkeeping, and no thread list unless there are threads to tell
36
+ * apart. Undefined members disappear on JSON serialization.
37
+ */
38
+ export function compactState(state) {
39
+ const { column: _column, ...location } = state.location;
40
+ const compact = {
41
+ status: state.status,
42
+ reason: state.reason,
43
+ exception: state.exception,
44
+ location,
45
+ threads: state.threads.length > 1 ? state.threads : undefined,
46
+ stackTrace: state.stackTrace.map(({ column: _frameColumn, ...frame }) => frame),
47
+ scopes: state.scopes.map((scope) => ({
48
+ name: scope.name,
49
+ variables: scope.variables.map(compactVariable),
50
+ })),
51
+ omittedScopes: state.omittedScopes,
52
+ output: state.output,
53
+ outputOmitted: state.outputOmitted,
54
+ };
55
+ return JSON.parse(JSON.stringify(compact));
56
+ }
57
+ export function renderState(state, detail, extra = {}) {
58
+ return detail === "compact"
59
+ ? JSON.stringify({ ...extra, ...compactState(state) })
60
+ : JSON.stringify({ ...extra, ...state }, null, 2);
61
+ }
62
+ //# sourceMappingURL=state-format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-format.js","sourceRoot":"","sources":["../../src/session/state-format.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,8EAA8E;AAC9E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC;AAErC,SAAS,eAAe,CAAC,QAAkB;IACzC,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,SAAS;QAChC,kBAAkB,EAAE,QAAQ,CAAC,kBAAkB,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;QAC7F,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,eAAe,CAAC;KAClD,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,KAAmB;IAC9C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC;IACxD,MAAM,OAAO,GAAG;QACd,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ;QACR,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAC7D,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC;QAC/E,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,eAAe,CAAC;SAChD,CAAC,CAAC;QACH,aAAa,EAAE,KAAK,CAAC,aAAa;QAClC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC;IACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAA4B,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,KAAmB,EACnB,MAAmB,EACnB,QAAiC,EAAE;IAEnC,OAAO,MAAM,KAAK,SAAS;QACzB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "dap-debugging",
3
+ "description": "LLM-first runtime debugging through standard Debug Adapter Protocol adapters",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Ivan Iraci"
7
+ },
8
+ "repository": "ssh://git@forgejo.professioneit.com/ProfessioneIT/dap-mcp-server.git"
9
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "mcpServers": {
3
+ "dap": {
4
+ "command": "npx",
5
+ "args": ["-y", "dap-mcp-server"]
6
+ }
7
+ }
8
+ }
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: dap-debugging
3
+ description: Use a real debugger for opaque test failures, crashes, swallowed exceptions, incorrect runtime state, or a bug that remains unexplained after static inspection or a failed fix. Prefer this over adding multiple print statements when actual values, branches, or call stacks are needed.
4
+ ---
5
+
6
+ # Debug Code with DAP
7
+
8
+ Use the `dap` MCP server when static inspection cannot explain a runtime failure. Debugging executes local code and can trigger its normal side effects, so do not run untrusted targets.
9
+
10
+ ## Preferred Workflow
11
+
12
+ 1. Call `debug_doctor` with the project `cwd`. Follow its remediation when `ready` is false.
13
+ 2. Choose an executable line near the first observable bad state.
14
+ 3. Call `debug_at` with `file`, `line`, and a small set of hypothesis-driven `expressions`. It detects the adapter, launches, inspects, and cleans up in one call.
15
+
16
+ ```json
17
+ {
18
+ "cwd": "/workspace/project",
19
+ "program": "/workspace/project/app.py",
20
+ "file": "/workspace/project/app.py",
21
+ "line": 42,
22
+ "expressions": ["request.user", "result"]
23
+ }
24
+ ```
25
+
26
+ Read the outcome precisely:
27
+
28
+ - `hit: true`: use the location and values as evidence.
29
+ - `status: terminated`: execution finished before the breakpoint; verify path, arguments, and branch.
30
+ - `timedOut: true`: inspect captured output and narrow the target.
31
+ - With `hit: false`, `breakpoint.verified: false` means the adapter could not bind the source location.
32
+
33
+ Pass adapter-specific fields through `launchConfig`. Use absolute program and source paths.
34
+
35
+ ## Failing Tests
36
+
37
+ Debug the smallest failing test. Supply its runner as `program` or through `launchConfig`, and its selector in `args`. Launch conventions differ across adapters; retain known-good fields from `.vscode/launch.json`. Put the breakpoint in application code before the assertion or exception boundary.
38
+
39
+ ## Interactive Exploration
40
+
41
+ Use `debug_launch` only for multiple stops or stepping. A launch with breakpoints waits by default and reports stopped, terminated, or timeout.
42
+
43
+ 1. Inspect the state returned by `debug_launch`.
44
+ 2. Use `evaluate` for focused questions.
45
+ 3. Prefer `step` with `next`; use `stepIn` only when the callee is suspect.
46
+ 4. Move breakpoints with `set_breakpoints` as the hypothesis changes.
47
+ 5. Finish with `debug_disconnect`.
48
+
49
+ `step` answers compactly (frame-local scopes, short stack, new output only); use `get_state` for globals, deeper stacks, or `scopes: ["Registers"]`. For a running or suspended process, call `debug_attach` with `breakpoints` so they bind before it resumes.
50
+
51
+ Omit `sessionId` when one session is active. Use `debug_run` when output and termination are sufficient. For repeated observations, use logpoints (`logMessage`) and read them with `get_output` instead of editing source to add prints.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dap-mcp-server",
3
- "version": "0.1.12",
3
+ "version": "0.1.17",
4
4
  "description": "MCP server wrapping the Debug Adapter Protocol for AI-driven debugging",
5
5
  "keywords": [
6
6
  "LLM",
@@ -19,6 +19,11 @@
19
19
  "bin": {
20
20
  "dap-mcp-server": "build/index.js"
21
21
  },
22
+ "files": [
23
+ "build",
24
+ "SKILL.md",
25
+ "integrations/claude/dap-debugging"
26
+ ],
22
27
  "directories": {
23
28
  "doc": "docs"
24
29
  },
@@ -31,7 +36,7 @@
31
36
  "typecheck": "tsc --noEmit"
32
37
  },
33
38
  "dependencies": {
34
- "@modelcontextprotocol/sdk": "^1.27.1",
39
+ "@modelcontextprotocol/sdk": "^1.30.0",
35
40
  "@vscode/debugprotocol": "^1.68.0"
36
41
  },
37
42
  "peerDependencies": {
@@ -40,6 +45,6 @@
40
45
  "devDependencies": {
41
46
  "@types/node": "^25.3.3",
42
47
  "typescript": "^5.9.3",
43
- "vitest": "^4.0.18"
48
+ "vitest": "^4.1.11"
44
49
  }
45
50
  }
@@ -1,63 +0,0 @@
1
- name: Publish to npm
2
-
3
- on:
4
- push:
5
- branches:
6
- - main
7
-
8
- jobs:
9
- publish:
10
- runs-on: docker
11
- steps:
12
- - name: Checkout
13
- uses: actions/checkout@v4
14
- with:
15
- fetch-depth: 0
16
- token: ${{ secrets.REPO_TOKEN }}
17
-
18
- - name: Setup Node.js
19
- uses: actions/setup-node@v4
20
- with:
21
- node-version: '20'
22
- registry-url: 'https://registry.npmjs.org'
23
-
24
- - name: Install dependencies
25
- run: npm ci
26
-
27
- - name: Run tests
28
- run: npm test
29
-
30
- - name: Run typecheck
31
- run: npm run typecheck
32
-
33
- - name: Build
34
- run: npm run build
35
-
36
- - name: Configure git
37
- run: |
38
- git config user.name "Forgejo Actions"
39
- git config user.email "actions@forgejo.local"
40
-
41
- - name: Bump version and publish
42
- env:
43
- NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
44
- run: |
45
- # Get current version
46
- CURRENT_VERSION=$(node -p "require('./package.json').version")
47
- echo "Current version: $CURRENT_VERSION"
48
-
49
- # Bump patch version
50
- npm version patch --no-git-tag-version
51
- NEW_VERSION=$(node -p "require('./package.json').version")
52
- echo "New version: $NEW_VERSION"
53
-
54
- # Commit version bump
55
- git add package.json package-lock.json
56
- git commit -m "chore: bump version to $NEW_VERSION [skip ci]"
57
- git tag "v$NEW_VERSION"
58
-
59
- # Push changes back to repository
60
- git push origin main --tags
61
-
62
- # Publish to npm
63
- npm publish --access public