think_aloud_process
Generate step-by-step reasoning processes for scenarios using analytical, creative, systematic, or critical perspectives to clarify thinking and problem-solving approaches.
Instructions
think about|consider|what do you think|think about it|let me think|reasoning - Generate think-aloud reasoning process
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scenario | Yes | Scenario or problem to think through | |
| perspective | No | Thinking perspective | |
| verbosity | No | Verbosity level |
Implementation Reference
- Main handler function implementing the think_aloud_process tool logic. Processes input args to generate a structured think-aloud reasoning chain with configurable perspective and verbosity.export async function thinkAloudProcess(args: { scenario: string; perspective?: string; verbosity?: string }): Promise<ToolResult> { const { scenario, perspective = 'analytical', verbosity = 'moderate' } = args; const thoughtCount = verbosity === 'concise' ? 3 : verbosity === 'moderate' ? 5 : 8; const thinkAloudResult = { action: 'think_aloud_process', scenario, perspective, verbosity, thoughtProcess: Array.from({ length: thoughtCount }, (_, i) => { const thoughtNum = i + 1; let thoughtStyle = ''; switch (perspective) { case 'analytical': thoughtStyle = `Analyzing: Let me examine ${scenario} systematically...`; break; case 'creative': thoughtStyle = `Brainstorming: What if I approach ${scenario} differently...`; break; case 'systematic': thoughtStyle = `Step ${thoughtNum}: Following systematic approach to ${scenario}...`; break; case 'critical': thoughtStyle = `Questioning: What assumptions am I making about ${scenario}...`; break; } return { stepNumber: thoughtNum, thought: thoughtStyle, reasoning: `In step ${thoughtNum}, I need to consider the implications of ${scenario} from a ${perspective} perspective`, questions: [ `What do I know about this aspect of ${scenario}?`, `What don't I know yet?`, `What should I explore next?` ], conclusions: [ `Based on current analysis...`, `This leads me to think that...`, `Next I should focus on...` ], confidence: Math.min(95, 60 + (thoughtNum * 5)) }; }), metacognition: { thinkingStyle: perspective, processEffectiveness: verbosity === 'verbose' ? 'highly detailed' : verbosity === 'moderate' ? 'balanced' : 'efficient', nextSteps: [ 'Review thinking process for gaps', 'Validate conclusions against evidence', 'Plan concrete actions based on analysis' ] }, status: 'success' }; return { content: [{ type: 'text', text: `Scenario: ${scenario}\nPerspective: ${perspective}\nThoughts: ${thoughtCount}\n${thinkAloudResult.thoughtProcess.map((t, i) => `${i+1}. ${t.thought} (confidence: ${t.confidence}%)`).join('\n')}\n\nNext: ${thinkAloudResult.metacognition.nextSteps.join(', ')}` }] }; }
- Schema definition for the think_aloud_process tool, defining input parameters (scenario required, perspective and verbosity optional) and metadata.export const thinkAloudProcessDefinition: ToolDefinition = { name: 'think_aloud_process', description: 'think about|consider|what do you think|think about it|let me think|reasoning - Generate think-aloud reasoning process', inputSchema: { type: 'object', properties: { scenario: { type: 'string', description: 'Scenario or problem to think through' }, perspective: { type: 'string', description: 'Thinking perspective', enum: ['analytical', 'creative', 'systematic', 'critical'] }, verbosity: { type: 'string', description: 'Verbosity level', enum: ['concise', 'moderate', 'verbose'] } }, required: ['scenario'] }, annotations: { title: 'Think Aloud', audience: ['user', 'assistant'] } };
- src/index.ts:112-119 (registration)Registration of the tool schema (thinkAloudProcessDefinition) in the central tools array used by the MCP server's listTools handler.// Sequential Thinking Tools createThinkingChainDefinition, analyzeProblemDefinition, stepByStepAnalysisDefinition, breakDownProblemDefinition, thinkAloudProcessDefinition, formatAsPlanDefinition,
- src/index.ts:624-625 (registration)Handler dispatch registration in the executeToolCall switch statement, mapping tool name to the thinkAloudProcess function.case 'think_aloud_process': return await thinkAloudProcess(args as any) as CallToolResult;