search_google_scholar
Find academic papers on Google Scholar by searching with keywords, filtering by author or publication year, and retrieving relevant results for research.
Instructions
Search Google Scholar for academic papers using web scraping
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query string | |
| maxResults | No | Maximum number of results to return | |
| yearLow | No | Earliest publication year | |
| yearHigh | No | Latest publication year | |
| author | No | Author name filter |
Implementation Reference
- src/mcp/handleToolCall.ts:240-256 (handler)Handler logic for executing the 'search_google_scholar' tool: destructures args, calls searchers.googlescholar.search(), maps results to dicts, and returns formatted JSON text response.case 'search_google_scholar': { const { query, maxResults, yearLow, yearHigh, author } = args; const results = await searchers.googlescholar.search(query, { maxResults, yearLow, yearHigh, author } as any); return jsonTextResponse( `Found ${results.length} Google Scholar papers.\n\n${JSON.stringify( results.map((paper: Paper) => PaperFactory.toDict(paper)), null, 2 )}` ); }
- src/mcp/schemas.ts:117-125 (schema)Zod schema defining the input parameters and validation for the search_google_scholar tool.export const SearchGoogleScholarSchema = z .object({ query: z.string().min(1), maxResults: z.number().int().min(1).max(20).optional().default(10), yearLow: z.number().int().optional(), yearHigh: z.number().int().optional(), author: z.string().optional() }) .strip();
- src/mcp/tools.ts:269-297 (registration)Registration of the 'search_google_scholar' tool in the TOOLS array, including name, description, and inputSchema for MCP.{ name: 'search_google_scholar', description: 'Search Google Scholar for academic papers using web scraping', inputSchema: { type: 'object', properties: { query: { type: 'string', description: 'Search query string' }, maxResults: { type: 'number', minimum: 1, maximum: 20, description: 'Maximum number of results to return' }, yearLow: { type: 'number', description: 'Earliest publication year' }, yearHigh: { type: 'number', description: 'Latest publication year' }, author: { type: 'string', description: 'Author name filter' } }, required: ['query'] } },
- src/mcp/schemas.ts:250-251 (schema)Usage of the schema in parseToolArgs function to validate arguments for search_google_scholar.case 'search_google_scholar': return SearchGoogleScholarSchema.parse(args);
- src/mcp/schemas.ts:219-219 (registration)Tool name included in the ToolName type union.| 'search_google_scholar'