New to Claude Skills? Learn how to install them →

zlanqing on GitHub

Paper Lookup

Free

Efficiently search multiple academic databases for research papers.

Get this skill

Free · Opens the source repo

What Paper Lookup does

Paper Lookup provides access to ten major academic paper databases via their REST APIs, allowing users to seamlessly search for scholarly articles, preprints, and research papers. This skill is designed for researchers, students, and academics who need to find specific papers, citations, or full text articles across various fields. By understanding user queries and selecting the appropriate databases, Paper Lookup streamlines the process of academic research.

The core functionality of Paper Lookup revolves around interpreting user queries, determining the relevant databases to query, and returning comprehensive results. Users can ask for papers on a specific topic, look up articles by DOI, or request open access PDFs. The skill intelligently selects databases such as PubMed for biomedical topics, arXiv for preprints in physics or computer science, and Unpaywall for open access documents, ensuring that users receive the most relevant information.

Each database has its own reference file detailing endpoint specifics and query formats, which Paper Lookup utilizes to make API calls. The results returned include raw JSON responses from each queried database, a list of the databases accessed, and explicit notifications if no results were found. This ensures transparency and allows users to verify the information easily.

In summary, Paper Lookup is an essential tool for anyone engaged in academic research, facilitating access to a wealth of scholarly literature through a single interface. It is particularly useful for those who need to conduct comprehensive literature searches or retrieve specific articles efficiently.

When to use it

Use Paper Lookup when you need to find academic papers, citations, or full text articles across various databases.

When not to use it

It may not be suitable for casual users who do not require in-depth academic research or those looking for non-scholarly content.

What you can build with it

Finding Papers on a Topic

When researching a specific topic, use Paper Lookup to query multiple databases simultaneously for comprehensive results.

Retrieving Full Text Articles

If you need the full text of a biomedical article, Paper Lookup can query PMC and CORE to find accessible versions.

Looking Up a Specific DOI

Input a DOI to quickly retrieve metadata and citations for a specific paper using Crossref and related databases.

How to install Paper Lookup

View source

1. Install with the skills CLI

npx skills add zlanqing/codex-claude-academic-skills/paper-lookup --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by zlanqing

Paper Lookup

You have access to 10 academic paper databases through their REST APIs. Your job is to figure out which database(s) best serve the user's query, call them, and return the results.

Core Workflow

  1. Understand the query -- What is the user looking for? A specific paper by DOI? Papers on a topic? An author's publications? Open access PDFs? Full text? This determines which database(s) to hit.

  2. Select database(s) -- Use the database selection guide below. Many queries benefit from hitting multiple databases -- for example, searching PubMed for papers and then checking Unpaywall for open access copies.

  3. Read the reference file -- Each database has a reference file in references/ with endpoint details, query formats, and example calls. Read the relevant file(s) before making API calls.

  4. Make the API call(s) -- See the Making API Calls section below for which HTTP fetch tool to use on your platform.

  5. Return results -- Always return:

    • The raw JSON (or parsed XML for arXiv) response from each database
    • A list of databases queried with the specific endpoints used
    • If a query returned no results, say so explicitly rather than omitting it

Database Selection Guide

Match the user's intent to the right database(s).

By Use Case

User is asking about...Primary database(s)Also consider
Papers on a biomedical topicPubMedSemantic Scholar, OpenAlex
Full text of a biomedical articlePMCCORE
Biology preprintsbioRxivSemantic Scholar, OpenAlex
Health/medical preprintsmedRxivSemantic Scholar, OpenAlex
Physics, math, or CS preprintsarXivSemantic Scholar, OpenAlex
Papers across all fieldsOpenAlexSemantic Scholar, Crossref
A specific paper by DOICrossrefUnpaywall, Semantic Scholar
Open access PDF for a paperUnpaywallCORE, PMC
Citation graph (who cites whom)Semantic ScholarOpenAlex
Author's publicationsSemantic ScholarOpenAlex
Paper recommendationsSemantic Scholar--
Full text (any field)COREPMC (biomedical only)
Journal/publisher metadataCrossrefOpenAlex
Funder informationCrossrefOpenAlex
Convert between PMID/PMCID/DOIPMC (ID Converter)Crossref
Recent preprints by datebioRxiv, medRxivarXiv

Cross-Database Queries

User is asking about...Databases to query
Everything about a paper (metadata + citations + OA)Crossref + Semantic Scholar + Unpaywall
Comprehensive literature searchPubMed + OpenAlex + Semantic Scholar
Find and read a paperPubMed (find) + Unpaywall (OA link) + PMC or CORE (full text)
Preprint and its published versionbioRxiv/medRxiv + Crossref
Author overview with citation metricsSemantic Scholar + OpenAlex

When a query spans multiple needs (e.g., "find papers about CRISPR and get me the PDFs"), query the relevant databases in parallel.

Common Identifier Formats

Different databases use different identifier systems. If a query fails, the identifier format may be wrong.

IdentifierFormatExampleUsed by
DOI10.xxxx/xxxxx10.1038/nature12373All databases
PMIDInteger34567890PubMed, PMC, Semantic Scholar
PMCIDPMC + digitsPMC7029759PMC, Europe PMC
arXiv IDYYMM.NNNNN2103.15348arXiv, Semantic Scholar
OpenAlex IDW + digitsW2741809807OpenAlex
Semantic Scholar ID40-char hex649def34f8be...Semantic Scholar
ORCID0000-XXXX-XXXX-XXXX0000-0001-6187-6610OpenAlex, Crossref
ISSNXXXX-XXXX0028-0836Crossref, OpenAlex

