get_thinking_summary
Extract a concise summary of the ongoing thinking session to clarify complex problem-solving steps and reasoning paths for structured AI decision-making.
Instructions
Get a summary of the current thinking session
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/index-backup.ts:271-328 (handler)MCP tool registration and inline handler implementation for 'get_thinking_summary'. The anonymous async function retrieves the current thinking session state from the global 'thinkingSession' object, formats a detailed summary including all steps, status, progress, timestamps, and optional PDF context, and returns it as MCP content. No input parameters (empty schema). Handles empty session and errors gracefully.server.tool( "get_thinking_summary", "Get a complete summary of the current thinking session with all steps and analysis", {}, async () => { try { if (thinkingSession.currentSteps.length === 0) { return { content: [{ type: "text", text: "📝 **No Active Thinking Session**\n\nUse 'sequential_thinking' to start your first thought." }] }; } const targetSteps = thinkingSession.metadata?.target_steps; const progress = targetSteps ? ` (${thinkingSession.currentSteps.length}/${targetSteps})` : ''; let content = `📋 **Thinking Session Summary${progress}**\n\n`; content += `**Status**: ${thinkingSession.isComplete ? 'Complete ✅' : 'In Progress 🔄'}\n`; content += `**Total Steps**: ${thinkingSession.currentSteps.length}\n`; content += `**Started**: ${thinkingSession.currentSteps[0]?.timestamp ? new Date(thinkingSession.currentSteps[0].timestamp).toLocaleString() : 'Unknown'}\n\n`; content += "**Complete Thinking Chain:**\n"; thinkingSession.currentSteps.forEach((step, index) => { const categoryLabel = step.category ? ` [${step.category}]` : ''; content += `**${step.id}.${categoryLabel}** ${step.thought}\n`; if (step.reasoning) { content += ` *Reasoning: ${step.reasoning}*\n`; } content += '\n'; }); if (thinkingSession.summary) { content += `**Session Summary**: ${thinkingSession.summary}\n`; } if (thinkingSession.pdfContext) { content += `**PDF Context**: ${thinkingSession.pdfContext.filename || 'Document loaded'}\n`; } return { content: [{ type: "text", text: content }] }; } catch (error) { return { content: [{ type: "text", text: `❌ **Error getting thinking summary**: ${error instanceof Error ? error.message : String(error)}` }] }; } } );
- src/index-backup.ts:271-328 (registration)Registration of the 'get_thinking_summary' tool using server.tool(), including name, description, empty schema, and handler function.server.tool( "get_thinking_summary", "Get a complete summary of the current thinking session with all steps and analysis", {}, async () => { try { if (thinkingSession.currentSteps.length === 0) { return { content: [{ type: "text", text: "📝 **No Active Thinking Session**\n\nUse 'sequential_thinking' to start your first thought." }] }; } const targetSteps = thinkingSession.metadata?.target_steps; const progress = targetSteps ? ` (${thinkingSession.currentSteps.length}/${targetSteps})` : ''; let content = `📋 **Thinking Session Summary${progress}**\n\n`; content += `**Status**: ${thinkingSession.isComplete ? 'Complete ✅' : 'In Progress 🔄'}\n`; content += `**Total Steps**: ${thinkingSession.currentSteps.length}\n`; content += `**Started**: ${thinkingSession.currentSteps[0]?.timestamp ? new Date(thinkingSession.currentSteps[0].timestamp).toLocaleString() : 'Unknown'}\n\n`; content += "**Complete Thinking Chain:**\n"; thinkingSession.currentSteps.forEach((step, index) => { const categoryLabel = step.category ? ` [${step.category}]` : ''; content += `**${step.id}.${categoryLabel}** ${step.thought}\n`; if (step.reasoning) { content += ` *Reasoning: ${step.reasoning}*\n`; } content += '\n'; }); if (thinkingSession.summary) { content += `**Session Summary**: ${thinkingSession.summary}\n`; } if (thinkingSession.pdfContext) { content += `**PDF Context**: ${thinkingSession.pdfContext.filename || 'Document loaded'}\n`; } return { content: [{ type: "text", text: content }] }; } catch (error) { return { content: [{ type: "text", text: `❌ **Error getting thinking summary**: ${error instanceof Error ? error.message : String(error)}` }] }; } } );