MCP serverio.github.YGao2005/scholar-feed-mcp
Rank CS/AI/ML papers by citations, forecast impact, or code adoption; trace 23.2M citation edges.
Overview
Score?
UNRATED 0.675
of what a free look can see, on 29 looks
Looks
29
last 6 hr ago
Tools
27
changed 5 days ago
More info
URL
mcp.scholarfeed.org/mcp?src=mcp-registry
streamable-http
Says it is
scholar-feed 3.20.0
protocol 2025-06-18
In the record since
27 days ago
Among servers18,413 with a card
0median 0.606 · this server 0.675 · highest on record 0.8561
Toolsfrom sha256:48f4782a6c…b40afd · +0 −0 5 days ago
| Tool | Schema |
|---|---|
| add_to_collection Add a paper to a collection, addressed by collection_id OR collection_name (get-or-create by name — no need to look up an id first). Nest with "/": collection_name "AgentOPA/Formal |
input · output |
| annotate_paper Record YOUR verdict on a paper — why it matters for your work, when to use it, or why you ruled it out. One note per paper, upserted (writing again replaces it), so it is safe to c |
input · output |
| ask_library Answer a question using ONLY the papers you've saved — a synthesis over your library (or one collection) with inline [arXiv-ID] citations. The inverse of find_gaps (which finds imp |
input · output |
| check_drift Answers 'for my problem, is the method I use superseded — and by what?' over a grounded, entity-resolved knowledge base of textual critique receipts + benchmark-dominance edges (no |
input · output |
| check_watches Pull new matching papers since the last digest delivery, in the same shape as search_papers results. Optionally scope to one watch by watch_name OR watch_id; omit both for all watc |
input · output |
| co_author_graph Find 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 au |
input · output |
| create_collection Create a new named collection. MUTATES. If a collection with that name already exists, returns the existing one (get-or-create — never errors on duplicate). Use "/" to nest under a |
input · output |
| create_watch Create a standing watch — evaluated daily against newly-indexed papers, surfacing new matches via the email digest and via check_watches. MUTATES. Get-or-create by name (re-creatin |
input · output |
| delete_watch Delete a watch, addressed by watch_id OR name. MUTATES. Idempotent: deleting a non-existent watch is a no-op (no error). To change a watch in place (rename / novelty_min / retarget |
input · output |
| embed_text Embed a text string into a 768-dim Gemini Flash vector. Use for HyDE-style retrieval: (1) write a hypothetical short paper that would perfectly answer the user's query, (2) embed i |
input · output |
| fetch_fulltext Read arXiv papers' actual text, by section. Section selection controls context cost: ask for the one or two you need, not whole papers — 'all' is ~13.5KB a paper, 8 of them ~108KB. |
input · output |
| find_author Two-mode author tool. 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'), fu |
input · output |
| find_gaps Find important work you HAVEN'T saved, for a collection or topic — a 'what am I missing?' analysis. Returns two buckets: foundational_gaps (canonical citation-graph anchors in the |
input · output |
| get_citations Get 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 |
input · output |
| get_field_orientation Returns CANDIDATE FOUNDATIONAL PAPERS for a research topic — cheap retrieval only, no synthesis. Ranks papers by a blend of citation count (0.6 weight, captures importance) and sem |
input · output |
| get_foundational_lineage Returns the FOUNDATIONAL WORK FOR A PAPER'S NICHE via the citation graph — the relative question ('what is foundational for THIS paper's specific sub-field', often itself only mode |
input · output |
| get_paper Get 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. Pass format='bibtex' t |
input · output |
| like_paper Like a paper — a 'more like this' calibration signal that tunes the user's For You feed toward similar work. INSERT-only and idempotent (liking twice is a no-op, never un-likes). D |
input · output |
| list_collections List the authenticated user's collections (named groups of saved papers) with paper counts. Read-only. Use before add_to_collection to see existing collections. Requires SF_API_KEY |
input · output |
| list_library List the authenticated user's saved papers (their library), newest first. Read-only. Use this to review a reading list or to see what's already saved before saving more. Requires S |
input · output |
| list_watches List the authenticated user's watches with name, a one-line definition summary, last_evaluated_at, and pending_hits (count of new matches since the last digest delivery). Read-only |
input · output |
| preview_watch Dry-run a structured filter over recent papers WITHOUT creating a watch — the tuning loop. Returns {window_days, needs_similarity, match_count, sample} so you can iterate (add a ca |
input · output |
| remove_from_collection Remove a paper from a collection, addressed by collection_id OR collection_name. MUTATES (the paper stays in your library; it's only removed from this collection). Idempotent. Requ |
input · output |
| save_paper Save a paper to the authenticated user's Scholar Feed library (bookmark). MUTATES the library and feeds the user's personalization — saved papers are the strongest signal in the Fo |
input · output |
| search_papers Search Scholar Feed's 600k+ CS/AI/ML paper corpus. Semantic (embedding) search by default, so it finds conceptually related work even when the wording differs. EVERY PARAMETER DOCU |
input · output |
| unsave_paper Remove a paper from the authenticated user's Scholar Feed library. MUTATES the library. Idempotent: removing a paper that isn't saved leaves it unsaved. Note: the saved library is |
input · output |
| update_watch Update an existing watch in place — rename, change novelty_min, or RETARGET its structured filter `criteria`. MUTATES. Address by watch_id OR name. Changing criteria replaces the d |
input · output |
Verify it yourself
npx teppi-check https://mcp.scholarfeed.org/mcp?src=mcp-registrycurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M1X6NYSC4JM0XGCA9RBTR04M