debug-issue
Identify and resolve technical issues by analyzing symptoms, specifying tasks, and leveraging AI providers for systematic debugging on Ultra MCP.
Instructions
Debug technical issues with systematic problem-solving approach
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| files | No | Relevant file paths (optional) | |
| provider | No | AI provider to use | gemini |
| symptoms | No | Error symptoms or behavior observed | |
| task | Yes | What to debug (e.g., 'fix login error', 'investigate memory leak') |
Implementation Reference
- src/handlers/ai-tools.ts:401-448 (handler)Core handler function that executes the debug-issue tool: selects AI provider, constructs systematic debugging prompt and system instructions, generates AI response, and formats output for MCP protocol.async handleDebugIssue(params: z.infer<typeof DebugIssueSchema>) { // Use provided provider or get the preferred one (Azure if configured) const providerName = params.provider || (await this.providerManager.getPreferredProvider(['openai', 'gemini', 'azure'])); const provider = await this.providerManager.getProvider(providerName); const systemPrompt = `You are an expert debugger and problem solver. Help identify and solve technical issues. Approach debugging systematically: - Analyze the problem description and symptoms - Identify potential root causes - Suggest specific debugging steps - Provide solution recommendations - Consider edge cases and related issues Be methodical and provide actionable debugging guidance.`; let prompt = `Debug the following issue: ${params.task}`; if (params.symptoms) { prompt += `\n\nSymptoms observed: ${params.symptoms}`; } if (params.files) { prompt += `\n\nRelevant files: ${params.files.join(", ")}`; } const response = await provider.generateText({ prompt, systemPrompt, temperature: 0.4, // Balanced temperature for debugging creativity reasoningEffort: (providerName === "openai" || providerName === "azure" || providerName === "grok") ? "high" : undefined, useSearchGrounding: false, // No search needed for debugging }); return { content: [ { type: "text", text: response.text, }, ], metadata: { provider: providerName, model: response.model, symptoms: params.symptoms, usage: response.usage, ...response.metadata, }, }; }
- src/server.ts:304-312 (registration)Tool registration in the MCP server, specifying title, description, input schema, and delegating execution to AIToolHandlers.handleDebugIssue.// Register debug-issue tool server.registerTool("debug-issue", { title: "Debug Issue", description: "Debug technical issues with systematic problem-solving approach", inputSchema: DebugIssueSchema.shape, }, async (args) => { const aiHandlers = await getHandlers(); return await aiHandlers.handleDebugIssue(args); });
- src/server.ts:48-53 (schema)Zod input schema defining parameters for the debug-issue tool: task (required), files and symptoms (optional), provider (optional with default). Used in tool registration.const DebugIssueSchema = z.object({ task: z.string().describe("What to debug (e.g., 'fix login error', 'investigate memory leak')"), files: z.array(z.string()).optional().describe("Relevant file paths (optional)"), symptoms: z.string().optional().describe("Error symptoms or behavior observed"), provider: z.enum(["openai", "gemini", "azure", "grok"]).optional().default("gemini").describe("AI provider to use"), });