MCP server for academic research — search papers, analyze citations, generate BibTeX, translate abstracts
Server has 7 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-200 chars, mostly adequate), and input schemas are present with type definitions. However, output schemas are entirely undocumented, LLMs cannot predict response structure for planning. Parameter descriptions lack constraint details (ranges, enums, formats). Error handling is minimal: tools catch exceptions but return raw error strings without recovery guidance. No tool annotations (readOnlyHint, idempotentHint). Naming is verb-forward (search_, get_, find_) but some tools combine multiple concerns (research_topic does search+citations+bibtex+translate in one call, violating single-responsibility). No pagination support despite tools returning lists. Missing validation of inputs (e.g., source enum not enforced, count bounds not checked).
Check which APIs are available.
Find papers related to a given paper. - paper_id: Semantic Scholar paper ID - count: Number of recommendations (default: 5)
Generate BibTeX citation from a DOI. - doi: Digital Object Identifier (e.g. '10.1038/nature12373')
Get detailed info about a paper including citations and references. - paper_id: Semantic Scholar ID, DOI (e.g. '10.xxxx/...'), or arXiv ID (e.g. 'arXiv:2603.12345')
All-in-one academic research: papers + citations + BibTeX + translation. This is the main tool — generates a comprehensive research report. - topic: Research topic (e.g. 'reinforcement learning from human feedback') - count: Number of papers to include (default: 5)
Search for academic papers by keyword. - query: Search keywords (e.g. 'transformer attention mechanism') - count: Number of results (default: 5) - source: 'arxiv', 'semantic', or 'both' (default)
No output schemas documented. Tools return markdown strings, but LLMs cannot predict structure (fields, nesting, types) for downstream planning. Violates pattern:tool requirement that output schemas be documented.
research_topic tool combines search + citations + bibtex + translation in one call. Violates single-responsibility principle (pattern:tool). Should split into separate tools so agent can compose them independently.
Parameter constraints not enforced or documented. 'source' param in search_papers accepts 'arxiv'|'semantic'|'both' but no enum constraint; 'count' has no min/max bounds. LLMs can pass invalid values (e.g., count=-1, source='invalid'). Violates pattern:constrained-input.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Translate academic text (abstract, title, etc.) using Papago. Requires Naver API key in .env (optional feature). - text: Text to translate - source: Source language (default: en) - target: Target language (default: ko)
Error handling returns raw exception strings ('Could not fetch paper: <exception>') without recovery guidance. LLMs cannot determine if error is retryable, user-fixable, or fatal. Violates pattern:recovery-guide.
No pagination support. Tools return lists (search_papers, find_related, paper_detail citations/references) but no limit/offset/cursor parameters or total_count in response. Large result sets will blow context window. Violates pattern:paginated-result.