visualize_thinking
Create visual diagrams of concepts and thought processes using mind maps, flowcharts, or hierarchy charts to clarify complex ideas.
Instructions
Create visual representations of concepts and thinking processes
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| concept | Yes | Concept or idea to visualize | |
| style | No | Visualization style | mind_map |
Implementation Reference
- Execute function for visualize_thinking tool: extracts concept and style from input, generates visualization structure using helper, creates metadata with node count and recommended tools, returns structured visualization data.execute: async (args: ToolInput): Promise<ToolOutput> => { try { const { concept, style = 'mind_map' } = args; const visualization = { concept, style, structure: generateVisualizationStructure(concept, style), description: `${style} visualization of ${concept}`, metadata: { complexity_level: 'intermediate', node_count: getNodeCount(style), recommended_tools: ['Mermaid', 'Graphviz', 'Draw.io'], export_formats: ['SVG', 'PNG', 'PDF', 'JSON'] } }; return { success: true, data: visualization, metadata: { tool: 'visualize_thinking', timestamp: new Date().toISOString() } }; } catch (error) { return { success: false, error: `Visualization failed: ${error instanceof Error ? error.message : String(error)}`, data: null }; } } });
- Input schema for visualize_thinking: requires 'concept' string, optional 'style' enum (mind_map, flowchart, hierarchy) with default 'mind_map'.inputSchema: { type: 'object', properties: { concept: { type: 'string', description: 'Concept or idea to visualize' }, style: { type: 'string', enum: ['mind_map', 'flowchart', 'hierarchy'], description: 'Visualization style', default: 'mind_map' } }, required: ['concept'] },
- src/tools/research/thinking-analysis-tools.ts:115-169 (registration)Full registration of visualize_thinking tool in registerThinkingAnalysisTools function, including name, description, category, schema, and execute handler.registry.registerTool({ name: 'visualize_thinking', description: 'Create visual representations of concepts and thinking processes', category: 'research', source: 'Thinking Analysis Engine', inputSchema: { type: 'object', properties: { concept: { type: 'string', description: 'Concept or idea to visualize' }, style: { type: 'string', enum: ['mind_map', 'flowchart', 'hierarchy'], description: 'Visualization style', default: 'mind_map' } }, required: ['concept'] }, execute: async (args: ToolInput): Promise<ToolOutput> => { try { const { concept, style = 'mind_map' } = args; const visualization = { concept, style, structure: generateVisualizationStructure(concept, style), description: `${style} visualization of ${concept}`, metadata: { complexity_level: 'intermediate', node_count: getNodeCount(style), recommended_tools: ['Mermaid', 'Graphviz', 'Draw.io'], export_formats: ['SVG', 'PNG', 'PDF', 'JSON'] } }; return { success: true, data: visualization, metadata: { tool: 'visualize_thinking', timestamp: new Date().toISOString() } }; } catch (error) { return { success: false, error: `Visualization failed: ${error instanceof Error ? error.message : String(error)}`, data: null }; } } });
- src/index.ts:255-255 (registration)Invocation of registerThinkingAnalysisTools in OpenSearchMCPServer.registerAllTools(), which registers the visualize_thinking tool among 4 thinking analysis tools.registerThinkingAnalysisTools(this.toolRegistry); // 4 tools: deep_research, visualize_thinking, decompose_thinking, check_research_saturation
- Helper function generateVisualizationStructure used by visualize_thinking to create base structure, branches, and connections based on concept and style.function generateVisualizationStructure(concept: string, style: string) { const baseStructure = { central_node: concept, branches: [] as string[], connections: [] as string[], levels: 3 }; switch (style) { case 'mind_map': baseStructure.branches = [ `${concept} - Core Concepts`, `${concept} - Applications`, `${concept} - Related Fields`, `${concept} - Future Directions`, `${concept} - Key Challenges` ]; break; case 'flowchart': baseStructure.branches = [ `Start: ${concept}`, `Process: Analyze ${concept}`, `Decision: Evaluate ${concept}`, `Output: Results of ${concept}`, `End: Conclusions` ]; baseStructure.connections = ['sequential', 'conditional', 'parallel']; break; case 'hierarchy': baseStructure.branches = [ `Level 1: ${concept} Overview`, `Level 2: ${concept} Components`, `Level 3: ${concept} Details`, `Level 4: ${concept} Implementation` ]; break; } return baseStructure; }