MCP Paper Finder
by Walids35
README.md
# 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](https://arxiv.org)
- [Zenodo](https://zenodo.org)
- [bioRxiv](https://www.biorxiv.org)
- [medRxiv](https://www.medrxiv.org)
- [CrossRef](https://www.crossref.org)
- [Google Scholar](https://scholar.google.com)
- [ResearchGate](https://www.researchgate.net)
- [Sci-Hub](https://sci-hub.st)
- [Elsevier](https://www.elsevier.com) (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`.
```json
"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 ๐ป
```sh
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).
```json
"paper-finder": {
"command": "node",
"args": [
"ABSOLUTE/PATH/TO/MCPDIRECOTRY/build/index.js"
]
}
```
## Testing ๐งช
Run all tests with:
```sh
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 ๐
[ISC](LICENSE)
---
**Note:** This project is for research and educational purposes. Respect the terms of service and copyright policies of each data provider.This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues