Scholar Feed MCP Server
Research paper search with ranking and citation tracking, for LLM engineering and academic research, without leaving Claude Code, Cursor, or any MCP client.
Most paper tools hand back a flat list. Scholar Feed ranks it: sort by relevance, by proven citation count, or by rising impact, then trace any paper's citation lineage forward and backward across 22M+ edges. 600k+ CS/AI/ML papers, updated daily, each with an LLM-generated summary and novelty score.
Scholar Feed indexes arXiv papers daily and ranks them on recency, citation velocity, institutional reputation, and code availability.
Quick Start
npx scholar-feed-mcp@latest init
This interactive wizard will:
- Optionally ask for an API key (or skip for anonymous access)
- Detect your MCP client (Claude Code, Cursor, or Claude Desktop)
- Write the config and verify the connection
No API key required. Anonymous access gives you 200 calls/month, enough for a typical research session. For a higher quota (500/month per account) plus your library — collections, saved papers and watches — get a free key at scholarfeed.org/settings.
Try asking: "Search for recent papers on test-time compute scaling"
What You Can Do
Technology scouting: "What novel research on retrieval-augmented generation was published this month?"
Literature review: "Find papers similar to 2401.04088 and export their BibTeX"
Trend monitoring: "What's trending in cs.CV this week? Summarize the top 3."
Author discovery: "Who are the top researchers working on efficient LLM inference?"
Field orientation: "Give me an orientation report on sparse mixture-of-experts architectures."
Installation
The fastest path is npx scholar-feed-mcp@latest init, which auto-detects your client and writes the config. To set it up by hand, every client launches the same stdio server (npx -y scholar-feed-mcp@latest); only the config-file location and the wrapper key differ.
Claude Desktop (one-click) installs without editing any config: download the .mcpb bundle from the latest release and open it (or drag it into Settings > Extensions). The installer shows one optional field for a Scholar Feed API key (sf_...): leave it blank for anonymous mode (200 calls/month), or paste a free key from scholarfeed.org/settings for 500/month.
Claude Code takes a one-line command:
# Anonymous (200 calls/month)
claude mcp add scholar-feed -- npx -y scholar-feed-mcp@latest
# With an API key (500 calls/month per account)
claude mcp add scholar-feed -e SF_API_KEY=sf_your_key_here -- npx -y scholar-feed-mcp@latest
Every other client takes this standard JSON block:
{
"mcpServers": {
"scholar-feed": {
"command": "npx",
"args": ["-y", "scholar-feed-mcp@latest"]
}
}
}
To raise the quota to 500 calls/month, add "env": { "SF_API_KEY": "sf_your_key_here" } to the server entry. Get a free key at scholarfeed.org/settings.
Drop that block into the right config file:
A few clients need a different wrapper key or file format:
OpenAI Codex (~/.codex/config.toml, or $CODEX_HOME/config.toml if you set that) uses TOML, not JSON — the block above will not work. One file serves both the Codex CLI and the IDE extension.
[mcp_servers.scholar-feed]
command = "npx"
args = ["-y", "scholar-feed-mcp@latest"]
env = { SF_API_KEY = "sf_your_key_here" }
Drop the env line to run keyless at 200 calls/month. On Windows, if Codex cannot launch the server, use command = "cmd" with args = ["/c", "npx", "-y", "scholar-feed-mcp@latest"].
VS Code: GitHub Copilot (.vscode/mcp.json) uses a servers key and an explicit type, and needs Copilot agent mode. You can also run MCP: Add Server from the Command Palette.
{
"servers": {
"scholar-feed": {
"type": "stdio",
"command": "npx",
"args": ["-y", "scholar-feed-mcp@latest"]
}
}
}
Zed (settings.json) uses a context_servers key, and the "source": "custom" line is required (without it, Zed silently skips the entry).
{
"context_servers": {
"scholar-feed": {
"source": "custom",
"command": "npx",
"args": ["-y", "scholar-feed-mcp@latest"]
}
}
}
Continue uses YAML, with mcpServers as a list, in ~/.continue/config.yaml (global) or .continue/config.yaml (workspace).
mcpServers:
- name: scholar-feed
type: stdio
command: npx
args:
- "-y"
- scholar-feed-mcp@latest
Project-scoped (.mcp.json), to share the server across a repo:
{
"mcpServers": {
"scholar-feed": {
"command": "npx",
"args": ["-y", "scholar-feed-mcp@latest"],
"env": { "SF_API_KEY": "${SF_API_KEY}" }
}
}
}
Windows: for any JSON config above, use "command": "cmd" and "args": ["/c", "npx", "-y", "scholar-feed-mcp@latest"].
Scholar Feed is a standard stdio MCP server, so any other MCP-compatible client works with the standard block too.
Available Tools (27)
Core Search & Discovery
Authors
Embeddings
Research
Library, Collections, Watches & Gap Analysis (require SF_API_KEY)
These MUTATE or read the authenticated user's account. The core read/search tools above work anonymously; these need a key.
Novelty Score
Every paper has an llm_novelty_score from 0.0 to 1.0:
Use novelty_min: 0.5 in search_papers to filter for genuinely novel work.
Rate Limits
Responses include X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers.
Monthly volume quota (separate from the per-minute limits above, counted per account across all your keys): 200 calls/month anonymous (per IP), 500/month with a free key, 10,000/month on Pro. A smaller daily cap (100 / 200 / 2,000) sits underneath it as a burst guardrail so a runaway loop cannot spend a month in an hour; hitting it returns a 429 with scope: "burst" and leaves your monthly quota untouched. Read your remaining month from GET /v1/health (monthly_limit / usage_this_month) before a batch.
The AI synthesis tools have their own limits: ask_library is 20/month free, then 200/day on Pro; find_gaps is Pro-only (a 403 pro_required otherwise). embed_text needs an account of any tier — anonymous callers get a 403 account_required.
Example Response
search_papers with q: "attention mechanism" returns:
{
"papers": [
{
"arxiv_id": "2401.04088",
"title": "Attention Is All You Need (But Not All You Get)",
"authors": ["A. Researcher", "B. Scientist"],
"year": 2024,
"categories": ["cs.LG", "cs.AI"],
"primary_category": "cs.LG",
"arxiv_url": "https://arxiv.org/abs/2401.04088",
"has_code": true,
"github_url": "https://github.com/example/repo",
"citation_count": 42,
"rank_score": 0.73,
"llm_summary": "Proposes a sparse attention variant that reduces compute by 60% while matching dense attention accuracy on 5 benchmarks.",
"llm_novelty_score": 0.55
}
],
"total": 1847,
"page": 1,
"limit": 20,
"next_cursor": "eyJzIjogMC43MywgImlkIjogIjI0MDEuMDQwODgifQ=="
}
Pass next_cursor back to get the next page (keyset pagination, which is more stable than page numbers for large result sets).
Environment Variables
Development
npm install
npm run build # Build to build/
npm run dev # Watch mode
npm run typecheck # Type check without emitting
npm test # Run tests
Contributing
See CONTRIBUTING.md for guidelines.
Troubleshooting
"Authentication failed: your SF_API_KEY is invalid" The key may have been revoked. Generate a new one at scholarfeed.org/settings. Or remove the key to use anonymous mode.
"Rate limit exceeded" or "Anonymous daily limit exceeded" Anonymous mode allows 200 calls/month. Get a free API key at scholarfeed.org/settings for 500 calls/month per account, plus your library.
Server shows as "failed" with no error — especially right after an update
The first launch (and the first launch after each new release) makes npx download the package. The published bin is a single self-contained file with no dependency tree to resolve, so this is fast — but on a slow link it can still outrun your client's start-up timeout, and the server then shows as "failed" with no detail. Fixes: (1) warm the cache by running it once in a terminal — npx -y scholar-feed-mcp@latest --version — then restart your client; (2) raise the MCP start-up timeout if your client supports it (Claude Code: MCP_TIMEOUT=60000). For the fastest, offline-capable launches, install once globally and point the config at it instead of npx:
npm install -g scholar-feed-mcp
# then in your MCP config: "command": "scholar-feed-mcp", "args": []
Tool calls time out or fail silently
Ensure Node.js 18+ is installed (node --version). Older versions lack the native fetch API.
Stale npx cache
The config blocks above pin scholar-feed-mcp@latest, which re-resolves the newest version each launch. If you previously used an unpinned scholar-feed-mcp and are stuck on an old build: npx --yes scholar-feed-mcp@latest.
Windows: "command not found"
Use "command": "cmd" with "args": ["/c", "npx", "-y", "scholar-feed-mcp@latest"] in your MCP config.
About Scholar Feed
Scholar Feed is a research-discovery engine for computer science and AI/ML papers, founded in 2025. It indexes 600,000+ papers from arXiv — ranked by novelty, citation velocity, and relevance — with LLM-generated summaries, a citation graph, author profiles, and full-text extraction. It is available as a website, a public REST API, and a Model Context Protocol (MCP) server that AI agents can call directly. This package (scholar-feed-mcp) is the open-source MCP server.
- Website: https://www.scholarfeed.org
- npm: https://www.npmjs.com/package/scholar-feed-mcp
- REST API: https://api.scholarfeed.org/v1
Privacy
See our privacy policy.