initialize-research
Kickstart in-depth research by submitting a query and specifying depth level. DeepResearch MCP generates comprehensive reports through intelligent web searches and analysis.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| depth | No | ||
| query | Yes |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"depth": {
"default": 3,
"type": "number"
},
"query": {
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
}
Implementation Reference
- src/services/research.ts:17-34 (handler)Core handler function that initializes a new research session by creating and storing the initial ResearchState object.export function initializeResearch( sessionId: string, query: string, depth: number = 3 ): ResearchState { const researchState: ResearchState = { query, depth, currentDepth: 0, topics: [], findings: [], nextSearchTopic: query, // Initial search topic is the query itself shouldContinue: true }; researchSessions.set(sessionId, researchState); return researchState; }
- src/index.ts:62-94 (registration)MCP server registration of the 'initialize-research' tool, including input schema and wrapper handler that generates session ID and delegates to core initializeResearch function.'initialize-research', { query: z.string(), depth: z.number().default(3), }, async ({ query, depth }) => { try { // Generate a unique session ID const sessionId = crypto.randomUUID(); const state = initializeResearch(sessionId, query, depth); return { content: [{ type: 'text', text: JSON.stringify({ sessionId, message: 'Research session initialized', state }, null, 2) }] }; } catch (error) { console.error('Error initializing research:', error); return { content: [{ type: 'text', text: `Error initializing research: ${error instanceof Error ? error.message : String(error)}` }], isError: true }; } } );
- src/types/index.ts:2-10 (schema)TypeScript interface defining the ResearchState used by the initialize-research tool implementation.export interface ResearchState { query: string; depth: number; currentDepth: number; topics: string[]; findings: string[]; nextSearchTopic: string | null; shouldContinue: boolean; }