A Model Context Protocol (MCP) server for searching and downloading academic papers from multiple sources. The project follows a free-first strategy
Paper Search MCP MCP server is a locally run integration for AI assistants that speak the Model Context Protocol. A Model Context Protocol (MCP) server for searching and downloading academic papers from multiple sources. The project follows a free-first strategy: prioritize open and public data sources, support optional API keys when they improve.
paper-search-mcp is a Python-based tool for searching and downloading academic papers from various platforms. It provides tools for searching papers, downloading PDFs, and extracting text, making it ideal for researchers and AI-driven workflows. It can be used as an MCP server (for Claude Desktop and other MCP clients) or as a Claude Code skill with a CLI interface.
Once Paper Search MCP is connected, these are the calls the assistant has available:
PAPER_SEARCH_MCP_UNPAYWALL_EMAIL — UnpaywallPAPER_SEARCH_MCP_CORE_API_KEY — COREPAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY — Semantic ScholarPAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL — Google ScholarPAPER_SEARCH_MCP_DOAJ_API_KEY — DOAJPAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN — ZenodoPAPER_SEARCH_MCP_IEEE_API_KEY — IEEE XplorePAPER_SEARCH_MCP_ACM_API_KEY — ACM DL@smithery/cli on npm is all you need. Most clients run it directly, so configuration is a few lines and a restart.
You will need 8 environment variables: PAPER_SEARCH_MCP_UNPAYWALL_EMAIL, PAPER_SEARCH_MCP_CORE_API_KEY, PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY, PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN, PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL, PAPER_SEARCH_MCP_IEEE_API_KEY, PAPER_SEARCH_MCP_ACM_API_KEY, PAPER_SEARCH_MCP_ENV_FILE. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
Among the developer tooling options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Paper Search MCP's toolset — PAPER_SEARCH_MCP_UNPAYWALL_EMAIL, PAPER_SEARCH_MCP_CORE_API_KEY, PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY and 5 more — is a fair guide to whether it matches your workflow. It is maintained by openags; worth a glance at recent repository activity before you build anything load-bearing on it.
SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.
| Tool | What it does |
|---|---|
| PAPER_SEARCH_MCP_UNPAYWALL_EMAIL | Unpaywall |
| PAPER_SEARCH_MCP_CORE_API_KEY | CORE |
| PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY | Semantic Scholar |
| PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL | Google Scholar |
| PAPER_SEARCH_MCP_DOAJ_API_KEY | DOAJ |
| PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN | Zenodo |
| PAPER_SEARCH_MCP_IEEE_API_KEY | IEEE Xplore |
| PAPER_SEARCH_MCP_ACM_API_KEY | ACM DL |
**Claude Desktop config:**
```json
{
"mcpServers": {
"paper-search-mcp": {
"command": "uv",
"args": ["tool", "run", "paper-search-mcp"],
"env": {
"PAPER_SEARCH_MCP_UNPAYWALL_EMAIL": "your@email.com",
"PAPER_SEARCH_MCP_CORE_API_KEY": "",
"PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY": "",
"PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN": "",
"PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL": "",
"PAPER_SEARCH_MCP_IEEE_API_KEY": "",
"PAPER_SEARCH_MCP_ACM_API_KEY": ""
}
}
}
}Configuration as documented by the project. Restart the client after saving.
| Variable | Description | Required |
|---|---|---|
| PAPER_SEARCH_MCP_UNPAYWALL_EMAIL | Configuration value read at startup. | Optional |
| PAPER_SEARCH_MCP_CORE_API_KEY | Credential the server authenticates with. | Yes |
| PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY | Credential the server authenticates with. | Yes |
| PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN | Credential the server authenticates with. | Yes |
| PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL | Endpoint or connection string the server talks to. | Yes |
| PAPER_SEARCH_MCP_IEEE_API_KEY | Credential the server authenticates with. | Yes |
| PAPER_SEARCH_MCP_ACM_API_KEY | Credential the server authenticates with. | Yes |
| PAPER_SEARCH_MCP_ENV_FILE | Configuration value read at startup. | Optional |
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
GitHub's official server — repos, issues, pull requests, Actions and code security, straight from your assistant.
Issue tracking at the speed of conversation — Linear's official hosted server with OAuth and zero install.
Local repository surgery — status, diffs, commits, branches and history for any repo on disk.
Timezone sanity for AI — current time anywhere and correct conversions, without the model doing date math.