Skip to main content
Glama
h-lu

Paper Search MCP Server

by h-lu

Paper Find MCP Server

A Model Context Protocol (MCP) server for searching and downloading academic papers from multiple platforms. Designed for LLM tools like Claude Desktop, Cursor, etc.

PyPI version License Python

中文文档


Supported Platforms

Core Platforms

Platform

Search

Download

Read

Description

arXiv

Preprints: Physics, Math, CS, Stats, Biology, Finance

Semantic Scholar

General academic search, 200M+ papers, AI-powered

PubMed

Biomedical literature

bioRxiv

Biology preprints

medRxiv

Medical preprints

CrossRef

DOI metadata, 150M+ records

IACR

Cryptography papers

Google Scholar

All-discipline search (web scraping)

RePEc/IDEAS

Economics paper library, 4.5M+ items

Sci-Hub

Download paywalled papers (pre-2023)

RePEc/IDEAS Features

RePEc is the largest open economics bibliography, with rich search options:

Search Fields: Full text / Abstract / Keywords / Title / Author

Sort Options: Relevance / Newest / Oldest / Citations / Recent & Relevant

Document Types: Journal Articles / Working Papers / Book Chapters / Books

Institution/Journal Filters:

Category

Options

Research Institutions

nber, imf, worldbank, ecb, bis, cepr, iza

Federal Reserve

fed, fed_ny, fed_chicago, fed_stlouis, fed_sf

Top 5 Journals

aer, jpe, qje, econometrica, restud

Other Journals

jfe, jme, aej_macro, aej_micro, aej_applied


Related MCP server: Paper Search MCP

Quick Start

Installation

Install from PyPI (recommended):

# Using uv (recommended)
uv pip install paper-find-mcp

# Or using pip
pip install paper-find-mcp

Install from source:

# Clone the repository
git clone https://github.com/h-lu/paper-find-mcp.git
cd paper-find-mcp

# Install with uv
uv pip install -e .

# Or use pip
pip install -e .

Configure Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

Using uvx (recommended, no pre-installation required):

{
  "mcpServers": {
    "paper_find_server": {
      "command": "uvx",
      "args": ["paper-find-mcp"],
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "",
        "CROSSREF_MAILTO": "your_email@example.com",
        "NCBI_API_KEY": "",
        "PAPER_DOWNLOAD_PATH": "~/paper_downloads"
      }
    }
  }
}

Using pip installed package:

{
  "mcpServers": {
    "paper_find_server": {
      "command": "paper-find-mcp",
      "args": [],
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "",
        "CROSSREF_MAILTO": "your_email@example.com",
        "NCBI_API_KEY": "",
        "PAPER_DOWNLOAD_PATH": "~/paper_downloads"
      }
    }
  }
}

Usage Guide

Choose Tools by Discipline

General academic search    → search_semantic or search_crossref
CS/Physics preprints       → search_arxiv
Biomedical                 → search_pubmed + download_scihub(doi)
Economics                  → search_repec (supports NBER, IMF, Fed, AER, etc.)
Cryptography               → search_iacr
Download paywalled papers  → download_scihub(doi) [pre-2023]

Typical Workflow

# 1. Search for papers
papers = search_semantic("climate change agriculture", max_results=5)

# 2. Get DOI
doi = papers[0]["doi"]

# 3. Download via Sci-Hub (older papers)
pdf_path = download_scihub(doi)

# 4. Read full text
text = read_scihub_paper(doi)

RePEc Economics Search Examples

# Search NBER working papers
search_repec("inflation expectations", series='nber')

# Search AER journal articles, sorted by newest
search_repec("causal inference", series='aer', sort_by='newest')

# Search Fed papers, with year filter
search_repec("monetary policy", series='fed', year_from=2020)

# Search by author
search_repec("Acemoglu", search_field='author')

# Get paper details (with full abstract)
get_repec_paper("https://ideas.repec.org/p/nbr/nberwo/32000.html")

Complete Tool List

Search Tools

Tool

Description

search_arxiv

Search arXiv preprints

search_semantic

Semantic Scholar general search

search_crossref

CrossRef DOI metadata search

search_pubmed

PubMed biomedical search

search_biorxiv

bioRxiv biology preprints

search_medrxiv

medRxiv medical preprints

search_iacr

IACR cryptography papers

search_google_scholar

Google Scholar search

search_repec

RePEc/IDEAS economics search

Download Tools

Tool

Description

download_arxiv

Download arXiv PDF (free)

download_semantic

Download open access papers

download_biorxiv

Download bioRxiv PDF

download_medrxiv

Download medRxiv PDF

download_iacr

Download IACR PDF

download_scihub

Download via Sci-Hub

Read Tools (PDF → Markdown)

Tool

Description

read_arxiv_paper

Read arXiv paper

read_semantic_paper

Read Semantic Scholar paper

read_biorxiv_paper

Read bioRxiv paper

read_medrxiv_paper

Read medRxiv paper

read_iacr_paper

Read IACR paper

read_scihub_paper

Read Sci-Hub downloaded paper

Helper Tools

Tool

Description

get_repec_paper

Get RePEc paper details (full abstract)

get_crossref_paper_by_doi

Get paper metadata by DOI


Environment Variables

Variable

Purpose

Recommended

SEMANTIC_SCHOLAR_API_KEY

Increase Semantic Scholar rate limit

CROSSREF_MAILTO

CrossRef polite pool access

NCBI_API_KEY

Increase PubMed rate limit

Optional

SCIHUB_MIRROR

Custom Sci-Hub mirror

Optional

PAPER_DOWNLOAD_PATH

PDF download directory (default: ~/paper_downloads)

Optional


Development

# Clone the repository
git clone https://github.com/h-lu/paper-find-mcp.git
cd paper-find-mcp

# Create virtual environment
uv venv && source .venv/bin/activate

# Install dev dependencies
uv pip install -e .

# Run tests
uv run pytest tests/ -v

License

MIT License

Original code based on paper-search-mcp
Copyright (c) 2025 OPENAGS

Modifications and enhancements
Copyright (c) 2025 Haibo Lu


🎓 Happy researching!

Available Tools

29 tools
download_arxivA

Download PDF from arXiv (always free and available).

Args:
    paper_id: arXiv ID (e.g., '2106.12345', '2312.00001v2').
    save_path: Directory to save PDF (default: ~/paper_downloads).

Returns:
    Path to downloaded PDF file.

Example:
    download_arxiv("2106.12345")
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
save_pathNo

TDQS

A4/5.0
Behavior3/5

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

The description discloses that the tool downloads a PDF and returns the file path, and includes an example. However, it does not mention error handling (e.g., if paper not found), whether files are overwritten, or any internet requirement. With no annotations, the description carries the full burden and could be more transparent.

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?

The description is concise and well-structured: a single sentence for purpose, followed by clear parameter documentation, return type, and an example. No unnecessary information.

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?

Given the tool's simplicity and the absence of annotations or output schema, the description covers the main functionality. However, it could be slightly more complete by mentioning what happens when the paper is not available or when save_path is not provided.

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?

The description adds meaningful detail beyond the schema titles: it explains the format for paper_id and the default and purpose of save_path. Since schema description coverage is 0%, this is valuable.

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 clearly states the tool's action ('Download PDF from arXiv') and includes a helpful note about arXiv being free and available. It effectively distinguishes from sibling tools that download from other sources.

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

Usage Guidelines3/5

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

The description implies usage for arXiv papers but does not provide explicit guidance on when to use this tool over sibling download tools for other sources. No exclusions or alternative recommendations are given.

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

download_biorxivA

