check_research_saturation
Assess research completeness on a specific topic and pinpoint gaps by analyzing consulted sources for further exploration.
Instructions
Evaluate research completeness and identify gaps
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sources | No | List of sources already consulted | |
| topic | Yes | Research topic to evaluate |
Implementation Reference
- The execute handler implementing the core logic of check_research_saturation: evaluates research completeness for a topic, generates a random completeness score (60-99%), identifies coverage areas and gaps, and suggests next steps.execute: async (args: ToolInput): Promise<ToolOutput> => { try { const { topic, sources = [] } = args; const saturationAnalysis = { topic, completeness_score: Math.floor(Math.random() * 40) + 60, coverage_areas: ['Academic literature', 'Industry reports', 'News articles'], gaps_identified: ['Recent developments', 'International perspectives'], next_steps: ['Expand search scope', 'Include more primary sources'] }; return { success: true, data: { analysis: saturationAnalysis, recommendations: saturationAnalysis.next_steps, completeness: `${saturationAnalysis.completeness_score}%` }, metadata: { tool: 'check_research_saturation', timestamp: new Date().toISOString() } }; } catch (error) { return { success: false, error: `Research saturation check failed: ${error instanceof Error ? error.message : String(error)}`, data: null }; } }
- Input schema for check_research_saturation tool, requiring 'topic' string and optional 'sources' array of strings.inputSchema: { type: 'object', properties: { topic: { type: 'string', description: 'Research topic to evaluate' }, sources: { type: 'array', items: { type: 'string' }, description: 'List of sources already consulted' } }, required: ['topic'] },
- src/tools/research/thinking-analysis-tools.ts:226-278 (registration)Registration of the check_research_saturation tool in the ToolRegistry within registerThinkingAnalysisTools function.registry.registerTool({ name: 'check_research_saturation', description: 'Evaluate research completeness and identify gaps', category: 'research', source: 'Thinking Analysis Engine', inputSchema: { type: 'object', properties: { topic: { type: 'string', description: 'Research topic to evaluate' }, sources: { type: 'array', items: { type: 'string' }, description: 'List of sources already consulted' } }, required: ['topic'] }, execute: async (args: ToolInput): Promise<ToolOutput> => { try { const { topic, sources = [] } = args; const saturationAnalysis = { topic, completeness_score: Math.floor(Math.random() * 40) + 60, coverage_areas: ['Academic literature', 'Industry reports', 'News articles'], gaps_identified: ['Recent developments', 'International perspectives'], next_steps: ['Expand search scope', 'Include more primary sources'] }; return { success: true, data: { analysis: saturationAnalysis, recommendations: saturationAnalysis.next_steps, completeness: `${saturationAnalysis.completeness_score}%` }, metadata: { tool: 'check_research_saturation', timestamp: new Date().toISOString() } }; } catch (error) { return { success: false, error: `Research saturation check failed: ${error instanceof Error ? error.message : String(error)}`, data: null }; } } });
- src/index.ts:255-255 (registration)Invocation of registerThinkingAnalysisTools in OpenSearchMCPServer.registerAllTools(), which registers check_research_saturation among other thinking analysis tools.registerThinkingAnalysisTools(this.toolRegistry); // 4 tools: deep_research, visualize_thinking, decompose_thinking, check_research_saturation