Semantic search and citation graph traversal for 600k+ CS/AI papers with ranking, summaries, and BibTeX export.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Scholar Feed MCP.
search_papersSearch Scholar Feed's 600k+ CS/AI/ML paper corpus. Defaults to semantic (embedding) search — finds conceptually related papers even when the user's wording doesn't match the paper's title/abstract. Pass mode='keyword' for exact-string full-text search. CAVEAT: semantic search often misses old high-citation CANONICAL papers (e.g. foundational anchors like H2O for KV eviction, GRIT for unified embedding+generation) because the ranker prefers recent stylistically-matched papers. If you're hunting the canonical anchor for an area, parse the top-5 result abstracts for baseline mentions ('we compare against X, Y, Z'), then look the most-mentioned name up directly. Returns papers with LLM-generated summaries, novelty scores, and structured extraction data. Default response is a lean 13-field shape (arxiv_id, title, authors, year, categories, has_code, github_url, citation_count, venue_name, llm_summary, llm_significance, llm_novelty_score, impact_pct) — pass verbose=true or fields=... for the full shape with method/task/dataset extraction. RANKING BY IMPACT — two different notions, don't confuse them: (1) PROVEN impact = citations. For 'the important/seminal papers on topic X', pass sort='impactful' (most-cited among the relevant) or sort='balanced' (relevant AND well-cited). This is the right tool for established/foundational work. (2) FORECAST impact = impact_pct (0-100), an ML percentile of PREDICTED citations computed WITHIN a paper's own arXiv-category cohort over the last ~90 days — so it is a cohort-relative rank, not an absolute score: impact_pct=100 means 'top of its category this window', which in a quiet category is a much weaker claim than in a busy one. (An A+/A/B/C/D impact_tier field was previously returned alongside it; it was removed because a single global cutoff ladder could not be calibrated honestly across both fresh and mature papers. Do not expect it, and do not treat any letter grade you may have cached as current.) For 'what's rising/new in X' pass sort='trending' or filter impact_min=N — but NOTE impact_pct is NULL on everything older than ~90 days, so impact_min DROPS all established/canonical papers (it is NOT a way to find the influential papers in a niche — use sort='impactful' for that). Both impact notions are distinct from llm_novelty_score (new-idea-ness, an orthogonal filter). (3) ADOPTION impact = GitHub traction. Pass sort='community' to rank by real-world engineering adoption (stars + star-velocity) — the papers practitioners are actually running/building on, a signal independent of citations. But NOTE its coverage: github_stars is 0-defaulted, so an unmeasured repo is INDISTINGUISHABLE from a genuinely unstarred one (it reads as 0 stars, not NULL), and star coverage is heavily skewed toward recently-published papers — most older papers with a repo have never had stars fetched, so their real popularity is invisible here. sort='community' therefore buries established/canonical work rather than ranking it low on merit. Treat a 0 as 'unknown', not 'unpopular', and use sort='impactful' or min_citations for older work. Coverage is being backfilled, so this skew shrinks over time; never infer a paper is unadopted from a 0. Filter on it with min_stars=N (minimum GitHub stars) and has_code=true (only papers with a code release); has_code/min_stars surface RUNNABLE/ADOPTED work, the engineering counterpart to citations. github_url_exists=true is the stricter has_code (requires a linked repo). Supports filtering by category, novelty, recency, method, task, dataset, and contribution type — plus min_citations (minimum PROVEN citations, keeps established papers unlike the ~90-day impact_min) and an explicit date window via published_after / published_before ('YYYY-MM-DD', vs days' rolling lookback). v3 ABSORPTIONS: pass sort='trending' to rank by rising/forecast impact (impact_pct); pass anchor_paper_id to replicate find_similar (q is ignored in anchor mode, results carry similarity_score); pass scope_to_citations_of to restrict search to a paper's citation graph (replaces find_citations_about).
get_paperGet full details for one or more papers by arXiv ID. Pass a single-element array for one paper; pass multiple IDs to batch-fetch up to 50 papers in one call (replaces the removed batch_lookup tool). Pass format='bibtex' to get a .bib citation entry (replaces the removed export_bibtex tool — bibtex is single-paper only; for multi-paper bibtex, call repeatedly). Default returns a lean 13-field shape (arxiv_id, title, authors, year, categories, has_code, github_url, citation_count, venue_name, llm_summary, llm_significance, llm_novelty_score, impact_pct — where impact_pct is the ML-forecast impact percentile 0-100 computed WITHIN the paper's own arXiv-category cohort, so it is a cohort-relative rank rather than an absolute score, and is NULL on older papers outside the recent ~90-day scoring window. A companion A+/A/B/C/D impact_tier was previously returned; it was removed because one global cutoff ladder could not be calibrated honestly across both fresh and mature papers). Pass verbose=true for the full shape with structured extraction (method_name, contribution_type, task_category, datasets, baselines) and institution_tags. Use fields='arxiv_id,title,abstract' to select an exact subset, or fetch_fulltext with sections='all' for the full paper.
get_citationsGet the citation graph for a paper, sorted by citing-paper rank_score (highest-impact first). 'citing' = outgoing references this paper cites; 'cited_by' = incoming citations from other papers. Default response is a lean 12-field shape per paper — pass verbose=true for the full 28-field shape.
fetch_fulltextExtract paper content from an arXiv paper's LaTeX source, falling back to PDF text. Two modes: 'results' (default) returns ~800 chars of results/experiments + up to 3 table captions — lean, ideal for checking a reported number. 'all' returns full paper sections (abstract, introduction, related work, method, results, conclusion) at up to 3000 chars each + 5 table captions, ~15KB, so prefer 'results' unless you need the whole paper. Content is available for ~95% of arXiv papers; a 404 means neither LaTeX nor PDF extraction yielded text. May take a few seconds.
find_authorTwo-mode author tool — replaces discover_authors and get_author. Provide exactly one of q or id. Q-MODE (q=...): search for researchers by topic or name — uses embedding similarity for topics ('efficient LLM inference'), fuzzy matching for names ('Yann LeCun'). Returns a list of matching authors with author_id, name, h_index, total_papers, primary_field, research_topics. ID-MODE (id=...): look up a single author profile by author_id (obtained from a previous q-mode call or from co_author_graph results). Returns h-index, total citations, global rank, primary field, novelty score distribution, research topics, code/venue scores, years active, and their top 10 papers by rank score.
co_author_graphFind the co-authorship neighborhood of one or more authors. Given a list of author_ids, returns edges {from, to, papers_count, last_collab_year} where 'from' is one of the input authors and 'to' is any co-author appearing on a shared paper within the window. Use for AC reviewer triage (find conflicts), disambiguating researchers (who do they actually work with?), or expanding an author seed into a research community. window_years defaults to 10. Result is capped at 500 edges, sorted by papers_count DESC.
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.
This interactive wizard will:
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"
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."
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:
Every other client takes this standard JSON block:
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:
| Client | Config file | Notes |
|---|---|---|
| Cursor | .cursor/mcp.json (project) or ~/.cursor/mcp.json (global) | Restart Cursor. |
| Claude Desktop | macOS: ~/Library/Application Support/Claude/claude_desktop_config.json; Windows: %APPDATA%\Claude\claude_desktop_config.json | Settings → Developer → Edit Config, then restart. |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | Cascade → MCP icon → Configure, then refresh. |
| Cline / Roo Code | cline_mcp_settings.json | MCP Servers sidebar icon → Configure. Cline and Roo Code share this format. |
| Gemini CLI | ~/.gemini/settings.json (or project .gemini/settings.json) | |
| LM Studio | ~/.lmstudio/mcp.json | Program tab → Install → Edit mcp.json. Follows Cursor's notation. |
| JetBrains (PyCharm / IntelliJ) | AI Assistant → MCP → Add → As JSON | Requires AI Assistant 2025.1+. |
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.
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.
Zed (settings.json) uses a context_servers key, and the "source": "custom" line is required (without it, Zed silently skips the entry).
Continue uses YAML, with mcpServers as a list, in ~/.continue/config.yaml (global) or .continue/config.yaml (workspace).
Project-scoped (.mcp.json), to share the server across a repo:
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.
| Tool | Description | Key Parameters |
|---|---|---|
search_papers | Semantic + keyword search with filters. Also does similar-paper discovery, citation-scoped search, and trending. | q, category, novelty_min, days, sort, anchor_paper_id, scope_to_citations_of, mode, method_category, task, dataset, contribution_type, task_category, cursor, limit |
get_paper | Get full paper details by arXiv ID. Also handles batch lookup and BibTeX export. | arxiv_ids, format, fields, verbose |
get_citations | Citation graph (outgoing refs or incoming citations) | arxiv_id, direction, limit, fields |
fetch_fulltext | Read a paper's text by section (abstract, introduction, related_work, method, results, conclusion, or all). Pass arxiv_ids to read up to 8 papers in one call; a paper that cannot be extracted comes back as a failed entry, not a failed call. | arxiv_id, arxiv_ids, sections |
| Tool | Description | Key Parameters |
|---|---|---|
find_author | Find researchers by topic/name query, or retrieve a profile by ID. | q, id, field, limit |
co_author_graph | Co-authorship neighborhood for an author | author_ids, window_years |
| Tool | Description | Key Parameters |
|---|---|---|
embed_text | Get a 768-dim Gemini embedding for text (for HyDE and custom similarity). Pro-only, so anonymous/free callers get a 403 pro_required. | text, task_type |
| Tool | Description | Key Parameters |
|---|---|---|
get_field_orientation | Cheap retrieval orientation for a research area: top papers, subfields, open problems. No Pro quota. | topic, limit |
get_foundational_lineage | Foundational work for a paper's niche via the citation graph (consensus-then-lift): niche_roots → field_level → discipline, with cited_by_in_niche evidence. Surfaces canonical anchors semantic search misses. No Pro quota. | anchor_paper_id, scope, generality_ceiling, limit |
check_drift | "Is the method I use superseded — and by what?" Critique receipts + benchmark-dominance edges over ~10 LLM builder-problem families. No Pro quota. | family, method, limit |
SF_API_KEY)These MUTATE or read the authenticated user's account. The core read/search tools above work anonymously; these need a key.
Factual signals from GitHub, npm, and our automated checks — not a rating.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/ygao2005-scholar-feed-mcp)<a href="https://allmcps.com/mcp/ygao2005-scholar-feed-mcp"><img src="https://allmcps.com/api/badge/ygao2005-scholar-feed-mcp?style=directory" alt="Scholar Feed MCP on AllMCPs" /></a>