Download PDF from bioRxiv (free and open access).

Args:
    paper_id: bioRxiv DOI (e.g., '10.1101/2024.01.01.123456').
    save_path: Directory to save PDF.

Returns:
    Path to downloaded PDF.
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
save_pathNo

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It mentions 'free and open access' but omits critical details like error handling on invalid DOIs, rate limits, or confirmation that the operation is read-only and idempotent. The return value is only generically described as 'Path to downloaded PDF'.

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?

The description is extremely concise and well-structured: a one-line purpose, followed by clearly labeled Args and Returns sections. No unnecessary words or repetitions.

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

Completeness3/5

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

Given the simplicity of the tool (2 params, no output schema), the description covers the essentials: purpose, parameters, and return value. However, it lacks context on error scenarios, authentication needs, or network requirements, which would be helpful for reliable agent usage.

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?

With 0% schema coverage, the description compensates by naming both parameters and providing a concrete DOI example for paper_id. For save_path, it clarifies it as 'Directory to save PDF'. This adds meaningful guidance beyond the schema, though an example path format would further improve usability.

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 clearly states 'Download PDF from bioRxiv (free and open access)', identifying the action (download), resource (PDF), and source (bioRxiv). The DOI example further specifies the target, distinguishing it from sibling download tools for other repositories.

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

Usage Guidelines3/5

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

The description implies usage for downloading bioRxiv PDFs but provides no explicit guidance on when to choose this tool over alternatives (e.g., read_biorxiv_paper) or when not to use it. No exclusions or context about prerequisites are given.

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

download_crossrefA

CrossRef does NOT support direct PDF downloads.

CrossRef is a metadata/citation database only - it does not host PDFs.

INSTEAD (try in order):
1. download_arxiv(id) - if arXiv preprint (always works)
2. download_scihub(doi) - if published before 2023
3. download_semantic(id) - last resort (may not have PDF)

Args:
    paper_id: DOI (e.g., '10.1038/nature12373').
    save_path: Unused.

Returns:
    Error message explaining alternatives.
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
save_pathNo

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations provided, the description fully carries the burden of behavioral disclosure. It transparently states the tool does not download PDFs, returns an error message, and that save_path is unused. This is comprehensive for a tool whose main function is to redirect users.

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?

