Skip to main content
Glama
Liyux3

scholar-mcp

Read a paper's main text or a page range

read_paper
Read-onlyIdempotent

Retrieve a paper as page-aware Markdown with selectors for figures and tables; pass a selector to return a focused visual with its surrounding text.

Instructions

Fetch a paper's PDF into a temporary file and return page-aware Markdown text plus selectors for its figures and tables.

Use this to read; use download_paper to keep the PDF. Nothing persists after the call. Resolution follows the same open-access chain as download_paper, so paywalled papers without an open copy fail cleanly. Pass a selector from a previous response as visual to get one figure or table with its surrounding text.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pagesNoOne-indexed page range. The default usually reaches the conclusion of an AI conference paper. Use ranges such as "11-20" for appendices. At most 20 pages can be read per call.1-10
visualNoOptional selector returned by this tool, such as "Figure 3", "Table 2", or "page 5". Returns one focused visual with its text.
paper_idYesPaper identifier (S2 ID, DOI, ArXiv:ID, etc.)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed9 schema fields changedv0.8.3
    • removedInput schema / properties / extract_text
      Removed value: -{
      -  "default": true,
      -  "description": "If True, extract and return text. If False, just download PDF.",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / max_pages
      Removed value: -{
      -  "default": 0,
      -  "description": "Maximum pages to extract (0 = all pages)",
      -  "type": "integer"
      -}
    • addedInput schema / properties / pages
      Added value: +{
      +  "default": "1-10",
      +  "description": "One-indexed page range. The default usually reaches the conclusion\nof an AI conference paper. Use ranges such as \"11-20\" for appendices.\nAt most 20 pages can be read per call.",
      +  "type": "string"
      +}
    • removedInput schema / properties / save_dir
      Removed value: -{
      -  "default": "",
      -  "description": "Directory to save PDF (default: configured download directory)",
      -  "type": "string"
      -}
    • addedInput schema / properties / visual
      Added value: +{
      +  "default": "",
      +  "description": "Optional selector returned by this tool, such as \"Figure 3\",\n\"Table 2\", or \"page 5\". Returns one focused visual with its text.",
      +  "type": "string"
      +}
    • 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 observedv0.6.0

TDQS

A4.9/5.0
Behavior5/5

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

Beyond the readOnlyHint and idempotentHint annotations, the description discloses temporary file behavior, non-persistence of data, the open-access resolution chain, clean failure for paywalled papers, and the focused visual return behavior. This is substantial behavioral context that annotations alone do not provide.

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

Conciseness5/5

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

Three tight sentences with no filler. The core purpose is front-loaded, usage guidance follows, and the visual workflow is placed at the end. Every sentence earns its place.

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?

Given the output schema is present and annotations cover safety traits, the description covers what remains important: temporary persistence, failure behavior, sibling differentiation, and how to chain selectors into a visual call. Nothing essential for correct invocation is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already documents all parameters well. The description adds workflow-level meaning for pages (default reaches conclusion, max 20 pages) and visual (pass a selector from a previous response), which goes beyond the schema's per-parameter text.

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 states a specific verb and resource: fetch a paper's PDF into a temporary file and return page-aware Markdown text with figure and table selectors. It clearly differentiates itself from download_paper by noting that download_paper is the alternative for keeping the PDF.

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

Usage Guidelines5/5

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

The description gives explicit usage guidance: 'Use this to read; use download_paper to keep the PDF.' It also explains when the tool fails cleanly for paywalled papers and how to use a previous response selector as the visual parameter.

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Liyux3/scholar-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server