search_medrxiv
Search the medRxiv preprint server for medical research papers using queries, date ranges, and category filters to find relevant studies.
Instructions
Search medRxiv preprint server for medical papers
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query string | |
| maxResults | No | Maximum number of results to return | |
| days | No | Number of days to search back (default: 30) | |
| category | No | Category filter (e.g., infectious_diseases, epidemiology) |
Implementation Reference
- src/mcp/handleToolCall.ts:170-184 (handler)The main handler case for the 'search_medrxiv' tool. Parses arguments, calls the medrxiv searcher to perform the search, formats the results as JSON, and returns a text response.case 'search_medrxiv': { const { query, maxResults, days, category } = args; const results = await searchers.medrxiv.search(query, { maxResults, days, category }); return jsonTextResponse( `Found ${results.length} medRxiv papers.\n\n${JSON.stringify( results.map((paper: Paper) => PaperFactory.toDict(paper)), null, 2 )}` );
- src/mcp/tools.ts:183-204 (registration)Tool registration definition including name, description, and input schema for 'search_medrxiv'.{ name: 'search_medrxiv', description: 'Search medRxiv preprint server for medical papers', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query string' }, maxResults: { type: 'number', minimum: 1, maximum: 100, description: 'Maximum number of results to return' }, days: { type: 'number', description: 'Number of days to search back (default: 30)' }, category: { type: 'string', description: 'Category filter (e.g., infectious_diseases, epidemiology)' } }, required: ['query'] } },
- src/mcp/schemas.ts:81-91 (schema)Zod schema definition for search_medrxiv input validation, aliased from SearchBioRxivSchema.export const SearchBioRxivSchema = z .object({ query: z.string().min(1), maxResults: z.number().int().min(1).max(100).optional().default(10), days: z.number().int().min(1).max(3650).optional(), category: z.string().optional() }) .strip(); export const SearchMedRxivSchema = SearchBioRxivSchema;
- src/mcp/schemas.ts:242-243 (schema)Schema parsing logic for 'search_medrxiv' tool arguments.case 'search_medrxiv': return SearchMedRxivSchema.parse(args);
- src/mcp/searchers.ts:46-46 (helper)Initialization of the MedRxivSearcher instance used by the tool handler.const medrxivSearcher = new MedRxivSearcher();