Model Context Protocol server providing academic paper and journal search functionality through the AMiner API
AMiner MCP server has clear naming conventions and reasonable parameter descriptions, but suffers from significant output schema documentation gaps and lacks structured guidance for error recovery. Four tools are explicitly registered with Zod schemas in src/index.ts. All tools follow verb_noun naming (search_*) and have parameter descriptions. However, tool descriptions lack clarity on when to use each tool vs. alternatives, output schemas are not documented, and error handling returns JSON text without structured recovery guidance. The advanced search tool demonstrates input validation but lacks idempotency hints and confirmation mechanisms for a read-only API.
Advanced paper search functionality supporting multiple search criteria
Search papers published by a specific author
Search academic papers by keyword
Search papers published in a specific venue/journal
Output schemas are not documented. Tool descriptions state what is returned generically ('JSON search results') but do not document the structure, field names, or types of the response. LLMs cannot plan downstream operations or extract specific fields without knowing the schema.
Error handling returns plain JSON text wrapped in a text content block, not structured error responses with recovery guidance. When an error occurs, the response is {"error": "Search failed", "message": "..."}. LLMs cannot determine if the error is retryable, user-fixable, or fatal, and lack actionable next steps.
Tool descriptions lack guidance on when to use each search tool vs. alternatives. All four tools perform similar keyword/venue/author searches with overlapping intent. The descriptions do not explain the trade-offs or use case for search_papers_by_keyword vs. search_papers_advanced, forcing LLMs to reason about subtle differences.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 45 | - | v1 |
Tool descriptions are generic and lack WHEN/WHY context. E.g., 'Search academic papers by keyword' does not explain when to call this vs. venue or author search, what the intended use case is, or what domain knowledge is expected. Descriptions should be 50-200 chars and include purpose and context.
Advanced search tool validates that at least one criterion is provided but does not document this dependency in the parameter descriptions. The rule 'at least one of keyword, venue, or author must be provided' is enforced in code but not stated in the inputSchema descriptions, violating the parameter-relationship documentation rule.
Pagination parameters (page, size) are present but tool descriptions do not state a cap on total results or guidance on what happens if a user requests excessive data. Without documentation of pagination behavior and result limits, LLMs may assume unbounded results and waste tokens.