AnModel Context Protocol (MCP) server for the Unpaywall API. Search article titles, fetch DOI metadata, retrieve best open‑access links, and extract text from OA PDFs—ready for Claude Desktop and any MCP‑compatible client. Ideal for LLM research assistants, literature review, and academic workflows.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add unpaywall --env UNPAYWALL_EMAIL='<UNPAYWALL_EMAIL>' -- node dist/index.js~/.codex/config.toml
[mcp_servers.unpaywall]
command = "node"
args = ["dist/index.js"]
env = { UNPAYWALL_EMAIL = "<UNPAYWALL_EMAIL>" }
# codex mcp add unpaywall --env UNPAYWALL_EMAIL='<UNPAYWALL_EMAIL>' -- node dist/index.js~/.cursor/mcp.json
{
"mcpServers": {
"unpaywall": {
"command": "node",
"args": [
"dist/index.js"
],
"env": {
"UNPAYWALL_EMAIL": "<UNPAYWALL_EMAIL>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"unpaywall": {
"type": "stdio",
"command": "node",
"args": [
"dist/index.js"
],
"env": {
"UNPAYWALL_EMAIL": "<UNPAYWALL_EMAIL>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"unpaywall": {
"command": "node",
"args": [
"dist/index.js"
],
"env": {
"UNPAYWALL_EMAIL": "<UNPAYWALL_EMAIL>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"unpaywall": {
"command": "node",
"args": [
"dist/index.js"
],
"env": {
"UNPAYWALL_EMAIL": "<UNPAYWALL_EMAIL>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"unpaywall": {
"command": "node",
"args": [
"dist/index.js"
],
"env": {
"UNPAYWALL_EMAIL": "<UNPAYWALL_EMAIL>"
}
}
}
}Environment variables
UNPAYWALL_EMAIL
Replace the placeholders with your own credentials and keep them out of version control.