mcp-paper-finder

Walids35/mcp-paper-finder

3.3

If you are the rightful owner of mcp-paper-finder and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

MCP Paper Finder is a modular, extensible Model Context Protocol (MCP) server designed for searching, downloading, and reading academic papers from multiple sources.

MCP Paper Finder 📚🔍

A modular, extensible Model Context Protocol (MCP) server for searching, downloading, and reading academic papers from multiple sources, including arXiv, Zenodo, bioRxiv, medRxiv, CrossRef, Google Scholar, ResearchGate, Sci-Hub, and Elsevier.

Features ✨

  • Unified Search 🔎: Query multiple academic sources with a single interface.
  • Download PDFs 📥: Download papers (when available) from supported sources.
  • Read Papers 📖: Extract and return text from downloaded PDFs (where supported).
  • MCP Compatible 🤝: Works as a local MCP tool for Claude, Open Interpreter, and other MCP clients.
  • Extensible 🛠️: Easily add new sources or tools.

Supported Sources 🌐

Quick Start 🚀

You can run MCP Paper Finder in two ways:

1. Run with Docker (Recommended) 🐳

Copy this JSON as your MCP tool in your MCP client (Make sure to locate the config file). Feel free to add env variable in the env section. Env variables are presented in .env.example.

"mcpServers": {
  "paper-finder": {
    "command": "docker",
    "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "DOTENV_CONFIG_QUIET=true",
        "walids35/mcp-paper-finder"
    ],
    "env": {
        "ELSEVIER_API_KEY": "your API KEY", // OPTIONAL (in case you want to use elsevier provider)
        "RESEARCHGATE_COOKIE": "", // OPTIONAL (in case of 429 Too many requests error)
        "SCIHUB_COOKIE": "" // OPTIONAL (recommended to bypass DDOS Guard)
      }
  }
}

2. Run Locally 💻

git clone https://github.com/Walids35/mcp-paper-finder.git
cd mcp-paper-finder
npm install
npm run build
  • Create .env file and add the environment variables presented in .env.example

Then, add the path to your built entry point (e.g., node ./build/index.js) as a local tool in your MCP client (such as Claude or Open Interpreter).

"paper-finder": {
    "command": "node",
    "args": [
    "ABSOLUTE/PATH/TO/MCPDIRECOTRY/build/index.js"
     ]
}

Testing 🧪

Run all tests with:

npm test

Project Structure 🗂️

src/
  index.ts                # MCP server entry point
  providers/              # Source-specific search/download/read logic
  tests/                  # Jest test cases for each provider
  types/                  # Shared type definitions

Adding New Sources ➕

  1. Implement a new provider class in src/providers/.
  2. Register it as a tool in src/index.ts.
  3. Add tests in src/tests/.

Demo

License 📜


Note: This project is for research and educational purposes. Respect the terms of service and copyright policies of each data provider.