Skip to main content
Glama
scholar-mcp

scholar-mcp

by pvliesdonk

Find Bridge Papers

find_bridge_papers
Read-only

Find the shortest citation path between two papers via citations or references, returning a job handle to poll when the search runs long.

Instructions

Find the shortest citation path between two papers.

Uses BFS over the citation/reference graph. Uses cached citation and reference lists to minimise API calls.

The search walks outward one rate-limited request per node, so it commonly runs long and returns a job handle to poll with get_job_result rather than the path itself.

A Semantic Scholar throttle defers the same search. Poll the job handle; the resumed search does not mark the throttled request as partial.

A failed upstream request does not abort the search. When one happens, partial is true, failed_requests counts them, and a warning key explains what was not fetched. A partial {"found": false} is not evidence that no path exists, and a partial {"found": true} path is not guaranteed to be the shortest one.

Input Schema

NameRequiredDescriptionDefault
directionNoExpand via citations, references, or both.both
max_depthNoMaximum hops to search (default 4).
source_idYesStarting paper S2 ID.
target_idYesTarget paper S2 ID.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. 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
  2. First observedv1.9.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only establish that this is a safe read (readOnlyHint/destructiveHint false); the description adds the substantive behavior the agent cannot infer — asynchronous job-handle return, throttling deferral semantics, and partial-result handling with `partial`, `failed_requests`, and `warning` keys. It goes further to warn that a partial found:false is not proof of no path and a partial found:true path may not be shortest, which is exactly the kind of correctness caveat annotations cannot carry.

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?

Purpose leads, then mechanism, then async behavior, then failure semantics — a sensible front-loaded progression where each paragraph earns its place. It is on the long side and the throttle paragraph is dense, but no sentence is filler.

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

Completeness5/5

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

For a long-running, potentially partial graph search, the description covers the async contract, throttling recovery, and degraded-result interpretation, and an output schema already exists to carry return shapes. An agent has everything needed to call it and to interpret what comes back.

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% and every parameter (source_id, target_id, direction, max_depth) is documented inline with defaults and an enum. The description adds no parameter-level meaning beyond that, so the baseline of 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?

States a specific verb and resource — 'Find the shortest citation path between two papers' — and immediately explains the mechanism (BFS over the citation/reference graph). This clearly separates it from single-hop siblings like get_citations and get_references and from get_citation_graph.

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?

The description gives strong operational routing: the search 'commonly runs long and returns a job handle to poll with get_job_result rather than the path itself,' which tells the agent exactly what downstream call to make. It does not, however, explicitly contrast this tool with the closest alternative, get_citation_graph, leaving that choice to inference.

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