Academic paper search MCP server — Google Scholar + Semantic Scholar enrichment, citation tracking, and local PDF corpus indexing
VibeScholar has well-structured tool definitions with clear naming (verb-noun pattern: search_online, fetch_paper, index_papers) and comprehensive parameter schemas. However, descriptions lack LLM-optimization guidance, parameter descriptions are generic, and output schemas are not documented. Error handling is minimal. The server demonstrates solid foundational quality but falls short of production-grade polish expected for A-tier tools.
Remove a directory from the local index. Deletes all chunks and vectors associated with the directory, but does not delete the PDF files themselves.
Retrieve the full text of a paper by its Semantic Scholar ID. Use this after search_online to read the complete paper. Returns the full text extracted from the PDF, split into pages for easy navigation.
Index a directory of PDF files for local search. Scans the directory for PDFs, extracts text, chunks it, embeds chunks, and stores them in the local FAISS index. Subsequent calls skip unchanged files. Use search_local to query the indexed corpus.
List all indexed PDF directories and their statistics. Shows the number of files and chunks in each directory, and whether each directory is active (included in search) or inactive.
Read a specific page or range of pages from an indexed PDF. Use this to navigate a paper in the local corpus by page number.
Search the local indexed PDF corpus using hybrid semantic + keyword search. Use this when you have a local library indexed via index_papers, or when explicitly instructed to search it. Results are ranked by relevance and include page numbers and snippets.
Output schemas not documented. Tools return formatted strings or objects but LLMs cannot see field structure, forcing them to parse unstructured text and plan downstream calls blindly.
Parameter descriptions are minimal and lack actionable constraints. E.g., 'detail' param says '"brief" for titles/authors/year only, "detailed" (default)' but does not explain when to use each or token cost implications. 'limit' lacks min/max bounds.
Error handling is absent. No recovery guidance, no categorization of retryable vs fatal errors, no actionable error messages. E.g., if fetch_paper fails with invalid paper_id, the LLM has no guidance on what to do next.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | <=2025-11-25 | v2 |
Search Google Scholar for academic papers on any topic. This is the primary search tool for literature discovery. Results are transparently enriched with Semantic Scholar metadata — stable IDs, full abstracts, DOIs, and ArXiv links — so they remain accessible across sessions. Use fetch_paper on any result to retrieve and read the full text. Query syntax (Google Scholar operators — combine freely): - Natural language: "optimal transport for generative models" - "quoted phrase": '"neural radiance field"' (exact phrase match) - OR: "GAN OR diffusion" (either term; AND is implicit) - Exclude: "-survey" (exclude term) - Title only: "intitle:transformer" (term must appear in title) - Author: "author:hinton" (filter by author name) - Source: "source:NeurIPS" (filter by venue/journal) - Combined: '"optimal transport" author:cuturi -survey'
Destructive operations (deindex_papers) lack confirmation or dry-run support. An agent could accidentally delete an entire indexed corpus without a safety gate.
Tool composition assumes multi-step workflows (search_online → fetch_paper → read_paper) but does not document dependencies or chaining IDs. LLMs must infer that search_online returns paper_id needed by fetch_paper.