@iflow-mcp/walids35-mcp-paper-finder
v1.0.0
Published
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.
Readme
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 🌐
- arXiv
- Zenodo
- bioRxiv
- medRxiv
- CrossRef
- Google Scholar
- ResearchGate
- Sci-Hub
- Elsevier (requires API key)
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
.envfile 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 testProject 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 definitionsAdding New Sources ➕
- Implement a new provider class in
src/providers/. - Register it as a tool in
src/index.ts. - 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.
