# Ygao2005 Scholar Feed MCP server

Source: https://glimind.com/server/mcp-registry%2Fio.github.ygao2005%2Fscholar-feed-mcp
Registry id: `mcp-registry/io.github.ygao2005/scholar-feed-mcp`
Status: live (checked 2026-10-27T01:48:09.218Z)

## Verdict

Ygao2005 Scholar Feed MCP server answered 100% of Glimind's liveness checks over 30 days, better than 42% of MCP servers, with 505 ms median handshake and 0 outages in 90 days. Its agent-readiness grade is A (98/100) across 27 tools, costing an agent about 12,447 tokens to load. Checked every few minutes; no tool is ever called.

## Measurements (30 days)

| Metric | Value | Better than |
|---|---|---|
| Uptime, 30 days | 100% | 42% of MCP servers |
| Median handshake latency | 505 ms | 50% of MCP servers |
| p95 handshake latency | 2672 ms | — |
| Checks in 30 days | 4,884 | — |
| Outages, 90 days | 0 | — |
| Median recovery | — | — |
| Agent-readiness score | 98/100 (A) | 92% of MCP servers |
| Tools | 27 | — |
| Tool-list size for an agent | ~12,447 tokens | 15% of MCP servers |
| Days observed | 29 | — |

## Install

```json
{
  "mcpServers": {
    "ygao2005-scholar-feed-mcp-server": {
      "type": "http",
      "url": "https://mcp.scholarfeed.org/mcp?src=mcp-registry"
    }
  }
}
```

Claude Code:

```sh
claude mcp add --transport http ygao2005-scholar-feed-mcp-server https://mcp.scholarfeed.org/mcp?src=mcp-registry
```

## Tools (27)

- `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_n
- `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)
- `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_g
- `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
- `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; om
- `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
- `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
- `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
- `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 / no
- `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'
- `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 pape
- `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
- `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-g
- `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' = inco
- `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
- `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', of
- `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. Pa
- `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
- `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.
- `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 sav
- `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 
- `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 c
- `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 collectio
- `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 strong
- `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. 
- `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: t
- `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 cri

Measured by Glimind (https://glimind.com): MCP handshake + tool list only, no tool is ever called. CC BY 4.0.