The description is concise, well-structured with clear sections (bolded headings for what CrossRef does not do, what it is, and a numbered list of alternatives). Every sentence adds value, and the use of all caps for key points aids readability without being wasteful.

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 tool's complexity (it is a 'negative' tool that doesn't perform its apparent function), the description is fully complete. It explains what it does, what it doesn't, and provides a clear fallback strategy. No output schema is needed because the return is an error message, which is sufficiently described.

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 0%, so the description must compensate. It adds meaning for both parameters: paper_id is a DOI, and save_path is explicitly indicated as unused. However, it could elaborate on the DOI format or save_path expected type (though it's unused). Still, it provides essential context beyond the bare schema.

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 clearly states that CrossRef does not support direct PDF downloads and that the tool's purpose is to return an error message explaining alternatives. It distinguishes itself from sibling download tools by explicitly stating it is not for downloading.

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 provides explicit usage guidance: when to use this tool (never for actual downloading) and when to use alternatives (download_arxiv, download_scihub, download_semantic) in a recommended order. It also explains that save_path is unused, preventing misconfiguration.

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

download_iacrA

Download PDF from IACR ePrint (always free).

Args:
    paper_id: IACR ID (e.g., '2024/123', '2009/101').
    save_path: Directory to save PDF.

Returns:
    Path to downloaded PDF.

Example:
    download_iacr("2024/123")
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
save_pathNo

TDQS

A3.8/5.0
Behavior3/5

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

Despite no annotations, the description notes 'always free' and alludes to saving to disk. However, it does not disclose potential behaviors like overwriting existing files, required permissions, or error handling.

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?

The description is brief and front-loaded, with a separate args/returns/example section. It is efficient but could benefit from a more structured format like bullet points.

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

Completeness3/5

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

Given no output schema, the description includes return type. However, it lacks details on file naming behavior, overwriting policy, or error scenarios, which are important for completeness.

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?

With 0% schema description coverage, the description compensates by explaining the 'paper_id' format with an example ('2024/123') and clarifying that 'save_path' is a directory for saving. This adds meaning beyond the schema.

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 clearly states it downloads PDF from IACR ePrint, distinguishing it from other download tools. The phrase 'always free' adds useful context.

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

Usage Guidelines3/5

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

Provides an example usage but lacks explicit guidance on when to use this tool versus other download tools (e.g., download_arxiv). No mention of prerequisites or exclusions.

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

download_medrxivA

Download PDF from medRxiv (free and open access).

Args:
    paper_id: medRxiv DOI (e.g., '10.1101/2024.01.01.12345678').
    save_path: Directory to save PDF.

Returns:
    Path to downloaded PDF.
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
save_pathNo

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description must fully convey behavioral traits. It states the return value (path to downloaded PDF) but omits potential failure modes, authentication needs, or side effects. The description is adequate but lacks depth for a tool with no annotations.

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?

The description is concise, starting with the core purpose, then listing arguments in a clear format, and finally stating the return value. Every sentence serves a purpose with no extraneous information.

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?

For a simple download tool with no output schema and minimal schema coverage, the description covers the main inputs and output. It does not explain error handling or edge cases, but for its intended use, it is sufficiently complete. Slight improvement could be made by noting required parameters.

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?

Given 0% schema coverage, the description compensates well by explaining paper_id as a medRxiv DOI with an example and save_path as a directory to save PDF. This adds meaningful context beyond the schema's type definitions, though the optional nature of save_path is not explicitly clarified.

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 clearly states 'Download PDF from medRxiv' which identifies the specific verb (download) and resource (PDF from medRxiv). It also notes it's free and open access, distinguishing it from potentially paywalled sources among sibling tools like download_pubmed.

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

Usage Guidelines3/5

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

The description implies when to use (when needing to download a PDF from medRxiv) and gives an example DOI format, but does not explicitly state when not to use or mention alternative tools like read_medrxiv_paper for viewing abstracts. Usage context is implicit.

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

download_pubmedA

PubMed does NOT support direct PDF downloads.

PubMed is a metadata database - it does not host PDFs.

INSTEAD (try in order):
1. download_scihub(doi) - if published before 2023
2. download_semantic(id) - last resort

Args:
    paper_id: PMID (unused).
    save_path: Unused.

Returns:
    Error message with alternatives.
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
save_pathNo

TDQS

A4.8/5.0
Behavior5/5

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

Fully discloses tool behavior: returns error message, arguments are unused. No annotations provided, but description compensates completely.

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?

Concise with clear structure using bullet points and emphasis. Front-loaded with key message. Minor improvement possible for readability.

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?

Complete for a tool that does nothing but return an error. Describes return value and alternatives. No output schema needed.

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?

Adds meaning beyond schema: paper_id is PMID (unused), save_path is unused. Compensates for 0% schema coverage.

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?

Clearly states PubMed does not support PDF downloads and that the tool returns an error message with alternatives. Distinguishes from siblings by naming alternative tools.

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?

Explicitly instructs when to use this tool (actually when not to) and provides ordered alternatives: download_scihub and download_semantic.

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

download_repecA

RePEc/IDEAS does NOT support direct PDF downloads.

RePEc is a metadata index - PDFs are hosted at original institutions.

INSTEAD (try in order):
1. Visit paper URL - many NBER/Fed papers are freely available
2. download_scihub(doi) - if published before 2023

Args:
    paper_id: RePEc handle (unused).
    save_path: Unused.

Returns:
    Error message with alternatives.
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
save_pathNo

TDQS

A5/5.0
Behavior5/5

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

The description fully discloses that the parameters are unused and that the tool returns an error message with alternatives. Since no annotations are provided, the description carries the entire burden and does so transparently.

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?

The description is well-structured with a clear note, an ordered list of alternatives, an args section, and a returns section. Every sentence adds value without redundancy.

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 that this tool does not perform a real download, the description completely covers its behavior, limitations, and alternatives. No output schema exists, but the return value is described sufficiently.

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

Parameters5/5

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

Despite 0% schema description coverage, the description adds crucial meaning: both parameters are explicitly stated as unused. This is vital for the agent to understand that the tool ignores its inputs.

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 clearly states that the tool does not directly download PDFs because RePEc is a metadata index. It explicitly mentions the verb 'download' and the resource 'RePEc', and distinguishes itself from siblings like download_arxiv by explaining the limitation.

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 provides explicit alternatives ordered by priority: first visiting the paper URL, then using download_scihub. It tells the agent exactly when to use this tool (to get alternatives) and when to use others, which is perfect guidance.

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

download_scihubA

Download paper PDF via Sci-Hub using DOI (for older papers only).

USE THIS TOOL WHEN:
- You have a DOI and need the full PDF
- The paper was published BEFORE 2023
- The paper is behind a paywall and not on arXiv
- You first searched CrossRef and got the DOI

WORKFLOW: search_crossref(query) -> get DOI -> download_scihub(doi)

Args:
    doi: Paper DOI (e.g., '10.1038/nature12373', '10.1126/science.1234567').
    save_path: Directory to save PDF (default: ~/paper_downloads).

Returns:
    Path to downloaded PDF file (e.g., 'downloads/scihub_10.1038_xxx.pdf'),
    or error message if download fails.

Example:
    download_scihub("10.1038/nature12373")  # 2013 Nature paper
ParametersJSON Schema
NameRequiredDescriptionDefault
doiYes
save_pathNo

TDQS

A4.8/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It discloses the age limitation (pre-2023) and that it's for paywalled papers not on arXiv. However, it does not mention potential issues like regional blocks or download success rates, which would be useful for an agent. Still, the disclosed constraints are valuable.

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?

The description is well-structured with sections for purpose, usage guidelines, args, returns, and example. It is concise yet comprehensive, with no unnecessary words. Every sentence adds value.

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 tool's complexity (simple download with two parameters), no output schema, and rich sibling set, the description covers all necessary aspects: what it does, when to use, parameters, return value, and example. The workflow integration with search_crossref adds completeness.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must add meaning. It explains the 'doi' parameter with examples and format, and 'save_path' with default value and purpose. This fully compensates for the absent schema descriptions.

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 clearly states the tool's purpose: 'Download paper PDF via Sci-Hub using DOI (for older papers only).' It specifies the resource (paper PDF), action (download), and constraint (older papers only), distinguishing it from sibling tools that cover different sources or paper ages.

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 provides explicit guidelines: use when you have a DOI, paper is before 2023, behind a paywall and not on arXiv, and after searching CrossRef. It also outlines a workflow: search_crossref -> get DOI -> download_scihub. This clearly differentiates from alternatives.

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

download_semanticA

Download PDF via Semantic Scholar (open-access only, use as LAST RESORT).

DOWNLOAD PRIORITY (try in order):
1. If arXiv paper -> use download_arxiv(arxiv_id) (always works)
2. If published before 2023 -> use download_scihub(doi)
3. Use this tool as last resort (may not have PDF)

Args:
    paper_id: Semantic Scholar ID, or prefixed: 'DOI:xxx', 'ARXIV:xxx', 'PMID:xxx'
    save_path: Directory to save PDF.

Returns:
    Path to downloaded PDF, or error if not available.
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
save_pathNo

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description fully carries the burden, disclosing it is open-access only, may not have PDF, and explaining the paper_id prefix formats. It also notes return type ('Path to downloaded PDF, or error').

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?

Well-structured with priority list, parameter descriptions, and return info. Slightly verbose with 'DOWNLOAD PRIORITY' header but each sentence adds value.

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?

Given no output schema, description explains return value and error case. Covers complexity with ID formats and priority logic adequately.

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 coverage is 0%, so description compensates by explaining paper_id format (prefixed options like DOI, ARXIV, PMID) and save_path as directory. However, save_path could clarify if optional or required.

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 clearly states it downloads PDFs via Semantic Scholar, specifies open-access only, and positions it as a last resort. It distinguishes from siblings by providing a prioritized download order with specific tool names.

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 explicitly provides a download priority list with alternatives (download_arxiv, download_scihub) and explains when to use this tool as last resort. This is comprehensive guidance.

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

get_crossref_paper_by_doiA

Get paper metadata from CrossRef using its DOI.

USE THIS TOOL WHEN:
- You have a DOI and need full metadata (title, authors, journal, etc.)
- You want to verify a DOI exists
- You need citation count for a specific paper

Args:
    doi: Digital Object Identifier (e.g., '10.1038/nature12373').

Returns:
    Paper metadata dict, or empty dict {} if DOI not found.

Example:
    get_crossref_paper_by_doi("10.1038/nature12373")
ParametersJSON Schema
NameRequiredDescriptionDefault
doiYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided. Description mentions return format (dict or empty dict) and citation count, but lacks info on rate limits, authentication, or error behavior.

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?

Well-structured with summary, usage conditions, args, returns, and example. No unnecessary sentences.

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?

No output schema, but describes return type. Includes example. For a simple lookup with one parameter, sufficiently complete.

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?

Adds meaning beyond schema by giving parameter description and example DOI format. Schema coverage is 0%, so description compensates well.

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?

Clearly states 'Get paper metadata from CrossRef using its DOI.' Distinguishes from sibling tools like search_crossref and download_crossref.

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?

Provides explicit 'USE THIS TOOL WHEN' section with three scenarios. Does not explicitly name alternative tools but implies when not to use.

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

get_repec_paperA

Get detailed paper information from RePEc/IDEAS.

Fetches complete metadata from an IDEAS paper detail page, including
abstract, authors, keywords, and JEL codes that may be missing from
search results.

USE THIS WHEN:
- You have a paper URL/handle from search results and need the abstract
- You want complete author information for a specific paper
- You need JEL classification codes or keywords

Args:
    url_or_handle: Paper URL or RePEc handle, e.g.:
        - URL: "https://ideas.repec.org/p/nbr/nberwo/32000.html"
        - Handle: "RePEc:nbr:nberwo:32000"

Returns:
    Paper dict with: paper_id, title, authors, abstract, keywords,
    categories (JEL codes), published_date, url, pdf_url (if available),
    doi (if found), and extra info like journal name.

Example:
    get_repec_paper("https://ideas.repec.org/a/aea/aecrev/v110y2020i1p1-40.html")
ParametersJSON Schema
NameRequiredDescriptionDefault
url_or_handleYes

TDQS

A4.6/5.0
Behavior4/5

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

Despite having no annotations, the description thoroughly explains the tool's behavior: it fetches metadata from an IDEAS paper detail page and returns structured information. It does not mention rate limits, authentication, or potential side effects, but for a read-only scraping tool, the description is sufficiently transparent.

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?

The description is well-structured with clear headings and bullet points, making it easy to scan. Every section (purpose, usage, args, returns, example) is concise and informative, with no unnecessary words.

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?

The description covers all necessary aspects: purpose, input format, return values (including a detailed list of fields), and a concrete example. Without an output schema, it fully explains what the tool returns, making it contextually complete for an agent to invoke correctly.

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

Parameters5/5

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

The input schema only provides title and type for the single parameter with 0% coverage. The description compensates exceptionally well by providing multiple examples of valid inputs (both URL and RePEc handle) and explaining the expected format, adding significant meaning beyond the schema.

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 clearly states that the tool gets detailed paper information from RePEc/IDEAS, specifying that it fetches complete metadata including abstract, authors, keywords, and JEL codes that may be missing from search results. This distinguishes it from sibling tools like search_repec, although it does not differentiate from the similarly named read_repec_paper.

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 provides a 'USE THIS WHEN' section with three explicit scenarios: when you have a URL/handle from search results and need the abstract, when you want complete author information, and when you need JEL codes. While it does not explicitly state when not to use it or name alternatives, the guidance is clear and contextually appropriate.

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

read_arxiv_paperB

Download and extract full text from arXiv paper as Markdown.

Args:
    paper_id: arXiv ID (e.g., '2106.12345').
    save_path: Directory to save PDF (default: ~/paper_downloads).

Returns:
    Full paper text in Markdown format.

Example:
    read_arxiv_paper("2106.12345")
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
save_pathNo

TDQS

B3.4/5.0
Behavior3/5

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

The description discloses that it downloads from arXiv, saves a PDF, and returns Markdown text. However, with no annotations, it does not mention potential side effects like network access, file overwriting, or error handling beyond the provided example.

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?

The description is concise, well-structured with Args, Returns, and Example sections, and every sentence adds value. It is front-loaded with the main purpose.

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

Completeness3/5

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

For a retrieval tool with no output schema and no annotations, the description covers the basics but lacks guidance on when to use this tool over siblings and does not mention any limitations like rate limits or paper size constraints.

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?

Despite 0% schema description coverage, the description adds meaning by explaining paper_id with an example format and save_path as a directory with a default value. It lacks clarity on save_path's exact usage (directory vs. full path) but is otherwise helpful.

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

Purpose4/5

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

The description clearly states the verb (download and extract), resource (arXiv paper), and output (Markdown). It distinguishes itself from sibling tools by naming 'arXiv' but does not explicitly state when to prefer this over similar tools like read_biorxiv_paper.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus its siblings (e.g., download_arxiv, search_arxiv). The description lacks any context about prerequisites or appropriate use cases.

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

read_biorxiv_paperA

Download and extract full text from bioRxiv paper.

Args:
    paper_id: bioRxiv DOI.
    save_path: Directory to save PDF.

Returns:
    Full paper text in Markdown format.
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
save_pathNo

TDQS

A3.5/5.0
Behavior3/5

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

Discloses side effect of saving PDF to directory and return format (Markdown). But no annotations exist; description doesn't mention read-only nature, error handling, or network usage.

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?

Concise with three lines plus structured Args/Returns. No unnecessary words, front-loaded with main action.

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?

For a 2-param tool with no output schema or annotations, the description covers inputs, output format, and side effects. Lacks error handling and differentiation from siblings, but overall sufficient.

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?

Adds meaning to both parameters: paper_id is DOI, save_path is save directory. This compensates for 0% schema coverage. However, optionality of save_path is not clarified.

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

Purpose4/5

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

The description clearly states the verb 'download and extract' and the resource 'bioRxiv paper'. However, it does not distinguish from siblings like 'download_biorxiv' (which might only download PDF) or other read_* tools, missing specificity.

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

Usage Guidelines2/5

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

No guidance on when to use this tool over siblings (e.g., download_biorxiv, read_arxiv_paper). Lacks context on prerequisites or exclusions.

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

read_crossref_paperA

CrossRef does NOT support direct paper reading.

CrossRef provides metadata only, not full-text content.

INSTEAD (try in order):
1. read_arxiv_paper(id) - if arXiv preprint
2. read_scihub_paper(doi) - if published before 2023
3. read_semantic_paper(id) - last resort

Args:
    paper_id: DOI (e.g., '10.1038/nature12373').
    save_path: Unused.

Returns:
    Error message explaining alternatives.
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
save_pathNo

TDQS

A5/5.0
Behavior5/5

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

Discloses that the tool returns an error message explaining alternatives, and notes that save_path is unused, providing full behavioral transparency despite no annotations.

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?

Front-loaded with key limitation, followed by structured alternatives list, parameter explanation, and return description. Every sentence adds value without redundancy.

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?

Covers purpose, limitations, alternatives, parameters, and return behavior completely for a tool that returns an error. No output schema needed.

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

Parameters5/5

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

Adds crucial meaning beyond schema: explains paper_id as DOI with example, and clarifies save_path is unused, compensating for 0% schema description coverage.

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?

Description explicitly states that the tool does not support direct paper reading, only metadata, which clearly distinguishes it from sibling tools like read_arxiv_paper and read_scihub_paper.

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?

Provides explicit instructions for alternatives in a numbered list, telling the agent when not to use this tool and what to use instead.

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

read_iacr_paperA

Download and extract full text from IACR paper.

Args:
    paper_id: IACR ID (e.g., '2024/123').
    save_path: Directory to save PDF.

Returns:
    Full paper text in Markdown format.

Example:
    read_iacr_paper("2024/123")
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
save_pathNo

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It mentions downloading and extracting, and returns Markdown, but does not disclose side effects like temporary file deletion, caching, authentication needs, or error handling for missing papers.

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?

The description is concise with a single purpose sentence followed by structured Args, Returns, and Example sections. It is front-loaded and efficient, though the Args section could be slightly redundant.

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

Completeness3/5

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

Given no output schema, the description explains the return format (Markdown). However, it omits information about network dependency, error handling, and idempotency. For a simple read tool, it is marginally adequate but not fully complete.

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 coverage is 0%, so the description compensates by providing format examples (e.g., '2024/123' for paper_id) and clarifying save_path as a directory. This adds significant meaning beyond the schema's minimal titles.

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 clearly states the tool downloads and extracts full text from IACR papers. It distinguishes from sibling tools like download_iacr by specifying 'extract full text' and returning Markdown format.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives like read_arxiv_paper or download_iacr. The description lacks explicit when-to-use or when-not-to-use statements.

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

read_medrxiv_paperA

Download and extract full text from medRxiv paper.

Args:
    paper_id: medRxiv DOI.
    save_path: Directory to save PDF.

Returns:
    Full paper text in Markdown format.
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
save_pathNo

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions downloading and extracting but does not indicate whether the operation is read-only, idempotent, or requires internet access. The side effect of saving a PDF (via save_path) is implied but not explained in terms of local modification.

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?

The description is extremely concise, using a clear Args/Returns structure that is well-organized and front-loaded. Every sentence provides essential information without redundancy.

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

Completeness3/5

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

For a simple tool with two parameters and no output schema, the description covers the core purpose and parameters. However, it lacks usage context, behavioral details, and error handling information. It is minimally viable but has clear gaps given the absence of annotations.

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?

The schema coverage is 0%, but the description adds meaningful context: it specifies that paper_id is a medRxiv DOI and save_path is a directory for saving the PDF. This adds value over the bare schema titles. However, the optionality and default behavior of save_path are not clarified.

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 clearly states the tool downloads and extracts full text from medRxiv papers, with a specific verb and resource. It distinguishes from sibling tools like download_medrxiv (which likely only downloads PDF) by explicitly including extraction to Markdown.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as download_medrxiv or other read_* tools. There is no mention of prerequisites, context, or conditions that would help an agent decide to use this tool.

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

read_pubmed_paperA

PubMed does NOT support direct paper reading.

INSTEAD (try in order):
1. read_scihub_paper(doi) - if published before 2023
2. read_semantic_paper(id) - last resort

Args:
    paper_id: PMID (unused).
    save_path: Unused.

Returns:
    Error message with alternatives.
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
save_pathNo

TDQS

A5/5.0
Behavior5/5

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

No annotations provided, but the description fully discloses behavioral traits: parameters are unused, tool returns an error message. No contradictions.

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?

Very concise: three short paragraphs covering inability, alternatives, parameter descriptions, and return value. No extraneous text.

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 tool's simple nature (error returner with no output schema), the description is complete. It explains purpose, usage, parameters, and return value adequately.

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

Parameters5/5

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

Schema coverage is 0%, but the description compensates by explaining that paper_id is an unused PMID and save_path is unused. Adds meaning beyond the schema's type definitions.

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 explicitly states that PubMed does not support direct paper reading, and the tool's purpose is to return an error message with alternatives. It clearly distinguishes from siblings by naming specific alternatives (read_scihub_paper, read_semantic_paper).

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?

Provides explicit when-to-use (PubMed doesn't support) and when-not-to-use (use alternatives instead). Offers a ranked list of alternatives with conditions, guiding the agent effectively.

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

read_repec_paperA

RePEc/IDEAS does NOT support direct paper reading.

INSTEAD (try in order):
1. Visit paper URL - many NBER/Fed papers are freely available
2. read_scihub_paper(doi) - if published before 2023

Args:
    paper_id: RePEc handle (unused).
    save_path: Unused.

Returns:
    Error message with alternatives.
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
save_pathNo

TDQS

A4.9/5.0
Behavior5/5

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

The description transparently discloses that the tool does not read a paper and returns an error message with alternatives, fully explaining its behavior without any annotations.

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?

The description is extremely concise, well-structured with a clear title, alternatives list, and parameter notes. Every sentence provides essential information without waste.

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 tool that solely returns an error with alternatives, the description is completely informative. No output schema is needed as the behavior is fully described.

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?

The description states that both parameters are unused, which adds meaning beyond the input schema (which has 0% description coverage). This clarifies that the tool ignores its arguments.

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 clearly states that the tool does not support direct paper reading, and its purpose is to return an error with alternatives. It distinguishes itself from siblings like read_scihub_paper.

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 explicitly provides an ordered list of alternatives to use instead of this tool, giving clear when-to-use and when-not-to-use guidance.

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

read_scihub_paperA

Download and extract full text from paper via Sci-Hub (older papers only).

USE THIS TOOL WHEN:
- You need the complete text content of a paper (not just abstract)
- The paper was published BEFORE 2023
- You want to analyze, summarize, or answer questions about a paper

This downloads the PDF and extracts text as clean Markdown format,
suitable for LLM processing. Includes paper metadata at the start.

WORKFLOW: search_crossref(query) -> get DOI -> read_scihub_paper(doi)

Args:
    doi: Paper DOI (e.g., '10.1038/nature12373').
    save_path: Directory to save PDF (default: ~/paper_downloads).

Returns:
    Full paper text in Markdown format with metadata header,
    or error message if download/extraction fails.

Example:
    read_scihub_paper("10.1038/nature12373")
ParametersJSON Schema
NameRequiredDescriptionDefault
doiYes
save_pathNo

TDQS

A4.7/5.0
Behavior4/5

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

Describes the download and text extraction process, output format (Markdown with metadata), and error handling. No annotations, but description covers key behavioral aspects without contradiction.

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?

Well-structured with sections for use, workflow, args, returns, and example. Every sentence is informative, no redundancy.

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?

Complete coverage for a tool with 2 parameters and no output schema: purpose, usage guidelines, parameters, return format, and example workflow.

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?

Despite 0% schema description coverage, the description explains parameters: doi with example, save_path with default. Adds meaning beyond raw schema.

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 clearly specifies 'Download and extract full text from paper via Sci-Hub (older papers only)', providing a specific verb and resource. It distinguishes from siblings by mentioning Sci-Hub and date restriction.

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?

Explicitly lists 'USE THIS TOOL WHEN' conditions: need full text, paper before 2023, want to analyze. Includes workflow referencing search_crossref, guiding proper usage.

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

read_semantic_paperA

Read paper via Semantic Scholar (open-access only, use as LAST RESORT).

DOWNLOAD PRIORITY (try in order):
1. If arXiv paper -> use read_arxiv_paper(arxiv_id)
2. If published before 2023 -> use read_scihub_paper(doi)
3. Use this tool as last resort

Args:
    paper_id: Semantic Scholar ID or prefixed ID (DOI:, ARXIV:, PMID:).
    save_path: Directory to save PDF.

Returns:
    Full paper text in Markdown format.
ParametersJSON Schema
NameRequiredDescriptionDefault
paper_idYes
save_pathNo

TDQS

A4.1/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It notes open-access only and returns Markdown text, but lacks details on failure modes, rate limits, or why it's a last resort beyond a simple statement.

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?

Well-structured with clear sections (DOWNLOAD PRIORITY, Args, Returns). Purpose is front-loaded. One small efficiency: the priority list is slightly verbose but essential for guidance.

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?

Given no annotations and no output schema, the description covers purpose, priority rule, arguments, and return format. It's sufficient for an agent to decide when to use and how to call, though more on fallback behavior would improve completeness.

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 0%, so description must compensate. The Args section explains paper_id accepts various prefixed IDs and save_path for directory, but doesn't elaborate on formats or behavior when save_path is null.

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 clearly states the tool reads a paper via Semantic Scholar and is open-access only. It distinguishes from siblings by providing a download priority list that names alternative tools and conditions.

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?

Explicitly says 'use as LAST RESORT' and gives a prioritized list with specific conditions (arXiv vs. pre-2023), telling the agent exactly when to use this tool versus alternatives.

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

search_arxivA

Search preprints on arXiv - major open-access preprint server.

USE THIS TOOL WHEN:
- Searching for PREPRINTS (not peer-reviewed yet)
- You need free, immediate access to full-text PDFs
- Searching in: Physics, Mathematics, Computer Science, Statistics,
  Quantitative Biology, Quantitative Finance, Electrical Engineering

NOTE: arXiv is a PREPRINT server - papers may not be peer-reviewed.
For peer-reviewed papers, use search_crossref or search_semantic.

WORKFLOW:
1. search_arxiv(query) -> get paper_id (e.g., '2106.12345')
2. download_arxiv(paper_id) -> get PDF (always available)
3. read_arxiv_paper(paper_id) -> get full text as Markdown

Args:
    query: Search terms in any supported field.
    max_results: Number of results (default: 10).

Returns:
    List of paper dicts with: paper_id, title, authors, abstract, 
    published_date, pdf_url, categories.

Example:
    search_arxiv("quantum computing error correction", max_results=5)
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
max_resultsNo

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It discloses that arXiv contains preprints not yet peer-reviewed, and implies PDF availability via download_arxiv. It does not mention rate limits or auth, but adds value beyond schema.

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?

Well-structured with sections, concise sentences, and an example. Every part adds value without redundancy.

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?

Covers purpose, conditions, workflow, parameters, and return structure. Lacks mention of sorting or pagination, but given the tool's simplicity, it is mostly complete.

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 0%, so description compensates by describing query as 'Search terms in any supported field' and max_results as 'Number of results (default: 10)', plus an example. It could be more detailed on query syntax, but adequate.

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 clearly states it searches preprints on arXiv, a major open-access preprint server. It distinguishes from sibling search tools by specifying the content type and referencing the workflow with related tools.

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?

Explicitly lists when to use this tool (searching for preprints, need free full-text, specific fields) and when not to (peer-reviewed papers, directing to search_crossref or search_semantic). Provides clear alternatives.

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

search_biorxivA

Search biology preprints on bioRxiv.

USE THIS TOOL WHEN:
- Searching for cutting-edge biology research (preprints)
- You need the latest findings before peer review
- Searching by CATEGORY, not keyword (see below)

DOMAIN: Molecular Biology, Cell Biology, Genetics, Neuroscience,
Bioinformatics, Evolutionary Biology, Microbiology, etc.

NOTE: bioRxiv search uses CATEGORY names, not keywords.
Categories: 'neuroscience', 'cell_biology', 'genetics', 'genomics',
'bioinformatics', 'cancer_biology', 'immunology', etc.

WORKFLOW:
1. search_biorxiv(category) -> get DOI
2. download_biorxiv(doi) or read_biorxiv_paper(doi)

Args:
    query: Category name (e.g., 'neuroscience', 'cell_biology').
    max_results: Number of results (default: 10).

Returns:
    List of recent preprints in that category.

Example:
    search_biorxiv("neuroscience", max_results=5)
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
max_resultsNo

TDQS

A4.4/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses the category-based query behavior and that results are 'recent preprints' but does not mention rate limits, pagination, or whether the tool is read-only. Does not contradict any annotations.

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?

Well-structured with USE THIS, DOMAIN, NOTE, WORKFLOW sections. The example and category list add value. Could be slightly tightened (e.g., reduce redundant phrases) but overall efficient.

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?

Given no annotations or output schema, the description covers purpose, usage, parameter semantics, and integration with sibling tools. It lacks detail on return format and behavioral traits like rate limits, but is largely complete for a search tool.

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

Parameters5/5

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

Schema coverage is 0%, but description adds thorough semantics: explains that query is a category name, provides a list of common categories, sets default for max_results, and includes an example. This compensates fully for the lack of schema descriptions.

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 specifies 'Search biology preprints on bioRxiv', naming the resource and domain. It distinguishes from sibling search tools like search_arxiv or search_pubmed by focusing on bioRxiv, and notes category-based search.

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?

Explicitly states when to use ('cutting-edge biology research', 'latest findings'), and critically highlights that search is by CATEGORY not keyword. Provides a workflow linking to sibling tools and lists example categories.

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

search_crossrefA

Search academic papers in CrossRef - the largest DOI citation database.

USE THIS TOOL WHEN:
- You need to find papers by DOI or citation metadata
- You want to search across all academic publishers (not just preprints)
- You need publication metadata like journal, volume, issue, citations
- You want to verify if a DOI exists or get its metadata

CrossRef indexes 150M+ scholarly works from thousands of publishers.
Results include DOI, authors, title, abstract, citations, and publisher info.

Args:
    query: Search terms (e.g., 'machine learning', 'CRISPR gene editing').
    max_results: Number of results (default: 10, max: 1000).
    **kwargs: Optional filters:
        - filter: 'has-full-text:true,from-pub-date:2020'
        - sort: 'relevance' | 'published' | 'cited'
        - order: 'asc' | 'desc'

Returns:
    List of paper metadata dicts with keys: paper_id (DOI), title, 
    authors, abstract, doi, published_date, citations, url.

Example:
    search_crossref("attention mechanism transformer", max_results=5)
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
max_resultsNo
kwargsYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It mentions indexing 150M+ works and typical result fields. However, it does not disclose any behavioral traits such as rate limits, authentication requirements, or potential missing data (e.g., abstracts). For a read-only search tool, the transparency is adequate but could be more thorough.

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?

The description is well-organized with a main purpose, usage list, additional context, parameter details, and an example. It is front-loaded and each section adds value. Could trim the example slightly, but overall efficient.

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?

Given no output schema and 0% schema coverage, the description provides robust context: database size, result fields, parameter usage, and an example. It explains the return format (list of dicts) and key fields. This is sufficient for an agent to understand and invoke the tool correctly.

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 coverage is 0%, so description must compensate. It explains 'query' and 'max_results' with examples and default/max values. However, 'kwargs' is described as optional filters with examples (filter, sort, order), but the schema defines it as a required string. This mismatch may confuse agents. The description adds value but introduces potential misinterpretation.

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 clearly states the tool searches academic papers in CrossRef, distinguishing it from siblings that target specific repositories (e.g., search_arxiv, search_pubmed). It uses specific verbs like 'search', 'find', 'verify', and explicitly mentions CrossRef as the largest DOI citation database, covering all publishers not just preprints.

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 'USE THIS TOOL WHEN' section provides explicit scenarios: finding papers by DOI, searching across publishers, getting metadata, verifying DOIs. It implies alternatives exist (e.g., preprint-specific searches) but does not explicitly state when not to use it. This is clear guidance though slightly incomplete.

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

search_google_scholarA

Search academic papers on Google Scholar (broad coverage).

USE THIS TOOL WHEN:
- You need broad academic search across ALL disciplines
- You want citation counts and "cited by" information
- Other specialized tools don't cover your topic

COVERAGE: All academic disciplines, books, theses, patents.

LIMITATIONS:
- Uses web scraping (may be rate-limited)
- Does NOT support PDF download

FOR FULL TEXT (try in order):
1. download_arxiv(id) - if arXiv preprint
2. download_scihub(doi) - if published before 2023
3. download_semantic(id) - last resort

Args:
    query: Search terms (any academic topic).
    max_results: Number of results (default: 10, keep small to avoid blocks).

Returns:
    List of paper dicts with: title, authors, abstract snippet,
    citations count, url, source.

Example:
    search_google_scholar("climate change economic impact", max_results=5)
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
max_resultsNo

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations, the description reveals web scraping usage, rate-limiting risks, and absence of PDF support. However, it lacks details on exact rate limits or error behavior on blocks.

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?

The description is well-organized with sections, bullet points, and an example. Every sentence adds value without redundancy.

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 no output schema, the description details the return structure (list of dicts with specific fields) and includes an example. It also covers usage, limitations, and alternatives, making it highly complete for a search tool with two parameters.

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

Parameters5/5

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

Schema description coverage is 0%, but the description gives meaningful explanations for both parameters: 'query' as any academic topic, and 'max_results' with advice to keep small. This fully compensates for the schema gap.

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 clearly states the tool searches academic papers on Google Scholar with broad coverage, distinguishing it from specialized sibling search tools like search_arxiv or search_pubmed.

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 includes a dedicated 'USE THIS TOOL WHEN' section with three explicit criteria, provides limitations (rate limiting, no PDF download), and suggests alternative tools for full-text access in order.

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

search_iacrA

Search cryptography papers on IACR ePrint Archive.

USE THIS TOOL WHEN:
- Searching for cryptography or security research
- You need papers on encryption, blockchain, zero-knowledge proofs
- Looking for security protocols, hash functions, signatures

DOMAIN: Cryptography ONLY - encryption, signatures, protocols,
blockchain, secure computation, zero-knowledge, hash functions.

All papers are FREE and open access with PDF download.

WORKFLOW:
1. search_iacr(query) -> get paper_id (e.g., '2024/123')
2. download_iacr(paper_id) or read_iacr_paper(paper_id)

Args:
    query: Crypto terms (e.g., 'zero knowledge', 'homomorphic encryption').
    max_results: Number of results (default: 10).
    fetch_details: Get full metadata per paper (default: True).

Returns:
    List of paper dicts with: paper_id, title, authors, abstract,
    published_date, pdf_url.

Example:
    search_iacr("post-quantum cryptography", max_results=5)
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
max_resultsNo
fetch_detailsNo

TDQS

A4.6/5.0
Behavior4/5

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

With no annotations, the description discloses that papers are free, open access, and outlines the workflow (search then download/read). It does not mention rate limits or authentication, but it is reasonably transparent for a search tool.

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?

The description is well-structured with sections for purpose, usage, domain, workflow, args, returns, and example. Every sentence adds value, and the critical information is front-loaded.

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 no output schema, the description details the return format (list of dicts with fields). It also connects to sibling tools via workflow, making the tool's role in a larger process clear.

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

Parameters5/5

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

Despite 0% schema description coverage, the description explains each parameter (query, max_results, fetch_details) with examples and defaults, fully compensating for the lacking schema metadata.

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 clearly states the tool searches cryptography papers on IACR ePrint Archive, with a specific verb and resource. It distinguishes from sibling tools by explicitly limiting domain to cryptography.

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 'USE THIS TOOL WHEN' section explicitly lists when to use, and the 'DOMAIN: Cryptography ONLY' provides a clear exclusion. However, it does not explicitly mention alternative sibling tools like search_semantic or search_arxiv for non-cryptography needs.

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

search_medrxivA

Search medical preprints on medRxiv.

USE THIS TOOL WHEN:
- Searching for clinical/medical research preprints
- You need latest COVID-19, epidemiology, or clinical studies
- Searching by CATEGORY, not keyword (see below)

DOMAIN: Epidemiology, Infectious Diseases, Cardiology, Oncology,
Public Health, Psychiatry, Health Informatics, etc.

NOTE: medRxiv search uses CATEGORY names, not keywords.
Categories: 'infectious_diseases', 'epidemiology', 'cardiology',
'oncology', 'health_informatics', 'psychiatry', etc.

WORKFLOW:
1. search_medrxiv(category) -> get DOI
2. download_medrxiv(doi) or read_medrxiv_paper(doi)

Args:
    query: Category name (e.g., 'infectious_diseases', 'epidemiology').
    max_results: Number of results (default: 10).

Returns:
    List of recent preprints in that category.

Example:
    search_medrxiv("infectious_diseases", max_results=5)
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
max_resultsNo

TDQS

A4/5.0
Behavior3/5

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

No annotations exist, so the description must disclose behavioral details. It mentions that results are 'recent' and provides a workflow, but does not state whether the operation is read-only, what happens on error, or any rate limits. The description is adequate but not thorough.

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?

The description is well-structured with clear sections (summary, usage, domain, workflow, args, returns, example). While slightly verbose, it front-loads essential information and earns its length through clarity.

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

Completeness3/5

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

The description explains purpose and usage adequately for a simple tool, but it lacks details on the return structure (e.g., fields in the list) and error handling. Given no output schema, more specificity would improve completeness.

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?

The schema coverage is 0%, so the description fully carries the burden. It adds concrete examples of category names and explains that 'query' is a category name, not a keyword, which significantly aids understanding beyond the bare schema.

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 clearly states it searches medical preprints on medRxiv and specifies the domain and categorical search mechanism, which distinguishes it from sibling tools like search_arxiv or search_pubmed.

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 explicitly lists when to use (for clinical/medical research, latest studies) and implies when not to (by category, not keyword). The workflow and domain list provide additional context, though it stops short of naming alternative tools for keyword searches.

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

search_pubmedA

Search biomedical literature on PubMed (NCBI database).

USE THIS TOOL WHEN:
- Searching for medical, clinical, or biomedical research
- You need peer-reviewed published papers (not preprints)
- Searching for drug studies, clinical trials, disease research

DOMAIN: Medicine, Biology, Pharmacology, Public Health, 
Clinical Research, Genetics, Biochemistry.

LIMITATION: PubMed provides metadata/abstracts ONLY, not full PDFs.

WORKFLOW FOR FULL TEXT:
1. search_pubmed(query) -> get DOI from results
2. download_scihub(doi) -> download PDF (if published before 2023)

Args:
    query: Medical/scientific terms (e.g., 'cancer immunotherapy', 'COVID-19 vaccine').
    max_results: Number of results (default: 10).

Returns:
    List of paper dicts with: paper_id (PMID), title, authors, 
    abstract, published_date, doi, url.

Example:
    search_pubmed("CRISPR gene therapy", max_results=5)
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
max_resultsNo

TDQS

A5/5.0
Behavior5/5

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

With no annotations provided, the description fully discloses behavioral traits: limitation to metadata/abstracts, a suggested workflow for full text, and the return format (list of paper dicts with specific fields). It is transparent about what the tool does and does not do.

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?

The description is well-organized with sections (USE THIS TOOL WHEN, DOMAIN, LIMITATION, WORKFLOW) and bullet points. Every sentence provides essential information with no redundancy or fluff.

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 tool has 2 parameters, no output schema, and no annotations, the description is highly complete. It covers purpose, usage guidelines, limitations, workflow integration, parameter details, return format, and an example. No gaps remain for an agent to select and invoke correctly.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate. It explains the query parameter with examples (e.g., 'cancer immunotherapy') and specifies max_results as number of results with default 10. An example usage is also provided, adding clarity beyond the schema.

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 clearly states it searches biomedical literature on PubMed, specifies the database, and includes domain fields. It distinguishes from siblings like search_arxiv and search_medrxiv by naming PubMed and biomedical focus.

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 'USE THIS TOOL WHEN' section explicitly lists appropriate use cases (medical research, peer-reviewed papers) and includes a limitation (metadata only) and a workflow for full text using download_scihub. This provides clear when-to-use and when-not-to-use guidance.

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

search_repecA

Search economics papers on RePEc/IDEAS - the largest open economics bibliography.

USE THIS TOOL WHEN:
- Searching for ECONOMICS research (macro, micro, finance, econometrics)
- You need working papers from NBER, Federal Reserve, World Bank, etc.
- You want to find papers by JEL classification
- Searching for economic policy analysis

COVERAGE: 4.5M+ items including:
- Working Papers: NBER, Fed banks, ECB, IMF, World Bank
- Journal Articles: AER, JPE, QJE, Econometrica, etc.
- Books and Book Chapters

SEARCH SYNTAX:
- Boolean: + for AND, | for OR, ~ for NOT (e.g., 'money ~liquidity')
- Phrase: use double quotes (e.g., '"monetary policy"')
- Author(Year): e.g., 'Acemoglu (2019)' or 'Kydland Prescott (1977)'
- Synonyms: automatic (labor=labour, USA=United States)
- Word stemming: automatic (find matches finds, finding, findings)

LIMITATION: RePEc provides metadata only, not full PDFs.
PDFs are hosted at original institutions (often freely available).

Args:
    query: Search terms with optional boolean operators.
    max_results: Number of results (default: 10).
    year_from: Optional start year filter (e.g., 2020).
    year_to: Optional end year filter (e.g., 2025).
    search_field: Where to search, one of:
        - 'all': Whole record (default)
        - 'abstract': Abstract only
        - 'keywords': Keywords only
        - 'title': Title only
        - 'author': Author only
    sort_by: How to sort results, one of:
        - 'relevance': Most relevant (default)
        - 'newest': Most recent first
        - 'oldest': Oldest first
        - 'citations': Most cited first
        - 'recent_relevant': Recent and relevant
        - 'relevant_cited': Relevant and cited
    doc_type: Document type filter, one of:
        - 'all': All types (default)
        - 'articles': Journal articles
        - 'papers': Working papers (NBER, Fed, etc.)
        - 'chapters': Book chapters
        - 'books': Books
        - 'software': Software components
    series: Institution/journal series to search within, one of:
        - Institutions: 'nber', 'imf', 'worldbank', 'ecb', 'bis', 'cepr', 'iza'
        - Federal Reserve: 'fed', 'fed_ny', 'fed_chicago', 'fed_stlouis'
        - Top 5 Journals: 'aer', 'jpe', 'qje', 'econometrica', 'restud'
        - Other journals: 'jfe', 'jme', 'aej_macro', 'aej_micro', 'aej_applied'

Returns:
    List of paper dicts with: paper_id (RePEc handle), title, authors,
    abstract, published_date, url, categories (JEL codes).

Example:
    search_repec('inflation', series='nber')  # Search NBER only
    search_repec('causal inference', series='aer', sort_by='newest')
    search_repec('machine learning', series='fed', year_from=2020)
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
max_resultsNo
year_fromNo
year_toNo
search_fieldNoall
sort_byNorelevance
doc_typeNoall
seriesNo

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Discloses limitation 'RePEc provides metadata only, not full PDFs.' Describes search syntax and coverage but does not mention authentication or rate limits. Honest about return type.

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?

Well-structured with sections (USE THIS TOOL, COVERAGE, SEARCH SYNTAX, LIMITATION, Args, Returns, Example). Front-loaded with purpose. Slightly verbose but each section adds value.

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 8 parameters (0% schema coverage), no output schema, and no annotations, the description is remarkably complete. Covers all parameters, return format, and usage examples. No gaps for an agent to infer.

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

Parameters5/5

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

Schema description coverage is 0%, so description compensates fully. Provides detailed parameter descriptions, defaults, enum-like options for search_field, sort_by, doc_type, and series. Even includes example calls.

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?

Description clearly states it searches economics papers on RePEc/IDEAS. Lists specific coverage (NBER, Fed, World Bank, top journals) and distinguishes from sibling tools (e.g., search_arxiv, search_pubmed) by discipline focus.

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?

Has an explicit 'USE THIS TOOL WHEN' section listing four conditions (economics research, working papers, JEL classification, policy analysis). Does not explicitly state when not to use, but sibling tool names imply alternatives for other fields.

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

search_semanticA

Search papers on Semantic Scholar - general-purpose academic search engine.

USE THIS TOOL WHEN:
- You want to search across ALL academic disciplines
- You need citation counts and influence metrics
- You want to filter by publication year
- You need open-access PDF links when available

COVERAGE: ALL academic fields - sciences, humanities, medicine, etc.
Indexes 200M+ papers from journals, conferences, and preprints.

WORKFLOW:
1. search_semantic(query) -> get paper_id or DOI
2. download_semantic(paper_id) -> get PDF (if open-access)
3. If no PDF: use download_scihub(doi) for older papers

Args:
    query: Search terms (any topic, any field).
    year: Optional year filter: '2023', '2020-2023', '2020-', '-2019'.
    max_results: Number of results (default: 10).

Returns:
    List of paper dicts with: paper_id, title, authors, abstract,
    published_date, doi, citations, url, pdf_url (if available).

Example:
    search_semantic("climate change impact agriculture", year="2020-", max_results=5)
ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
yearNo
max_resultsNo

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations, the description carries full burden. It conveys read-only search behavior implicitly through 'Search papers' and return format. It lacks explicit statements about safety (e.g., no side effects) but is clear enough. Adding 'This tool does not modify any data' would justify 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.

Conciseness5/5

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

The description is well-structured with headers (USE THIS TOOL WHEN, COVERAGE, WORKFLOW, Args, Returns, Example). It is front-loaded with purpose, each section is concise and value-adding, with no redundant sentences.

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 tool has 3 params, no output schema, and many sibling tools, the description covers purpose, usage guidance, parameters with examples, return format, and integration workflow. It is complete enough for an agent to select and use correctly.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must compensate fully. It explains 'query' as 'any topic, any field', 'year' with format examples like '2020-2023', and 'max_results' with default value. This adds crucial meaning beyond the bare schema types.

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 explicitly states 'Search papers on Semantic Scholar - general-purpose academic search engine.' It contrasts with sibling tools by emphasizing cross-discipline coverage ('ALL academic fields'), distinguishing it from domain-specific searches like search_arxiv or search_pubmed.

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 'USE THIS TOOL WHEN' section lists specific use cases (cross-discipline search, citation metrics, year filtering, open-access PDFs). It also provides a workflow linking to download_semantic and download_scihub, giving clear decision criteria versus sibling download tools.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 29 tool updatesv1.0.0
    • First observeddownload_arxiv
    • First observeddownload_biorxiv
    • First observeddownload_crossref
    • First observeddownload_iacr
    • First observeddownload_medrxiv
    • First observeddownload_pubmed
    • First observeddownload_repec
    • First observeddownload_scihub
    • First observeddownload_semantic
    • First observedget_crossref_paper_by_doi
    • First observedget_repec_paper
    • First observedread_arxiv_paper
    • First observedread_biorxiv_paper
    • First observedread_crossref_paper
    • First observedread_iacr_paper
    • First observedread_medrxiv_paper
    • First observedread_pubmed_paper
    • First observedread_repec_paper
    • First observedread_scihub_paper
    • First observedread_semantic_paper
    • First observedsearch_arxiv
    • First observedsearch_biorxiv
    • First observedsearch_crossref
    • First observedsearch_google_scholar
    • First observedsearch_iacr
    • First observedsearch_medrxiv
    • First observedsearch_pubmed
    • First observedsearch_repec
    • First observedsearch_semantic

TDQS

A3.8/5.0
Disambiguation3/5

Tools are organized by source and action, but several tools (download_crossref, read_crossref, download_pubmed, etc.) return error messages instead of actual content, creating ambiguity. An agent may call these expecting results, leading to confusion. Additionally, the distinction between download_*, read_*, and get_* can be unclear for some sources.

Naming Consistency4/5

Most tools follow a consistent verb_source or verb_source_paper pattern (e.g., search_arxiv, download_arxiv, read_arxiv_paper). Minor inconsistencies include 'get_crossref_paper_by_doi' vs. 'get_repec_paper' and some 'read_*' tools including 'paper' suffix while 'download_*' tools omit it. Overall, the pattern is predictable.

Tool Count3/5

With 29 tools, the count is on the high side but largely justified by the number of sources and actions (search, download, read, metadata). However, several tools (e.g., download_crossref, read_pubmed) are essentially non-functional error messages, inflating the count. An effective tool count of about 20 would be more appropriate.

Completeness3/5

The server covers search, download, and full-text reading for several major sources, but notable gaps exist. Sources like PubMed and RePEc lack direct access, requiring users to rely on Sci-Hub or Semantic Scholar. The error-returning tools create dead ends, and there is no unified search across sources or citation metadata outside Semantic Scholar.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables searching, downloading, and managing academic papers from arXiv.org through natural language interactions. Provides tools for paper discovery, PDF downloads, and local paper collection management.
    4
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables searching and downloading academic papers from multiple sources including arXiv, PubMed, bioRxiv, Google Scholar, and Semantic Scholar. Provides standardized tools compatible with OpenAI Deep Research and ChatGPT connectors.
    14
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Enables searching and downloading academic papers from 14 platforms including arXiv, PubMed, Google Scholar, Web of Science, Springer, and Sci-Hub with unified data format and intelligent rate limiting.
    19
    295
    183
    MIT

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/h-lu/paper-find-mcp'

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