Skip to main content
Glama
scholar-mcp

scholar-mcp

by pvliesdonk

Recommend Papers

recommend_papers
Read-only

Find related academic papers from positive paper IDs, with optional negative IDs to steer away; returns up to 500 results or a background job handle.

Instructions

Recommend papers based on positive (and optionally negative) examples.

Returns at most 500 recommendations; a larger limit is capped at 500.

Answers directly in normal use. Should the call run long it continues in the background and returns a job handle to poll with get_job_result.

Input Schema

NameRequiredDescriptionDefault
limitNoNumber of recommendations to return (max 500).
fieldsNoField set preset for returned records.standard
negative_idsNoOptional S2 paper IDs to steer away from.
positive_idsYes1-5 S2 paper IDs to use as positive examples.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.1.1
    • changedInput schema / properties / limit / description
      Previous value: -"Number of recommendations to return."New value: +"Number of recommendations to return (max 500)."
  2. Changed4 schema fields changedv1.10.0
    • addedOutput schema / additionalProperties
      Added value: +true
    • removedOutput schema / properties
      Removed value: -{
      -  "result": {
      -    "type": "string"
      -  }
      -}
    • removedOutput schema / required
      Removed value: -[
      -  "result"
      -]
    • removedOutput schema / x-fastmcp-wrap-result
      Removed value: -true
  3. First observedv1.9.0

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds genuinely non-obvious behavior: a hard 500-result ceiling and an async continuation path that returns a job handle polled via get_job_result. It does not discuss rate limits or how recommendations are ranked, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and kept to three short sentences with no filler. The 500 cap is stated twice ('at most 500 recommendations; a larger limit is capped at 500'), a small redundancy that costs it a point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need no explanation, and full schema coverage handles parameters. The description covers the cap and the async job path, which are the main surprises for this tool. Only ranking/scoring behavior for the recommendation itself is unexplained, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters are already documented in the schema, including the 500 max on limit and the 1-5 positive_ids guidance. The description's only additional semantic framing is the 'negative' steering intent, which the schema already conveys with 'steer away from'; baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Recommend papers based on positive (and optionally negative) examples') and immediately signals the example-based input model, which distinguishes it from query-driven siblings such as search_papers and from the different-resource recommend_books. An agent can identify the right tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context: normal calls answer directly, long-running calls return a job handle to poll with get_job_result, explicitly naming the sibling to use in that case. It does not state when to prefer recommend_papers over search_papers (e.g., 'use when you already have example papers'), so it falls short of full when/when-not guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.