# Paper Distill MCP

Searches across 11 academic databases, ranks papers using AI, and sends summaries directly to Zotero, Obsidian, or team chat channels.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 68
- Author: Eclipse-Cj
- License: AGPL-3.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/Eclipse-Cj/paper-distill-mcp
- Updated: 2026-03-24
- HTML: https://affpapa.org/en/nevibecode/mcp/paper-distill-mcp

## What it does

The server queries 11 sources at once, including arXiv and PubMed. Results are evaluated along four customizable axes: relevance, release date, citation impact, and novelty. Basic literature searches run without third-party API tokens.

Paper filtering can run through an optional dual-AI blind review setup where a chief reviewer makes the final push decision. Selected papers sync straight into Zotero or Obsidian note cards. The tool also supports building an automatically updated library site using Astro and Vercel.

The project is in early development, so unexpected bugs remain likely. Delegating abstract extraction to a separate agent prevents excessive token spend during scans.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `OPENALEX_EMAIL`, `CORE_API_KEY`, `TELEGRAM_BOT_TOKEN`, `TELEGRAM_CHAT_ID`, `DISCORD_WEBHOOK_URL`, `ZOTERO_LIBRARY_ID`, `ZOTERO_API_KEY` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env OPENALEX_EMAIL=<OPENALEX_EMAIL> --env CORE_API_KEY=<CORE_API_KEY> --env TELEGRAM_BOT_TOKEN=<TELEGRAM_BOT_TOKEN> --env TELEGRAM_CHAT_ID=<TELEGRAM_CHAT_ID> --env DISCORD_WEBHOOK_URL=<DISCORD_WEBHOOK_URL> --transport stdio paper-distill-mcp -- uvx paper-distill-mcp
```
Replace <…> with your own values. 2 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from paper-distill-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add paper-distill-mcp --env OPENALEX_EMAIL=<OPENALEX_EMAIL> --env CORE_API_KEY=<CORE_API_KEY> --env TELEGRAM_BOT_TOKEN=<TELEGRAM_BOT_TOKEN> --env TELEGRAM_CHAT_ID=<TELEGRAM_CHAT_ID> --env DISCORD_WEBHOOK_URL=<DISCORD_WEBHOOK_URL> -- uvx paper-distill-mcp
```
Replace <…> with your own values. 2 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from paper-distill-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "paper-distill-mcp": {
            "command": "uvx",
            "args": [
                "paper-distill-mcp"
            ],
            "env": {
                "OPENALEX_EMAIL": "<OPENALEX_EMAIL>",
                "CORE_API_KEY": "<CORE_API_KEY>",
                "TELEGRAM_BOT_TOKEN": "<TELEGRAM_BOT_TOKEN>",
                "TELEGRAM_CHAT_ID": "<TELEGRAM_CHAT_ID>",
                "DISCORD_WEBHOOK_URL": "<DISCORD_WEBHOOK_URL>"
            }
        }
    }
}
```
Replace <…> with your own values. 2 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from paper-distill-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "paper-distill-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "paper-distill-mcp"
            ],
            "env": {
                "OPENALEX_EMAIL": "<OPENALEX_EMAIL>",
                "CORE_API_KEY": "<CORE_API_KEY>",
                "TELEGRAM_BOT_TOKEN": "<TELEGRAM_BOT_TOKEN>",
                "TELEGRAM_CHAT_ID": "<TELEGRAM_CHAT_ID>",
                "DISCORD_WEBHOOK_URL": "<DISCORD_WEBHOOK_URL>"
            }
        }
    }
}
```
Replace <…> with your own values. 2 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from paper-distill-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e OPENALEX_EMAIL=<OPENALEX_EMAIL> -e CORE_API_KEY=<CORE_API_KEY> -e TELEGRAM_BOT_TOKEN=<TELEGRAM_BOT_TOKEN> -e TELEGRAM_CHAT_ID=<TELEGRAM_CHAT_ID> -e DISCORD_WEBHOOK_URL=<DISCORD_WEBHOOK_URL> paper-distill-mcp uvx paper-distill-mcp
```
Replace <…> with your own values. 2 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from paper-distill-mcp <command>

## When to use it
- search 11 academic paper sources simultaneously
- score research papers using custom relevance and recency weights
- export bibliographic records into Zotero and notes to Obsidian
- push scheduled literature roundups to Discord or Telegram

## Example prompts
- Initialize paper-distill and configure research topics for reinforcement learning
- Search for recent diffusion model papers and export the top picks to Zotero
- Enable dual-AI review and push five papers

## Similar
- [Zotero MCP](https://affpapa.org/en/nevibecode/mcp/zotero-mcp.md) — MCP server · ★ 5548
- [arxiv-mcp-server](https://affpapa.org/en/nevibecode/mcp/arxiv-mcp-server.md) — MCP server · ★ 3231
- [PaperBanana](https://affpapa.org/en/nevibecode/mcp/paperbanana.md) — MCP server · ★ 2417
- [MATLAB MCP Server](https://affpapa.org/en/nevibecode/mcp/matlab-mcp-server.md) — MCP server · ★ 1716
- [Hex Research](https://affpapa.org/en/nevibecode/mcp/hex-research.md) — MCP server · ★ 583
- [DocsAgent — Zotero, Obsidian & Apple Notes MCP Server](https://affpapa.org/en/nevibecode/mcp/docsagent-zotero-obsidian-apple-notes-mcp-server.md) — MCP server · ★ 578

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
