Unpaywall MCP Server
by SMABoundless
README.md
# Unpaywall MCP Server
An MCP (Model Context Protocol) server for the [Unpaywall](https://unpaywall.org/) API — open-access availability for 120M+ scholarly articles.
Built with [FastMCP](https://github.com/modelcontextprotocol/python-sdk).
## Tools
| Tool | Description |
|------|-------------|
| `unpaywall_lookup` | Look up open-access availability by DOI — returns OA status, PDF/landing page URLs, license, all OA locations |
| `unpaywall_search` | Search 120M+ article titles with OA filtering and pagination |
| `unpaywall_export_ris` | Export results as RIS (for Zotero, EndNote, etc.) |
| `unpaywall_export_bibtex` | Export results as BibTeX |
## What you get
- Open-access status and OA type (gold, green, hybrid, bronze)
- Best OA location with direct PDF link
- All OA locations across repositories and publishers
- Journal OA status, ISSN, publisher info
- Author lists, publication dates, DOIs
- License information per location
## Setup
### 1. Get your email ready
Unpaywall requires an email address as your API identifier (no API key needed). See the [Unpaywall API docs](https://unpaywall.org/products/api).
### 2. Install
```bash
pip install unpaywall-mcp-server
```
Or install from source:
```bash
cd unpaywall-mcp-server
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
### 3. Add to Claude Desktop
Add this to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"unpaywall": {
"command": "uvx",
"args": ["unpaywall-mcp-server"],
"env": {
"UNPAYWALL_EMAIL": "your-email@example.com"
}
}
}
}
```
Or if using Claude Code CLI:
```bash
claude mcp add unpaywall \
uvx unpaywall-mcp-server \
-e UNPAYWALL_EMAIL=your-email@example.com
```
## Usage examples
- "Is there an open-access version of DOI 10.1038/nature12373?"
- "Search Unpaywall for open-access papers on CRISPR gene editing"
- "Export these results as RIS for Zotero"
- "Find OA articles about climate change mitigation"
## License
MIT
<!-- mcp-name: io.github.SMABoundless/unpaywall -->
TDQS
A4/5.0
Scored across 4 tools
Disambiguation5/5
Each tool has a clearly distinct purpose: lookup by DOI, search by title, and export in two different formats (BibTeX and RIS). No overlap in functionality.
Naming Consistency5/5
All tools follow a consistent 'unpaywall_verb_noun' pattern in snake_case, making it easy to predict tool names and understand their actions.
Tool Count4/5
With 4 tools, the server is focused but not overly minimal. It covers the core use cases (lookup, search, export) without unnecessary extras.
Completeness4/5
The tool surface covers the primary workflows: looking up articles by DOI, searching by title, and exporting results in common academic formats. Minor gaps like batch operations or direct DOi extraction from search results are acceptable for the scope.
Maintenance
ActivityStale
ResponsivenessNo issues