telagod/papermcp
If you are the rightful owner of papermcp 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.
PaperMCP is a Model Context Protocol server that provides a unified interface for searching and accessing academic papers from over 23 sources.
PaperMCP
❌ Without PaperMCP
- Manually visiting multiple academic databases
- Copy-pasting DOIs and paper IDs between tools
- Switching contexts to download PDFs
- No unified interface for paper search
✅ With PaperMCP
- Single interface for 23+ academic sources
- Direct access from Claude and other AI assistants
- Automatic PDF download and text extraction
- Plugin system for sensitive sources
🛠️ Installation
Install in Claude Desktop
Add to your Claude Desktop config file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Using npx (Recommended)
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}
Using npm global install
npm install -g @telagod/papermcp
{
"mcpServers": {
"papermcp": {
"command": "papermcp"
}
}
}
With API keys
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"],
"env": {
"SEMANTIC_SCHOLAR_API_KEY": "YOUR_KEY",
"WOS_API_KEY": "YOUR_KEY",
"SCOPUS_API_KEY": "YOUR_KEY"
}
}
}
}
Install in Cline
Add to Cline MCP settings:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}
Install in Zed
Add to ~/.config/zed/settings.json:
{
"context_servers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}
Install in Continue
Add to Continue config:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}
Install in Sourcegraph Cody
Add to Cody settings:
{
"cody.experimental.mcp": {
"servers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}
}
Install in Cursor
Add to Cursor MCP settings:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}
Install in Windsurf
Add to Windsurf config:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}
Install in Roo Cline
Add to Roo Cline settings:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}
Install in OpenHands
Add to OpenHands config:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}
Install in Void
Add to Void settings:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}
Install in Claude Code
Use the claude mcp add command:
claude mcp add papermcp -- npx -y @telagod/papermcp
Or manually add to ~/.claude.json:
{
"projects": {
"/your/project/path": {
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}
}
}
Install in Gemini CLI
Add to ~/.config/gemini-cli/settings.json:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}
Install in Codex CLI
Add to ~/.codex/config.toml:
[mcp_servers.papermcp]
command = "npx"
args = ["-y", "@telagod/papermcp"]
Install in OpenCode
Add to .opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"papermcp": {
"type": "local",
"command": ["npx", "-y", "@telagod/papermcp"],
"enabled": true
}
}
}
Install in Crush CLI
Add to Crush config:
{
"mcpServers": {
"papermcp": {
"command": "npx",
"args": ["-y", "@telagod/papermcp"]
}
}
}
📚 Supported Platforms
Core Platforms (16)
| Platform | ID | API Key | Features |
|---|---|---|---|
| arXiv | arxiv | ❌ | Search, Download, Read |
| PubMed | pubmed | ❌ | Search, Lookup |
| PubMed Central | pmc | ❌ | Search, Download, Read |
| bioRxiv | biorxiv | ❌ | Search |
| medRxiv | medrxiv | ❌ | Search |
| Google Scholar | google-scholar | ❌ | Search |
| IACR ePrint | iacr | ❌ | Search, Download |
| Semantic Scholar | semantic | ⚠️ | Search, Lookup |
| CrossRef | crossref | ❌ | Search, Lookup |
| ACM Digital Library | acm | ❌ | Search |
| Web of Science | wos | ✅ | Search |
| Scopus | scopus | ✅ | Search |
| JSTOR | jstor | ❌ | Search |
| ResearchGate | researchgate | ❌ | Search |
| CORE | core | ✅ | Search |
| Microsoft Academic | microsoft-academic | ✅ | Search |
Optional Plugins (7)
Enable via environment variables:
PLUGIN_SCI_HUB=true
PLUGIN_LIBGEN=true
PLUGIN_UNPAYWALL=true
PLUGIN_OA_BUTTON=true
PLUGIN_SCIENCE_DIRECT=true
PLUGIN_SPRINGER_LINK=true
PLUGIN_IEEE_XPLORE=true
[!WARNING] Sci-Hub and LibGen plugins are disabled by default. Use responsibly and comply with local regulations.
🚀 Usage
Available Tools (4 Unified Tools)
recommend_platforms
Get platform recommendations based on field
{
"query": "transformer neural network",
"field": "computer-science" // biomedical, physics, mathematics, cryptography, open-access, general
}
search_papers
Search for papers on specified platform
{
"platform": "arxiv", // Use recommend_platforms to get suggestions
"query": "machine learning",
"limit": 10
}
download_paper
Download paper PDF from platform
{
"platform": "arxiv",
"id": "2301.00001",
"dir": "/path/to/save"
}
read_paper
Extract text from paper PDF
{
"platform": "pmc",
"id": "PMC8123456",
"dir": "/path/to/pdfs"
}
⚙️ Configuration
Environment Variables
# Optional API keys for enhanced features
SEMANTIC_SCHOLAR_API_KEY=your-key
WOS_API_KEY=your-key
SCOPUS_API_KEY=your-key
CORE_API_KEY=your-key
# Plugin toggles (default: false)
PLUGIN_SCI_HUB=true # No config needed
PLUGIN_LIBGEN=true # No config needed
PLUGIN_UNPAYWALL=true # Requires UNPAYWALL_EMAIL
PLUGIN_OA_BUTTON=true # Optional OA_BUTTON_API_KEY
PLUGIN_SCIENCE_DIRECT=true # Requires ELSEVIER_API_KEY
PLUGIN_SPRINGER_LINK=true # No config needed
PLUGIN_IEEE_XPLORE=true # No config needed
# Plugin API keys
UNPAYWALL_EMAIL=your@email.com # Required for Unpaywall
ELSEVIER_API_KEY=your-key # Required for ScienceDirect
OA_BUTTON_API_KEY=your-key # Optional for Open Access Button
Getting API Keys
| Platform | Link | Notes |
|---|---|---|
| Semantic Scholar | Apply | Free, increases rate limit |
| Web of Science | Apply | Requires institutional subscription |
| Scopus | Apply | Requires institutional subscription |
| CORE | Apply | Free |
| Unpaywall | Any email | No registration needed |
| ScienceDirect | Apply | Requires institutional subscription |
| Open Access Button | Apply | Optional, free |
🔧 Development
Install from source
git clone https://github.com/telagod/papermcp.git
cd papermcp/ts
npm install
npm run build
npm run dev
Project Structure
ts/
├── src/
│ ├── core/ # Core types and config
│ ├── platforms/ # Platform adapters
│ ├── plugins/ # Optional plugins
│ ├── services/ # Registry and tools
│ ├── server/ # MCP server
│ └── utils/ # HTTP, logging
└── dist/ # Compiled output
Adding a Platform
import { BasePlatformAdapter } from './baseAdapter.js';
import { addAdapterFactory } from './index.js';
class MyAdapter extends BasePlatformAdapter {
constructor() {
super('my-platform');
}
async search(query: SearchQuery): Promise<SearchResult> {
// Implementation
}
}
addAdapterFactory(() => new MyAdapter());
📄 License
MIT License - see for details.
🙏 Acknowledgments
Built with Model Context Protocol and MCP TypeScript SDK
Made with ❤️ for researchers