Skip to main content
MCP server CX Codex

fulltext-article-downloader — Claude Code MCP server: fetch paper

Pulls a paper's full text from a DOI, arXiv, PMC or OpenReview id and confirms the returned file is the one you asked for. Use it when an agent needs the article itself, not its abstract.

Install into Claude Code · Platform CLI All methods and platforms ↓
claude mcp add --env UNPAYWALL_EMAIL=<UNPAYWALL_EMAIL> --env FULLTEXT_OUTPUT_DIR=<FULLTEXT_OUTPUT_DIR> --env WILEY_API_KEY=<WILEY_API_KEY> --env ELSEVIER_API_KEY=<ELSEVIER_API_KEY> --env SPRINGER_API_KEY=<SPRINGER_API_KEY> --transport stdio fulltext-article-downloader -- uvx fulltext-article-downloader
Open on GitHub

What fulltext-article-downloader does

Give it an identifier and it works through sources one after another: publisher APIs, open-access indexes, preprint archives. A failed route hands off to the next. Each PDF is matched against the article title, while abstract-only records and supporting-information files get thrown out. What comes back is the paper you named.

The report says which route delivered the file and flags a preprint or accepted manuscript when that is what you got. No keys and off campus still covers open-access work, preprints and DOE-funded manuscripts. Paywalled papers usually fail without a publisher key; the server spots a truncated response and moves on.

Elsevier, Wiley, Springer and Semantic Scholar credentials go into environment variables when you register the server. UNPAYWALL_EMAIL is your contact address for Unpaywall and Crossref, and it puts Crossref requests in the faster pool. Two optional extras go further: tls mimics Chrome's TLS fingerprint, aps reuses your APS login session. Check both against your institution's agreements before turning them on.

What it helps with

  • fetch a paper's PDF by DOI from inside an agent chat
  • locate an open copy of a paywalled article via Unpaywall and Europe PMC
  • confirm a downloaded file matches the requested paper
  • tell a preprint from the publisher's version in the download report
  • download a batch of papers from a list of identifiers

Example prompts for the agent

  • Download the full text of 10.1371/journal.pone.0171501 into papers
  • Get the PDF for arXiv:2310.19377 and tell me which source it came from
  • Fetch PMC6561843 and check that it is the right article

How to install fulltext-article-downloader

Platform CLI

claude mcp add --env UNPAYWALL_EMAIL=<UNPAYWALL_EMAIL> --env FULLTEXT_OUTPUT_DIR=<FULLTEXT_OUTPUT_DIR> --env WILEY_API_KEY=<WILEY_API_KEY> --env ELSEVIER_API_KEY=<ELSEVIER_API_KEY> --env SPRINGER_API_KEY=<SPRINGER_API_KEY> --transport stdio fulltext-article-downloader -- uvx fulltext-article-downloader

Replace <…> with your own values. 1 more environment variable is in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from fulltext-article-downloader <command>

Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more

Questions about fulltext-article-downloader

How do I install fulltext-article-downloader in Claude Code?

Run `claude mcp add fulltext-article-downloader -e WILEY_API_KEY=<WILEY_API_KEY> -e ELSEVIER_API_KEY=<ELSEVIER_API_KEY> -e SPRINGER_API_KEY=<SPRINGER_API_KEY> -e SEMANTIC_SCHOLAR_API_KEY=<SEMANTIC_SCHOLAR_API_KEY> -- uvx fulltext-article-downloader`. Put in your own keys; without them only open routes remain.

What does fulltext-article-downloader do?

It takes an article identifier, tries several sources in sequence and checks the result against the paper's title. You get the file path, the source that worked and a note if the file is a preprint or accepted manuscript.

Which keys does it need for paywalled publishers?

Elsevier, Wiley and Springer Nature each unlock their own API with a key, and Semantic Scholar raises your request limit. UNPAYWALL_EMAIL holds your address for Unpaywall and Crossref. Keys stay on your machine.

Similar MCP servers

Everything for Science and research →

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor