Paper Scout MCP Server
Fetches new papers from arXiv across configured categories and provides tools to review and manage them.
Fetches daily papers from Hugging Face Daily Papers and includes community upvote signals.
Stores paper candidates, interest profiles, and pipeline status, enabling retrieval and management via MCP tools.
Fetches trending papers from Semantic Scholar and provides citation and author signals for scoring.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Paper Scout MCP Servershow me today's paper candidates"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Paper Scout
A personal AI research paper ingestion and scoring pipeline. Paper Scout monitors arXiv, Semantic Scholar, and Hugging Face Daily Papers for new research, scores papers against your interest profile using local embeddings (no LLM calls), and stores candidates in MongoDB for review via MCP tools in Claude Desktop or Cowork.
Two halves:
Automated pipeline — fetches papers on a daily schedule, scores them, writes candidates to MongoDB. Runs on Fly.io (or anywhere Docker runs).
MCP server — tools that Claude uses to review candidates, assess significance, manage your interest profile. Runs locally on your machine.
How It Works
Every day at a configured time, Paper Scout:
Pulls new papers from arXiv (across your chosen categories), Semantic Scholar trending, and HF Daily Papers
Deduplicates against previously seen papers
Scores each paper (0.0-1.0) using five weighted signals:
Signal | Default Weight | Source |
Embedding similarity | 0.45 | title+abstract vs your interest profile topics |
Keyword match | 0.15 | keywords found in title/abstract |
Citation & author signals | 0.20 | Semantic Scholar citation count, h-index |
Community signal | 0.10 | HF Daily Papers upvotes |
Recency bonus | 0.10 | Linear decay over fetch window |
Papers above the candidate threshold get stored as candidates for your review
You review them in Claude Desktop / Cowork using the MCP tools
Setup
Prerequisites
Python 3.12+
MongoDB (local or Atlas free tier)
1. Clone and install
git clone https://github.com/jonradoff/paper-scout.git
cd paper-scout
python -m venv .venv
source .venv/bin/activate
pip install -e ".[mcp]"2. Configure
cp .env.example .envEdit .env with your settings:
MONGODB_URI(required) — your MongoDB connection string. Localmongodb://localhost:27017works, or use Atlas:mongodb+srv://user:pass@cluster.mongodb.net/S2_API_KEY(optional) — Semantic Scholar API key for better citation data and rate limitsHF_TOKEN(optional) — Hugging Face token for Daily Papers access
All scoring weights, scheduling, arXiv categories, and other settings are configurable in .env. See .env.example for the full list.
3. Customize your interest profile
Edit interest_profile/seed.json to reflect your research interests:
topics— natural language descriptions of what you care about (these get embedded for semantic matching)keywords.high_weight— terms that strongly indicate relevancekeywords.medium_weight— moderately relevant termskeywords.low_weight— loosely relevant termstracked_labs— institutions whose papers get a citation signal boosttracked_authors— specific authors to watch for
The default profile covers AI agents, MCP, LLMs, and AI safety. Replace it with your own interests.
4. Seed the profile
This generates embeddings for your topics and stores everything in MongoDB:
python scripts/seed_profile.pyThe first run downloads the embedding model (~80MB) to ./model_cache/.
5. Test with a single run
python scripts/run_once.pyThis fetches papers, scores them, and prints the top candidates. Use this to verify everything is working and tune your threshold.
6. Connect to Claude Desktop / Cowork
Add the Paper Scout MCP server to your Claude Desktop config.
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Add (or merge into) the mcpServers section:
{
"mcpServers": {
"paper-scout": {
"command": "/path/to/your/python",
"args": ["-m", "mcp_server.server"],
"cwd": "/path/to/paper-scout",
"env": {
"PYTHONPATH": "/path/to/paper-scout/src",
"MONGODB_URI": "your-mongodb-connection-string",
"DB_NAME": "paper_scout",
"MODEL_CACHE_DIR": "/path/to/paper-scout/model_cache"
}
}
}
}Replace the paths with your actual values:
command— the Python from your venv (e.g.,/path/to/paper-scout/.venv/bin/python)cwd— the paper-scout project directoryPYTHONPATH— thesrc/directory inside paper-scoutMONGODB_URI— same connection string from your.envMODEL_CACHE_DIR— where the embedding model is cached
Restart Claude Desktop to pick up the new MCP server.
7. Use it
In Claude Desktop or Cowork, ask Claude to call get_todays_papers — it will pull up your scored candidates with clickable arXiv links. From there:
Drill in: ask Claude to call
get_paper_detailorassess_significanceon any paperManage:
update_paper_statusto mark papers as reviewed, shared, or dismissedShare:
generate_summary_contextto get context for writing about a paper, thenrecord_shareto log itSearch:
search_papersfor full-text search across all stored papersTune:
get_interest_profileandupdate_interest_profileto evolve your interests over time
MCP Tools
Tool | Description |
| Today's candidates sorted by score |
| Full detail for a specific paper |
| Context for assessing a paper's importance |
| Paper details + past examples for a platform |
| Mark a candidate as reviewed/shared/dismissed |
| Record a share with the summary used |
| Full-text search across all stored papers |
| View the current interest profile |
| Add/remove topics, keywords, labs, authors |
| Pipeline run stats and schedule info |
Running the Scheduler
For daily automated runs, start the scheduler:
python -m paper_scout.schedulerBy default it runs at 5:00 AM Eastern and also runs once immediately on startup. Configure the schedule in .env:
SCHEDULE_CRON_HOUR=5
SCHEDULE_CRON_MINUTE=0
SCHEDULE_TIMEZONE=America/New_YorkDeploying to Fly.io (optional)
If you want the pipeline running in the cloud instead of on your machine:
# Edit fly.toml — change the app name to yours
fly launch --no-deploy
fly volumes create model_cache --size 2 --region ewr
fly secrets set MONGODB_URI="mongodb+srv://..." S2_API_KEY="..." HF_TOKEN="..."
fly deployThe Dockerfile uses CPU-only PyTorch to keep the image small (~1.4GB vs ~4GB with CUDA).
The MCP server still runs locally on your machine — it just reads from the same MongoDB database that the cloud pipeline writes to.
Project Structure
paper-scout/
├── src/
│ ├── paper_scout/ # Ingestion pipeline
│ │ ├── config.py # Settings from env vars
│ │ ├── db.py # MongoDB connection + indexes
│ │ ├── models.py # Pydantic data models
│ │ ├── pipeline.py # Fetch -> dedupe -> score -> store
│ │ ├── scheduler.py # APScheduler cron entry point
│ │ ├── sources/ # arXiv, Semantic Scholar, HF
│ │ └── scoring/ # Embeddings, signals
│ └── mcp_server/ # MCP tools for Claude
├── interest_profile/ # Your interest profile (customize this)
├── scripts/ # One-shot runners
├── Dockerfile # CPU-only PyTorch build
├── fly.toml # Fly.io config
├── .env.example # All configuration options
└── LICENSELicense
MIT License. Copyright (c) 2026 Metavert LLC. See LICENSE.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/jonradoff/paper-scout'
If you have feedback or need assistance with the MCP directory API, please join our Discord server