debugger-mcp-server 0.1.7 → 0.1.9

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.
package/README.md CHANGED
@@ -5,7 +5,15 @@ An MCP server that enables AI agents to debug code in VS Code. It exposes debugg
5
5
  ## Setup
6
6
 
7
7
  1. Install [Agentic Debugger](https://open-vsx.org/extension/devinat1/agentic-debugger) on Cursor or VS Code
8
- 2. Add the MCP server to your client configuration (e.g. Claude Desktop, Claude Code, Cursor):
8
+ 2. Add the MCP server to your client configuration:
9
+
10
+ **Claude Code:**
11
+
12
+ ```bash
13
+ claude mcp add debugger --scope user -- npx debugger-mcp-server
14
+ ```
15
+
16
+ **Claude Desktop, Cursor, or other MCP clients:**
9
17
 
10
18
  ```json
11
19
  {
@@ -24,7 +32,6 @@ The package is available on [npm](https://www.npmjs.com/package/debugger-mcp-ser
24
32
 
25
33
  | Category | Tool | Description |
26
34
  |---|---|---|
27
- | Analysis | `analyzeCode` | Analyze code with the VS Code language server |
28
35
  | Breakpoints | `setBreakpoints` | Set breakpoints in a file |
29
36
  | Breakpoints | `removeBreakpoints` | Remove breakpoints |
30
37
  | Breakpoints | `listBreakpoints` | List all active breakpoints |
@@ -29,15 +29,6 @@ export interface RemoveBreakpointsResponse {
29
29
  export interface ListBreakpointsResponse {
30
30
  breakpoints: BreakpointInfo[];
31
31
  }
32
- export interface AnalyzeCodeResponse {
33
- locations: Array<{
34
- filePath: string;
35
- lineNumber: number;
36
- codeSnippet: string;
37
- reason: string;
38
- }>;
39
- summary: string;
40
- }
41
32
  export interface StartDebugSessionResponse {
42
33
  sessionId: string;
43
34
  name: string;
@@ -1,4 +1,3 @@
1
- import { registerAnalyzeCodeTool } from "./analysis/analyzeCode.js";
2
1
  import { registerSetBreakpointsTool } from "./breakpoints/setBreakpoints.js";
3
2
  import { registerRemoveBreakpointsTool } from "./breakpoints/removeBreakpoints.js";
4
3
  import { registerListBreakpointsTool } from "./breakpoints/listBreakpoints.js";
@@ -12,7 +11,6 @@ import { registerGetVariablesTool } from "./debugSession/getVariables.js";
12
11
  import { registerGetCallStackTool } from "./debugSession/getCallStack.js";
13
12
  import { registerEvaluateExpressionTool } from "./debugSession/evaluateExpression.js";
14
13
  export const registerAllTools = (params) => {
15
- registerAnalyzeCodeTool(params);
16
14
  registerSetBreakpointsTool(params);
17
15
  registerRemoveBreakpointsTool(params);
18
16
  registerListBreakpointsTool(params);
@@ -1 +1 @@
1
- {"version":3,"file":"toolRegistry.js","sourceRoot":"","sources":["../../src/tools/toolRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAEtF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAA6B,EAAQ,EAAE;IACtE,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAChC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACpC,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,4BAA4B,CAAC,MAAM,CAAC,CAAC;IACrC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,8BAA8B,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC,CAAC"}
1
+ {"version":3,"file":"toolRegistry.js","sourceRoot":"","sources":["../../src/tools/toolRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AACnF,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,4BAA4B,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC1E,OAAO,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAEtF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAA6B,EAAQ,EAAE;IACtE,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACnC,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACpC,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,4BAA4B,CAAC,MAAM,CAAC,CAAC;IACrC,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7B,mBAAmB,CAAC,MAAM,CAAC,CAAC;IAC5B,6BAA6B,CAAC,MAAM,CAAC,CAAC;IACtC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACjC,8BAA8B,CAAC,MAAM,CAAC,CAAC;AACzC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "debugger-mcp-server",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "MCP server for VS Code debugging via bridge extension",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -32,16 +32,6 @@ export interface ListBreakpointsResponse {
32
32
  breakpoints: BreakpointInfo[];
33
33
  }
34
34
 
35
- export interface AnalyzeCodeResponse {
36
- locations: Array<{
37
- filePath: string;
38
- lineNumber: number;
39
- codeSnippet: string;
40
- reason: string;
41
- }>;
42
- summary: string;
43
- }
44
-
45
35
  export interface StartDebugSessionResponse {
46
36
  sessionId: string;
47
37
  name: string;
@@ -1,5 +1,4 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- import { registerAnalyzeCodeTool } from "./analysis/analyzeCode.js";
3
2
  import { registerSetBreakpointsTool } from "./breakpoints/setBreakpoints.js";
4
3
  import { registerRemoveBreakpointsTool } from "./breakpoints/removeBreakpoints.js";
5
4
  import { registerListBreakpointsTool } from "./breakpoints/listBreakpoints.js";
@@ -14,7 +13,6 @@ import { registerGetCallStackTool } from "./debugSession/getCallStack.js";
14
13
  import { registerEvaluateExpressionTool } from "./debugSession/evaluateExpression.js";
15
14
 
16
15
  export const registerAllTools = (params: { server: McpServer }): void => {
17
- registerAnalyzeCodeTool(params);
18
16
  registerSetBreakpointsTool(params);
19
17
  registerRemoveBreakpointsTool(params);
20
18
  registerListBreakpointsTool(params);
@@ -1,4 +0,0 @@
1
- import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
- export declare const registerAnalyzeCodeTool: (params: {
3
- server: McpServer;
4
- }) => void;
@@ -1,26 +0,0 @@
1
- import { z } from "zod";
2
- import { sendBridgeCommand } from "../../bridge/bridgeClient.js";
3
- import { formatToolResult, formatErrorResult } from "../toolTypes.js";
4
- const ANALYZE_CODE_TIMEOUT_MS = 120000;
5
- export const registerAnalyzeCodeTool = (params) => {
6
- params.server.tool("analyze_code", "Analyze codebase to find relevant code locations for debugging a feature. Uses AI to explore and identify entry points, core logic, and key functions.", {
7
- featureDescription: z.string().describe("Description of the feature or code area to analyze"),
8
- workspacePath: z.string().describe("Absolute path to the workspace root"),
9
- }, async (args) => {
10
- try {
11
- const result = await sendBridgeCommand({
12
- command: "analyzeCode",
13
- args: {
14
- featureDescription: args.featureDescription,
15
- workspacePath: args.workspacePath,
16
- },
17
- timeoutMs: ANALYZE_CODE_TIMEOUT_MS,
18
- });
19
- return { content: [{ type: "text", text: formatToolResult({ data: result }) }] };
20
- }
21
- catch (error) {
22
- return { content: [{ type: "text", text: formatErrorResult({ error }) }], isError: true };
23
- }
24
- });
25
- };
26
- //# sourceMappingURL=analyzeCode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"analyzeCode.js","sourceRoot":"","sources":["../../../src/tools/analysis/analyzeCode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGtE,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAEvC,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,MAA6B,EAAQ,EAAE;IAC7E,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,cAAc,EACd,wJAAwJ,EACxJ;QACE,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QAC7F,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;KAC1E,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAsB;gBAC1D,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE;oBACJ,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;oBAC3C,aAAa,EAAE,IAAI,CAAC,aAAa;iBAClC;gBACD,SAAS,EAAE,uBAAuB;aACnC,CAAC,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gBAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;QAC5F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,iBAAiB,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACrG,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC,CAAC"}
@@ -1,33 +0,0 @@
1
- import { z } from "zod";
2
- import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
- import { sendBridgeCommand } from "../../bridge/bridgeClient.js";
4
- import { formatToolResult, formatErrorResult } from "../toolTypes.js";
5
- import type { AnalyzeCodeResponse } from "../../bridge/bridgeTypes.js";
6
-
7
- const ANALYZE_CODE_TIMEOUT_MS = 120000;
8
-
9
- export const registerAnalyzeCodeTool = (params: { server: McpServer }): void => {
10
- params.server.tool(
11
- "analyze_code",
12
- "Analyze codebase to find relevant code locations for debugging a feature. Uses AI to explore and identify entry points, core logic, and key functions.",
13
- {
14
- featureDescription: z.string().describe("Description of the feature or code area to analyze"),
15
- workspacePath: z.string().describe("Absolute path to the workspace root"),
16
- },
17
- async (args) => {
18
- try {
19
- const result = await sendBridgeCommand<AnalyzeCodeResponse>({
20
- command: "analyzeCode",
21
- args: {
22
- featureDescription: args.featureDescription,
23
- workspacePath: args.workspacePath,
24
- },
25
- timeoutMs: ANALYZE_CODE_TIMEOUT_MS,
26
- });
27
- return { content: [{ type: "text" as const, text: formatToolResult({ data: result }) }] };
28
- } catch (error) {
29
- return { content: [{ type: "text" as const, text: formatErrorResult({ error }) }], isError: true };
30
- }
31
- }
32
- );
33
- };