# io.github.MCPServings/paper-mcp: tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/io.github.MCPServings%2Fpaper-mcp/versions/latest)
- Connected to: https://latex-tools.online/mcp
- Homepage: https://latex-tools.online/mcp
- Repository: https://github.com/MCPServings/paper-mcp
- Scoring rules: v2
- Tools: 41
- Average: 24.0 / 100 (Rain)
- Near-identical pairs: 3

This page shows how io.github.MCPServings/paper-mcp's tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 41 tools. Above 40, models choose less accurately.
- Minor: The server's instructions are 3518 characters. Claude Code reads only the first 2,048 by default (Codex 0.154.0 reads them whole). Put what the server is for first.

## Tools

- `get_openalex_references`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: work_id, max_results.
  - Minor: String arguments with no constraint or example: work_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: work_id. Name the tool or the place that returns it, or models look it up first.
- `list_categories`: 11 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: source.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_author`: 12 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: author_id.
  - Minor: String arguments with no constraint or example: author_id.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: author_id. Name the tool or the place that returns it, or models look it up first.
- `autocomplete_papers`: 13 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: query.
  - Minor: String arguments with no constraint or example: query.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_openalex_citations`: 13 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: work_id, max_results, start.
  - Minor: String arguments with no constraint or example: work_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: work_id. Name the tool or the place that returns it, or models look it up first.
- `get_author_papers`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: author_id, max_results, start.
  - Minor: String arguments with no constraint or example: author_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: author_id. Name the tool or the place that returns it, or models look it up first.
- `get_openalex_work`: 17 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: work_id.
  - Minor: String arguments with no constraint or example: work_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: work_id. Name the tool or the place that returns it, or models look it up first.
- `get_paper_citations`: 17 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: paper_id, max_results, start.
  - Minor: String arguments with no constraint or example: paper_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: paper_id. Name the tool or the place that returns it, or models look it up first.
- `get_paper_references`: 17 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: paper_id, max_results, start.
  - Minor: String arguments with no constraint or example: paper_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: paper_id. Name the tool or the place that returns it, or models look it up first.
- `list_openalex_topics`: 17 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: query, max_results.
  - Minor: String arguments with no constraint or example: query.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `match_paper_title`: 17 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: title.
  - Minor: String arguments with no constraint or example: title.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `search_openalex_institutions`: 17 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: query, max_results.
  - Minor: String arguments with no constraint or example: query.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_paper`: 18 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: paper_id, source.
  - Minor: String arguments with no constraint or example: paper_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: paper_id. Name the tool or the place that returns it, or models look it up first.
- `list_recent`: 18 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: category, source, max_results, start.
  - Minor: String arguments with no constraint or example: category.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_dataset_diffs`: 19 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: dataset_name, start_release, end_release.
  - Minor: String arguments with no constraint or example: dataset_name, start_release.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_dataset_download_links`: 19 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: dataset_name, release_id.
  - Minor: String arguments with no constraint or example: dataset_name.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `search_openalex_works`: 19 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: query, from_year, to_year, is_oa, min_citations, institution_id, sort_by, max_results.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument is_oa is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_paper_authors`: 20 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: paper_id, max_results, start.
  - Minor: String arguments with no constraint or example: paper_id.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: paper_id. Name the tool or the place that returns it, or models look it up first.
- `get_authors_batch`: 21 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: ids.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: ids. Name the tool or the place that returns it, or models look it up first.
- `search_by_author`: 21 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: author, source, max_results, start.
  - Minor: String arguments with no constraint or example: author.
  - Minor: Says nothing about what it returns.
- `get_papers_batch`: 22 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: ids.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: ids. Name the tool or the place that returns it, or models look it up first.
- `get_dataset_release`: 24 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: release_id.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `search_snippets`: 24 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: query, max_results.
  - Minor: String arguments with no constraint or example: query.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `recommend_papers_from_examples`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: positive_ids, negative_ids, max_results.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: positive_ids. Name the tool or the place that returns it, or models look it up first.
- `search_authors`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: query, max_results, start.
  - Minor: String arguments with no constraint or example: query.
  - Minor: The description mentions none of its 3 or more arguments.
- `search_openalex_authors`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: query, max_results, start.
  - Minor: String arguments with no constraint or example: query.
  - Minor: The description mentions none of its 3 or more arguments.
- `lint_latex`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: code.
  - Minor: String arguments with no constraint or example: code.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `recognize_formula`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: image_url, image_base64, model.
  - Minor: No `required` list, so every argument is optional.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `recognize_table`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: image_url, image_base64, model.
  - Minor: No `required` list, so every argument is optional.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `search_papers_bulk`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: query, sort, fields_of_study, year, venue, publication_types, open_access_pdf, token, max_results.
  - Minor: String arguments with no constraint or example: query.
  - Minor: The meaning of the boolean argument open_access_pdf is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `search_papers`: 30 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: query, source, max_results, start, sort_by.
  - Minor: String arguments with no constraint or example: query.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `list_ocr_models`: 31 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `list_paper_sources`: 31 / 100
  - Major: The description only restates the name (4 words).
  - Major: The description is too short (4 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `read_paper`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: paper_id, format, source.
  - Minor: String arguments with no constraint or example: paper_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: paper_id. Name the tool or the place that returns it, or models look it up first.
- `recommend_papers_for_paper`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: paper_id, max_results, pool.
  - Minor: String arguments with no constraint or example: paper_id.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: paper_id. Name the tool or the place that returns it, or models look it up first.
- `extract_pdf_result`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: task_id.
  - Minor: String arguments with no constraint or example: task_id.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: task_id. Name the tool or the place that returns it, or models look it up first.
- `extract_pdf`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: pdf_url, pdf_base64, formula, table.
  - Minor: No `required` list, so every argument is optional.
  - Minor: The meaning of the boolean argument formula is unclear.
  - Minor: The meaning of the boolean argument table is unclear.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `get_openalex_trends`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: query, group_by.
  - Minor: String arguments with no constraint or example: query.
- `search_all`: 37 / 100
  - Major: Arguments without a description: query, max_results, sources, per_source.
  - Minor: String arguments with no constraint or example: query.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `list_dataset_releases`: 39 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `search_medical`: 44 / 100
  - Major: Arguments without a description: query, study_types, year_from, max_results, fetch_fulltext.
  - Minor: String arguments with no constraint or example: query.
  - Minor: The meaning of the boolean argument fetch_fulltext is unclear.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
