Citation management and academic paper metadata extraction server
Open Paper Machine is a citation management toolkit with 20 tools spanning DOI conversion, metadata extraction, BibTeX formatting, and PubMed/arXiv search. Code inspection reveals solid parameter schemas with types and descriptions for most tools, but critical gaps in output documentation, error handling guidance, and some naming ambiguity. The server follows a consistent pattern of verb_noun naming (doi_to_bibtex, extract_from_doi) and includes reasonable parameter constraints. However, no tool provides documented return schemas, making it difficult for LLMs to chain outputs or plan downstream calls. Error handling is minimal, most tools return None or stderr output without actionable recovery guidance. Tools like 'identify_type' and 'extract_from_doi' are well-named with clear descriptions, but 'format_entry' and 'fix_common_issues' lack specificity about which issues are fixed and what the output structure looks like. Overall, the server sits at the mid-range (C grade): functional definitions with present schemas and descriptions, but missing the polish and completeness that would make it A-grade.
Convert multiple DOIs to BibTeX with rate limiting between requests
Remove duplicate BibTeX entries based on DOI or citation key
Detect duplicate BibTeX entries based on DOI, title similarity, or author/year combinations
Convert a single DOI to BibTeX format using CrossRef content negotiation API
Extract metadata from arXiv ID using arXiv API
Extract metadata from DOI using CrossRef API
Extract metadata from PMID using PubMed E-utilities API
No output schemas documented for any tool. LLMs cannot infer what fields are returned, breaking tool chaining and downstream planning.
Error handling is minimal. Tools return None or stderr output without actionable recovery guidance. Exceptions like HTTP 404, timeout, or malformed input do not explain what the agent should do next (retry, try alternative lookup, ask user, etc.).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 55 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 45 | - | v1 |
Fetch detailed metadata for PubMed IDs using NCBI E-utilities efetch
Fix common formatting issues in BibTeX entries (page ranges, DOI format, author separators)
Format a single BibTeX entry with standard field ordering and alignment
Format entire BibTeX file with options for deduplication, sorting, and issue fixing
Identify the type of identifier (DOI, PMID, arXiv ID, or URL) and clean it
Convert PubMed metadata to BibTeX format
Convert Google Scholar metadata to BibTeX format
Parse BibTeX file and extract entries into structured format
Search Google Scholar for publications matching a query
Search PubMed using E-utilities API and return matching PMIDs
Sort BibTeX entries by specified field (key, year, author, or title)
Validate a single BibTeX entry for required fields, recommended fields, format compliance
Verify DOI resolves correctly and extract metadata from CrossRef
Several tools have vague descriptions that do not explain WHAT they return or WHEN to use them. 'format_entry' says 'Format a single BibTeX entry' but does not specify output structure, whether it modifies in-place, or what 'standard field ordering and alignment' means to an LLM.
Parameter descriptions lack detail on constraints and formats. 'filepath' appears in multiple tools but descriptions do not specify whether paths must be absolute, relative, or URIs; whether paths must exist; or what file encoding is expected.
Tools like 'metadata_to_bibtex_scholar' and 'metadata_to_bibtex_pubmed' accept a generic 'metadata' object parameter but do not document what fields are expected (title, authors, year, venue, etc.) or which are mandatory vs optional.
Tool 'fix_common_issues' does not enumerate which issues are fixed (page ranges, DOI format, author separators). LLMs cannot predict or validate the output without knowing what transformations occur.
No pagination or result limit documentation. Tools like 'search_google_scholar' and 'search_pubmed' accept a 'max_results' parameter but do not state default, minimum, or maximum allowed values, or whether results are paginated.
HTTP timeouts are set but not described in tool documentation. Code shows 15-second timeout for CrossRef, but LLMs are not told this and cannot plan retries appropriately.