An MCP server that provides tools to search Google Scholar for academic papers and research articles with support for filtering by author and publication year range.
The Google Scholar MCP server defines a single tool with a well-structured schema and comprehensive parameter documentation. The tool name follows verb_noun convention (search_google_scholar), and the input schema is explicitly visible in server/src/tools.ts with proper JSON Schema types and constraints. Parameter descriptions are present and informative. However, the output schema is not formally documented, the tool returns JSON-stringified results without a declared output type specification, which limits LLM ability to plan downstream operations. Error handling is basic (try-catch with error message wrapping) but lacks categorization guidance. The server is well-implemented within its narrow scope but lacks some production-grade refinements around output documentation and sophisticated error recovery patterns.
Search Google Scholar for academic papers and research articles. Supports filtering by author, publication year range, and returns structured results with titles, authors, abstracts, and URLs.
Output schema not formally documented. Tool returns JSON-stringified response but does not declare the structure of that response in the tool definition. LLMs cannot plan downstream operations or extract specific fields without inferring the schema from example calls.
Error handling lacks categorization and recovery guidance. Errors return a text message but do not distinguish between retryable failures (transient network errors), user-fixable issues (invalid query syntax), or fatal errors (API deprecated). This leaves the LLM without clear guidance on next steps.
Tool description contains example values ('machine learning', 'neural networks') which LLMs may reuse literally rather than substituting actual user context. Best practice is to use enum constraints or formal patterns instead of examples in descriptions.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 63 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 54 | - | v1 |
No pagination support declared in the tool. Although numResults is capped at 20, the tool does not expose a page/offset/cursor mechanism or document how to retrieve additional results beyond the first 20. For a search tool, this severely limits utility for large result sets.
Year range validation allows startYear > endYear to fail at runtime with an error message, but this constraint is not enforced at the schema level (no conditional or cross-field validation in JSON Schema). This forces runtime validation and error handling rather than preventing invalid inputs upfront.