Cross-referencing IDs: Semantic Scholar accepts DOI, PMID, PMCID, and arXiv ID via prefixes (e.g., DOI:10.1038/nature12373, PMID:34567890, ARXIV:2103.15348). OpenAlex accepts DOI and PMID via prefixes (doi:10.1038/..., pmid:34567890). Use the PMC ID Converter to translate between PMID, PMCID, and DOI.

API Keys and Access

Most of these databases are fully open. A few benefit from API keys for higher rate limits.

Databases requiring or benefiting from API keys

DatabaseEnv VariableRequired?Registration
NCBI (PubMed, PMC)NCBI_API_KEYNo (3 req/s without, 10 with)https://www.ncbi.nlm.nih.gov/account/settings/
CORECORE_API_KEYYes for full texthttps://core.ac.uk/services/api
Semantic ScholarS2_API_KEYNo (shared pool without)https://www.semanticscholar.org/product/api#api-key-form
OpenAlexOPENALEX_API_KEYRecommendedhttps://openalex.org/settings/api

Fully open databases (no key needed)

DatabaseNotes
bioRxiv / medRxivNo auth, no documented rate limits
arXivNo auth, max 1 request per 3 seconds
CrossrefNo auth; add mailto param for polite pool (2x rate limit)
UnpaywallNo auth; requires email parameter

Loading API keys

  1. Check the environment first -- the key may already be exported (e.g., $NCBI_API_KEY).
  2. Fall back to .env -- check .env in the current working directory.
  3. Proceed without -- most APIs still work at lower rate limits. Tell the user which key is missing and how to get one.

Making API Calls

Use your environment's HTTP fetch tool to call REST endpoints:

PlatformHTTP Fetch ToolFallback
Claude CodeWebFetchcurl via Bash
Gemini CLIweb_fetchcurl via shell
Windsurfread_url_contentcurl via terminal
CursorNo dedicated fetch toolcurl via run_terminal_cmd
Codex CLINo dedicated fetch toolcurl via shell
ClineNo dedicated fetch toolcurl via execute_command

If the fetch tool fails, fall back to curl via whatever shell tool is available.

Special cases

  • arXiv returns Atom XML, not JSON. Parse it or use curl and extract the relevant fields. Consider piping through a simple parser if available.
  • PMC eFetch returns JATS XML for full text. This is expected -- full text articles are in XML format.
  • Crossref and Unpaywall benefit from including a mailto parameter or email for the polite/fast pool.

Request guidelines

  • For NCBI APIs (PubMed, PMC): max 3 req/sec without key, 10 with key. Make requests sequentially.
  • For arXiv: max 1 request every 3 seconds. Be patient.
  • For Crossref: 5 req/sec (public), 10 req/sec (polite pool with mailto).
  • For other APIs with no strict limits, you can query multiple databases in parallel.
  • If you get HTTP 429 (rate limit), wait briefly and retry once.

Error recovery

  1. Check the identifier format -- use the Common Identifier Formats table. A PMID won't work in arXiv, an arXiv ID won't work in PubMed directly.
  2. Try alternative identifiers -- if a DOI fails in one database, try the title or PMID instead.
  3. Try a different database -- if PubMed returns nothing for a CS paper, try Semantic Scholar or OpenAlex.
  4. Report the failure -- tell the user which database failed, the error, and what you tried instead.

Output Format

Structure your response like this:

## Databases Queried
- **PubMed** -- esearch + esummary for "CRISPR gene therapy"
- **Unpaywall** -- DOI lookup for 10.1038/...

## Results

### PubMed
[raw JSON response or formatted results]

### Unpaywall
[raw JSON response]

If results are very large, present the most relevant portion and note that more data is available. But default to showing the full raw JSON -- the user asked for it.

Available Databases

Read the relevant reference file before making any API call.

Biomedical Literature

DatabaseReference FileWhat it covers
PubMedreferences/pubmed.md37M+ biomedical citations, abstracts, MeSH terms
PMCreferences/pmc.md10M+ full-text biomedical articles (JATS XML), ID conversion

Preprint Servers

DatabaseReference FileWhat it covers
bioRxivreferences/biorxiv.mdBiology preprints (browse by date/DOI, no keyword search)
medRxivreferences/medrxiv.mdHealth sciences preprints (browse by date/DOI, no keyword search)
arXivreferences/arxiv.mdPhysics, math, CS, biology, economics preprints (keyword search, Atom XML)

Multidisciplinary Indexes

DatabaseReference FileWhat it covers
OpenAlexreferences/openalex.md250M+ works, authors, institutions, topics, citation data
Crossrefreferences/crossref.md150M+ DOI metadata, journals, funders, references
Semantic Scholarreferences/semantic-scholar.md200M+ papers, citation graphs, AI-generated TLDRs, recommendations

Open Access & Full Text

DatabaseReference FileWhat it covers
COREreferences/core.md37M+ full texts from OA repositories worldwide
Unpaywallreferences/unpaywall.mdOA status and PDF links for any DOI

Frequently asked questions about Paper Lookup

Similar skills