YGao2005/scholar-feed-mcp

YGao2005/scholar-feed-mcp

от ygao2005
MCP-сервер для поиска более 600 000 научных статей по CS/AI/ML с LLM-анализом новизны. Помогает исследователям проводить литературный обзор и отслеживать тренды прямо в Claude Code или Cursor.

Scholar Feed

Scholar Feed MCP Server

CI npm version Node License: MIT smithery badge

Search 600,000+ CS/AI/ML research papers with LLM-generated novelty analysis, without leaving Claude Code, Cursor, or any MCP client. Built for researchers running a literature review where they already work: search, trace citations, pull full text, and export BibTeX in the same session.

Scholar Feed indexes arXiv papers daily and ranks them using a multi-signal scoring system (recency, citation velocity, institutional reputation, code availability). Each paper has an LLM-generated summary and novelty score.

Quick Start

npx scholar-feed-mcp@latest init

This interactive wizard will:

  1. Optionally ask for an API key (or skip for anonymous access)
  2. Detect your MCP client (Claude Code, Cursor, or Claude Desktop)
  3. Write the config and verify the connection

No API key required. Anonymous access gives you 100 calls/day, enough for a typical research session. For higher limits (1,000/day per account), get a free key at scholarfeed.org/settings.

Try asking: "Search for recent papers on test-time compute scaling"

Инструменты были проиндексированы:
add_to_collection

Добавляет статью в коллекцию, адресуемую по collection_id ИЛИ collection_name (получить-или-создать по имени — не нужно сначала искать id). Вложенность через "/": имя коллекции "AgentOPA/Formal" помещает статью в папку "AgentOPA". МУТИРУЕТ: также автоматически сохраняет статью в библиотеку. Идемпотентна (добавление уже находящейся в коллекции статьи ничего не делает). Требует SF_API_KEY.

Добавить в коллекцию

Параметры
  • arxiv_idstringобязательный

    arXiv ID of the paper to add, e.g. '2407.15831'.

  • collection_idstring

    UUID of an existing collection. Provide this OR collection_name.

  • collection_namestring

    Name of the collection. Created if it doesn't exist. Use '/' to nest, e.g. 'AgentOPA/Formal'. Provide this OR collection_id.

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 call repeatedly. Requires SF_API_KEY. WHY IT MATTERS: this note is the only thing that survives between sessions. list_library returns note_text on every saved paper, so a verdict written now is what a future session reads INSTEAD of re-reading the paper and re-deriving the same conclusion. WRITE A JUDGMENT, NOT A SUMMARY — the paper already carries llm_summary and an abstract, so restating what the paper says adds nothing. Write what those cannot: how it bears on YOUR problem. Prefer a claim someone could later prove wrong ("needs a labeled trace log we don't have", "our baseline — beat this on the 7B setting") over an unfalsifiable verdict ("interesting", "not very relevant"), because a mechanism can be re-checked when circumstances change and a sentiment cannot. State the basis when it is thin: a verdict formed from the abstract alone deserves "(abstract only)", since fetch_fulltext defaults to ~800 characters of the results section rather than the whole paper. Pass action='get' to read the existing note before overwriting it — worth doing when a prior session may already have judged this paper. To correct a note, just write the corrected text (it replaces).

Аннотирует статью

Параметры
  • actionenum

    'upsert' (default) writes/replaces the note. 'get' returns the current note without changing it. There is deliberately no delete: a wrong note is corrected by overwriting it, which keeps this tool non-destructive.

  • arxiv_idstringобязательный

    arXiv ID of the paper to annotate, e.g. '2407.15831'.

  • note_textstring

    Your verdict (max 5000 chars). Required for the default upsert; ignored for action='get'.

ask_libraryтолько чтение

Отвечает на вопрос, используя ТОЛЬКО сохранённые статьи - синтез по вашей библиотеке (или одной коллекции) со встроенными цитатами [arXiv-ID]. Обратная функция для find_gaps (которая находит важные работы, которых вам НЕ ХВАТАЕТ): ask_library рассуждает на основе того, что У ВАС ЕСТЬ. Опционально ограничивает область одной коллекцией (collection_name или collection_id); если опустить оба, используется вся библиотека. Только чтение. Требует SF_API_KEY (читает ваш сохранённый набор). Бесплатные аккаунты получают 1 вопрос в месяц; Pro увеличивает это до 200 в день.

Ask Library

Параметры
  • collection_idstring

    Scope the answer to one collection by UUID. Omit to use your whole library.

  • collection_namestring

    Scope the answer to one collection by name (resolved by the backend). Omit to use your whole library.

  • limitinteger

    How many of your most-relevant saved papers to ground the answer on (max 20). Default 8.

  • questionstringобязательный

    The natural-language question to answer from your saved papers.

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 LLM call at query time). Call with a family (e.g. 'rag', 'peft', 'kvcache') and a method (e.g. 'SnapKV', 'LoRA') to get a verdict: how superseded it is, WHO critiques it (verbatim quotes + the citing paper), WHO beats it on benchmarks (winner, numbers, condition, source paper), and the not-yet-superseded alternatives in the same sub-problem. Omit method to get the whole-family map: most-superseded baselines, competition sub-problems, and the live frontier. Method names are matched case- and spacing-insensitively, with did-you-mean suggestions on a miss. Use this when choosing or reviewing a technique for a known problem area, or to check whether a baseline a paper relies on has been beaten. Does not require a Pro API key. Covers ~10 builder-problem families and growing; the family parameter lists them, or pass family='list' for the live set. Coverage caveat: evidence is drawn only from arXiv benchmark tables, so 'superseded' means a method was beaten in a published comparison (not that it is dead or unusable), production frameworks (LangChain, LlamaIndex, etc.) appear only as baselines and never as winners, and results are a literature signal rather than a deployment recommendation. GROUNDING — how far to trust an individual receipt: every claim passes a deterministic gate against the source paper's raw LaTeX (a critique must carry a verbatim quote shingle found in the source; a benchmark edge must have every one of its numbers present there), so a fabricated quote or table cell cannot enter the KB. What the gate does NOT verify is ATTRIBUTION: the quote is real but its subject may be class-level or a pronoun ('these methods', 'they') rather than the named method, so tying a receipt to one specific method is sometimes an inference. No end-to-end precision number has been measured on this endpoint — read the verbatim quote and its citing paper before repeating a verdict, and cite the source rather than asserting supersession as fact.

Проверить Drift (мой метод устарел?)

Параметры
  • familystring

    Builder-problem family to query, e.g. 'rag' (retrieval-augmented generation), 'peft' (parameter-efficient fine-tuning), 'kvcache' (KV-cache compression). Omit it (or pass an unknown family like 'list') to get the live list of available families to pick from — start here if you don't know the family for a method.

  • limitinteger

    Max items per list — receipts, dominance edges, frontier (3–50, default 12).

  • methodstring

    Method to check, e.g. 'SnapKV', 'H2O', 'StreamingLLM' (case/spacing-insensitive). Omit to get the whole-family map instead of a single-method verdict.

check_watchesтолько чтение

Получает новые подходящие статьи с момента последней доставки дайджеста в том же формате, что и результаты search_papers. Опционально ограничивает область одним наблюдением по watch_name или watch_id; если оба опущены — применяет ко всем наблюдениям. Только для чтения и идемпотентный — НЕ продвигает никакой watermark (только доставка дайджеста делает это), поэтому его можно безопасно вызывать многократно (без отметки о прочтении). Это внутрисессионный запрос «что нового в моих наблюдениях?». Требует SF_API_KEY.

Проверяет часы

Параметры
  • limitinteger

    Max hits to return (max 100).

  • watch_idstring

    Scope to one watch by UUID. Provide this OR watch_name, or neither for all.

  • watch_namestring

    Scope to one watch by name. Provide this OR watch_id, or neither for all.

co_author_graphтолько чтение

Находит окрестность соавторства одного или нескольких авторов. Получает список author_ids, возвращает ребра {from, to, papers_count, last_collab_year}, где 'from' — один из входных авторов, а 'to' — любой соавтор, появившийся в совместной статье в пределах окна. Используется для сортировки рецензентов AC (поиск конфликтов), уточнения исследователей (с кем они на самом деле работают?) или расширения начального набора авторов до исследовательского сообщества. window_years по умолчанию 10. Результат ограничен 500 ребрами, отсортирован по papers_count DESC.

Co-Author Graph

Параметры
  • author_idsinteger[]обязательный

    Author IDs to query (1-25). Get author IDs via the find_author tool.

  • window_yearsinteger

    Only count co-authorships from the last N years (default 10, max 30).

create_collection

Создаёт новую именованную коллекцию. MUTATES. Если коллекция с таким именем уже существует, возвращает существующую (get-or-create — никогда не вызывает ошибку при дубликате). Используйте "/" для вложения в папку, например "AgentOPA/Formal" — папка определяется из имени, поэтому не нужно сначала создавать родительскую. Требуется SF_API_KEY.

Создаёт коллекцию

Параметры
  • namestringобязательный

    Name for the collection, e.g. 'KV-cache compression'. Use '/' to nest: 'AgentOPA/Formal' files it under an 'AgentOPA' folder.

create_watch

Создаёт постоянное наблюдение - ежедневно проверяется по вновь проиндексированным статьям, выводит новые совпадения через дайджест по электронной почте и через check_watches. МУТИРУЕТ. Получает или создаёт по имени (повторное создание с существующим именем возвращает его без изменений - никогда не выдаёт ошибку при дубликате). ДВЕ формы: (1) структурированный фильтр v2 через criteria (collections/authors/categories/text/has_code/min_novelty/similar, объединённые по И) - компонуемая, настраиваемая агентом форма, рекомендуется; сначала настройте с помощью preview_watch, а затем отредактируйте через update_watch. Структурированные наблюдения по умолчанию ранжируются по 'rising' (прогнозируемый прорывной импакт) и ужесточаются с помощью min_impact_pct для наблюдения, фильтрующего шум и показывающего только прорывные статьи в вашей нише. (2) один устаревший селектор-источник (q ИЛИ collection_name ИЛИ collection_id ИЛИ anchor_paper_id); если указан criteria, он имеет приоритет. Требуется SF_API_KEY.

Создаёт наблюдатель

Параметры
  • anchor_paper_idstring

    Watch papers similar to this arXiv ID. One seed selector only.

  • author_idstring

    Watch an author's new work, by author ID. One seed selector only.

  • categorystring

    Watch an arXiv category (e.g. 'cs.LG'), filtered by novelty_min. One seed selector only.

  • collection_idstring

    Watch the neighborhood of a collection by UUID. One seed selector only.

  • collection_namestring

    Watch the neighborhood of a collection by name (resolved by the backend). One seed selector only.

  • criteriaobject

    v2 STRUCTURED filter (collections/authors/categories/text/has_code/min_novelty/similar). When provided, this defines the watch (kind='filter') and the single-selector seeds above are IGNORED. This is the composable, agent-tunable form — call preview_watch first to tune it.

  • namestringобязательный

    Label for the watch, e.g. 'novel KV-cache work'.

  • novelty_minnumber

    Only surface papers at/above this novelty score (0..1). The signal/noise knob — raise it for 'only tell me when it matters'. Default 0.5.

  • qstring

    Semantic/keyword topic seed. One seed selector only.

  • recency_daysinteger

    For a structured (criteria) watch: only consider papers from the last N days (default 7; the 'cites' relation uses 30).

  • scope_to_citations_ofstring

    Watch new papers citing this arXiv ID. One seed selector only.

delete_watch

Удаляет отслеживание, заданное по watch_id ИЛИ имени. ИЗМЕНЯЕТ. Идемпотентно: удаление несуществующего отслеживания не выполняет никаких действий (без ошибки). Чтобы изменить отслеживание на месте (rename / novelty_min / retarget criteria), используйте update_watch вместо delete-and-recreate. Требует SF_API_KEY.

Удалить отслеживание

Параметры
  • namestring

    Name of the watch to delete. Provide this OR watch_id.

  • watch_idstring

    UUID of the watch to delete. Provide this OR name.

embed_textтолько чтение

Встраивает текстовую строку в 768-мерный вектор Gemini Flash. Используется для поиска в стиле HyDE: (1) создаёт гипотетическую короткую статью, которая идеально отвечает на запрос пользователя, (2) встраивает её с task_type='RETRIEVAL_DOCUMENT' (по умолчанию — соответствует стороне эмбеддингов корпуса), (3) передаёт полученный эмбеддинг обратно через инструменты поискового типа, чтобы найти реальные статьи, ближайшие к гипотетической. task_type='RETRIEVAL_QUERY' соответствует стороне запроса и полезен для прямого встраивания запроса пользователя без HyDE. Только для Pro — требует SF_API_KEY на аккаунте Pro; анонимные и бесплатные вызывающие получают ошибку 403 pro_required. Стоимость: ~$0,0001 за вызов; ограничение скорости: 30 запросов в минуту на один ключ API.

Встраивает текст

Параметры
  • task_typeenum

    RETRIEVAL_DOCUMENT (default) matches paper-side embeddings — use for HyDE. RETRIEVAL_QUERY matches query-side semantic search.

  • textstringобязательный

    Text to embed (1-8000 chars). For HyDE flows this is your hypothetical answer/abstract.

fetch_fulltextтолько чтение

Читает фактический текст статей arXiv по разделам. Выбор раздела управляет расходом контекста: запрашивайте один или два нужных раздела, а не всю статью: «all» это примерно 13,5 КБ на статью, а для 8 статей около 108 КБ. Названия разделов выводятся автоматически: проверьте low_confidence_sections, прежде чем считать какой-то раздел собственным заголовком статьи. Источником служит HTML arXiv с разметкой разделов, затем LaTeX, затем PDF; код 404 означает, что все три варианта не сработали.

Получает полный текст

Параметры
  • arxiv_idstring

    arXiv ID of one paper.

  • arxiv_idsstring[]

    Up to 8 arXiv IDs, one entry per paper. sections is required past one ID.

  • sectionsenum | enum[]

    One section name or an array. Defaults to 'all' for one paper; no default for a batch.

find_authorтолько чтение

Двухрежимный инструмент для работы с авторами. Укажите ровно один из параметров: q или id. Q-MODE (q=...): ищет исследователей по теме или имени. Использует сходство эмбеддингов для тем ('efficient LLM inference') и нечёткое сопоставление для имён ('Yann LeCun'). Возвращает список подходящих авторов с полями author_id, name, h_index, total_papers, primary_field, research_topics. ID-MODE (id=...): получает профиль одного автора по author_id (полученному из предыдущего вызова в режиме q-mode или из результатов co_author_graph). Возвращает h-index, общее количество цитирований, глобальный рейтинг, основную область, распределение оценок новизны, исследовательские темы, оценки code/venue, годы активности и топ-10 статей автора по рейтинговому баллу.

Находит автора

Параметры
  • fieldstring

    (q-mode only) Filter by primary research field e.g. 'cs.LG', 'cs.CV', 'cs.CL'.

  • idinteger

    Author ID for direct profile lookup (id-mode). Returns the single author profile with top 10 papers. Get IDs from q-mode results or co_author_graph.

  • limitinteger

    (q-mode only) Max results to return (default 20).

  • qstring

    Topic or researcher name to search (q-mode). Returns a list of matching authors. Examples: 'efficient transformer training', 'Geoffrey Hinton'.

find_gapsтолько чтение

Находит важные работы, которые вы НЕ СОХРАНИЛИ для коллекции или темы: анализ «что я упускаю?». Возвращает две категории: foundational_gaps (канонические якоря графа цитирования в нише, отсутствующие в вашей библиотеке) и frontier_gaps (недавние высокооригинальные работы в нише, ещё не сохранённые). Принимает ровно один источник: collection_name, collection_id или topic. Бэкенд определяет нишу, выполняет поиск по цепочке цитирования и недавним новинкам, а затем вычитает ваше сохранённое множество. Только для чтения. Требует SF_API_KEY (он нужен для вычитания вашей библиотеки) и доступен только в Pro, бесплатные аккаунты увидят предложение обновить тариф.

Find Research Gaps

Параметры
  • collection_idstring

    Analyze gaps for a collection by UUID. Provide exactly one seed.

  • collection_namestring

    Analyze gaps for a collection by name (resolved by the backend). Provide exactly one seed.

  • limitinteger

    Max gaps per bucket (max 50). Default 10.

  • scopeenum

    Which gaps to surface: 'foundational' (canonical anchors you're missing), 'frontier' (recent novel work you haven't saved), or 'both' (default).

  • topicstring

    Analyze gaps for a free-text topic/area. Provide exactly one seed.

get_citationsтолько чтение

Получает граф цитирования для статьи, отсортированный по rank_score цитирующей статьи (сначала с наибольшим влиянием). 'citing' = исходящие ссылки, которые цитирует эта статья; 'cited_by' = входящие цитирования из других статей. Ответ по умолчанию — компактная форма с 12 полями на статью — передайте verbose=true для полной формы с 28 полями.

Получает цитаты

Параметры
  • arxiv_idstringобязательный

    arXiv ID of the paper

  • directionenum

    'citing' = outgoing references this paper cites; 'cited_by' = incoming citations from other papers

  • exclude_idsstring[]

    arXiv IDs to exclude from results (for deduplication across chained calls)

  • fieldsstring

    Comma-separated list of fields to return (e.g. 'arxiv_id,title,llm_summary,llm_novelty_score'). If omitted, returns the lean 12-field default unless verbose=true.

  • limitinteger

    Number of papers to return (max 50)

  • verboseboolean

    If true, returns the full 28-field paper shape. Default false returns the lean 12-field set. Ignored when fields is provided.

get_field_orientationтолько чтение

Возвращает КАНДИДАТОВ В ФУНДАМЕНТАЛЬНЫЕ РАБОТЫ для исследовательской темы: только дешёвый поиск, без синтеза. Ранжирует работы по смеси числа цитирований (вес 0.6, отражает важность) и семантического сходства с вашей темой (вес 0.4). Используйте это, чтобы начать обзор литературы или быстро оценить ландшафт. Для синтезированного ориентировочного отчёта (ключевые концепции, открытые проблемы, порядок чтения) используйте навык /field-guide, который внутри себя вызывает этот инструмент. Не требует ключа Pro API. Вызовы LLM не производятся.

Получает ориентацию поля

Параметры
  • limitinteger

    Number of candidate papers to return (5–30, default 15).

  • topicstringобязательный

    Research area to orient on. Be specific for better results. Examples: 'diffusion models for protein structure prediction', 'efficient attention mechanisms for long-context LLMs', 'graph neural networks for molecular property prediction'.

get_foundational_lineageтолько чтение

Возвращает ОСНОВОПОЛАГАЮЩУЮ РАБОТУ ДЛЯ НИШИ СТАТЬИ через граф цитирования - относительный вопрос («что является основополагающим для конкретной подобласти ЭТОЙ статьи», часто сама эта работа цитируется скромно), а не очевидные глобальные ориентиры. Привязывается к статье, берёт её окрестность эмбеддингов в качестве ниши и ранжирует то, что цитируется в нише, по трём уровням: niche_roots (основополагающие работы для конкретной ниши, ранжированные по тому, насколько специфично окрестность на них опирается - выявляет канонические якоря, которые пропускает семантический поиск), field_level (более широкие вторичные основы) и discipline (универсальные ориентиры, такие как Attention Is All You Need, свёрнутые в сторону). Каждая статья содержит свидетельство cited_by_in_niche, чтобы утверждение было обоснованным, а не голословным. Используйте этот инструмент для отслеживания предшествующих работ / происхождения статьи или для поиска канонических методов, на которых построена ниша. Дополняет get_field_orientation (который привязан к теме и работает только на поиске). Не требует Pro-ключа и вызовов LLM.

Get Foundational Lineage

Параметры
  • anchor_paper_idstringобязательный

    arXiv ID of the paper to anchor on, e.g. '2504.04704' or '2504.04704v2'. The niche is built from this paper's embedding neighbourhood.

  • generality_ceilingboolean

    When true (default), demote universally-cited landmark papers into the collapsed discipline tier so the niche-specific foundations lead. Set false to keep landmarks in the foundational tiers.

  • limitinteger

    Max papers in each of the niche_roots and field_level tiers (5–40, default 15).

  • scopeenum

    Niche breadth: 'narrow' (~100 nearest papers, tightest sub-topic — surfaces the few-citation niche root), 'field' (~200, default), 'broad' (~400, wider area foundations).

get_paperтолько чтение

Получает полные сведения об одной или нескольких статьях по arXiv ID. Передайте одноэлементный массив для одной статьи; передайте несколько ID для пакетного получения до 50 статей за один вызов. Передайте format='bibtex', чтобы получить запись цитирования .bib (bibtex работает только для одной статьи; для нескольких статей в формате bibtex вызывайте инструмент повторно). По умолчанию возвращает компактный набор из 13 полей (arxiv_id, title, authors, year, categories, has_code, github_url, citation_count, venue_name, llm_summary, llm_significance, llm_novelty_score, impact_pct): impact_pct - это процентиль влияния по прогнозу ML от 0 до 100, вычисленный ВНУТРИ когорты arXiv-категории самой статьи, то есть это относительный ранг внутри когорты, а не абсолютная оценка; для более старых статей, выпадающих из недавнего окна оценки ~90 дней, он равен NULL. Передайте verbose=true для полного набора полей со структурированным извлечением (method_name, contribution_type, task_category, datasets, baselines) и institution_tags. Используйте fields='arxiv_id,title,abstract', чтобы выбрать точное подмножество полей, или fetch_fulltext с sections='all' для получения полного текста статьи.

Получает документ.

Параметры
  • arxiv_idsstring[]обязательный

    One or more arXiv IDs. Single-paper lookup uses [id]; batch lookup passes multiple IDs (max 50). Example: ['2407.15831'] or ['2407.15831', '2402.09906'].

  • fieldsstring

    Comma-separated list of fields to return (e.g. 'arxiv_id,title,llm_summary,abstract'). If omitted, returns the lean 12-field default unless verbose=true.

  • formatenum

    Response format. 'json' (default) returns structured paper data. 'bibtex' returns a .bib citation entry. Bibtex mode uses the first ID in arxiv_ids.

  • verboseboolean

    If true, returns the full 28-field paper shape (method/task/dataset extraction, application_domain, baselines, etc.). Default false returns the lean 12-field set. Ignored when fields is provided.

like_paper

Лайкает статью — калибровочный сигнал «больше похожего», который настраивает ленту «Для вас» пользователя на похожие работы. Только INSERT и идемпотентно (двойной лайк — пустая операция, никогда не отменяет лайк). Отличается от save_paper: лайк выражает предпочтение для ранжирования; сохранение добавляет закладку для последующего чтения. Требует SF_API_KEY.

Как бумага

Параметры
  • arxiv_idstringобязательный

    arXiv ID of the paper to like.

list_collectionsтолько чтение

Перечисляет коллекции (именованные группы сохранённых статей) аутентифицированного пользователя с количеством статей. Только для чтения. Используйте перед add_to_collection, чтобы просмотреть существующие коллекции. Требует SF_API_KEY.

Выводит список коллекций

Параметры

Без параметров.

list_libraryтолько чтение

Перечисляет сохранённые статьи пользователя (их библиотеку), сначала новые. Только чтение. Используйте это, чтобы просмотреть список для чтения или увидеть, что уже сохранено, перед тем как сохранить больше. Требуется SF_API_KEY. ФОРМА: вызывающие агенты получают компактную запись — llm_summary (~300 символов) ВМЕСТО аннотации, с опущенными пустыми полями, а не отправленными как null. Каждая статья также несёт состояние, которое превращает это в базу знаний, а не в список закладок: note_text (собственный зафиксированный вердикт пользователя, если он есть), is_read и collections (категории, в которые она помещена, например 'AgentOPA/G4'). СНАЧАЛА читайте note_text. Статья, несущая его, уже была оценена в предыдущей сессии — используйте этот вердикт вместо повторного чтения статьи и повторного вывода. Если его нет, подумайте о том, чтобы записать его с помощью annotate_paper, чтобы следующая сессия унаследовала ваш вывод. Передавайте verbose=true (или fields=...) только когда вам действительно нужна полная аннотация или все 28 полей; по умолчанию запись примерно в 4 раза меньше и подходит для обзора того, что у вас уже есть.

Список библиотек

Параметры
  • fieldsstring

    Comma-separated fields to return, e.g. 'arxiv_id,title,abstract'. Overrides verbose. Library state (note_text/is_read/is_saved/collections) is always included regardless.

  • limitinteger

    How many saved papers to return (max 100).

  • pageinteger

    Page number for paging through a large library.

  • verboseboolean

    Return the full paper shape (including the abstract) instead of the lean default. Costs roughly 4x the tokens — prefer llm_summary unless you specifically need the abstract's wording.

list_watchesтолько чтение

Перечисляет watches аутентифицированного пользователя с именем, однострочным кратким описанием, last_evaluated_at и pending_hits (количество новых совпадений с момента последней доставки дайджеста). Только чтение. Используйте перед create_watch, чтобы увидеть, что уже отслеживается. Требуется SF_API_KEY.

Перечисляет наблюдения.

Параметры

Без параметров.

preview_watchтолько чтение

Выполняет пробный прогон структурированного фильтра по недавним статьям БЕЗ создания отслеживания - цикл настройки. Возвращает {window_days, needs_similarity, match_count, sample}, чтобы вы могли итерировать (добавить категорию, повысить min_novelty, изменить отношение коллекции) перед сохранением с помощью create_watch. Структурированные отслеживания по умолчанию ранжируют по 'rising' (прогнозируемый прорывной эффект) и ужесточают с помощью min_impact_pct для антишумового отслеживания, которое показывает только прорывные статьи в вашей нише. ПРИМЕЧАНИЕ: для фильтра по схожести match_count ограничен 200 (окно косинусного поиска) и поэтому насыщается на уровне 200 по широким/горячим темам - настраивайте по оценкам sample и сужайте с помощью categories/min_novelty (или более высокого порога схожести), а не полагайтесь только на match_count. Только для чтения. Требует SF_API_KEY.

Preview Watch

Параметры
  • criteriaobjectобязательный

    The structured filter to test.

  • recency_daysinteger

    Window in days (default 7; the 'cites' relation uses 30).

remove_from_collection

Удаляет статью из коллекции по идентификатору коллекции (collection_id) или имени коллекции (collection_name). MUTATES (статья остаётся в вашей библиотеке; она только удаляется из этой коллекции). Идемпотентна. Требует SF_API_KEY.

Удаляет из коллекции

Параметры
  • arxiv_idstringобязательный

    arXiv ID of the paper to remove from the collection.

  • collection_idstring

    UUID of the collection. Provide this OR collection_name.

  • collection_namestring

    Name of the collection. Provide this OR collection_id.

save_paper

Сохраняет статью в библиотеку Scholar Feed аутентифицированного пользователя (закладка). ИЗМЕНЯЕТ библиотеку и влияет на персонализацию пользователя — сохранённые статьи — самый сильный сигнал в ленте For You и в email-дайджесте. Идемпотентно: повторный вызов для уже сохранённой статьи оставляет её сохранённой. Требует SF_API_KEY. Чтобы одним шагом поместить её в именованную коллекцию, используйте add_to_collection (он тоже сохраняет).

Экономия бумаги

Параметры
  • arxiv_idstringобязательный

    arXiv ID of the paper to save, e.g. '2407.15831'.

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 DOCUMENTS ITS OWN BEHAVIOUR AND COVERAGE LIMITS — read the ones you intend to use; this description covers only what no single parameter can tell you. RETRIEVAL LIMIT: semantic ranking favours recent, stylistically-matched papers and routinely MISSES the old high-citation anchor of a field (H2O for KV eviction, GRIT for unified embedding+generation). To reach a field's canonical work, read the top-5 abstracts for repeated baseline mentions ('we compare against X') and look that name up directly, or call get_foundational_lineage. THREE UNRELATED NOTIONS OF IMPACT, easily confused: proven citations (sort='impactful', min_citations) | a ~90-day forecast percentile that is NULL on older papers and therefore excludes them (sort='trending', impact_min) | GitHub adoption (sort='community', min_stars). YOUR LIBRARY IS MARKED INLINE on authenticated calls: each hit carries is_saved and is_read, and a hit you previously annotated carries note_text — your own earlier verdict. Read note_text INSTEAD of re-deriving a conclusion from the abstract; re-judging a paper you already ruled on is the most common way an agent wastes a research session. is_saved=false is a real measurement; on anonymous calls these keys are absent entirely, so never read a missing is_saved as false. Papers new to you are ranked exactly as before — nothing is demoted for being unseen.

Ищет статьи

Параметры
  • anchor_paper_idstring

    Return papers similar to this arXiv paper ID. When set, q is ignored and results carry similarity_score. Example: '2407.15831'.

  • categorystring

    Filter by arXiv category e.g. 'cs.AI', 'cs.LG'

  • contribution_typeenum

    Filter by paper's contribution type

  • cursorstring

    Cursor from previous response's next_cursor for keyset pagination

  • datasetstring

    Filter to papers that evaluate on a specific dataset e.g. 'MMLU', 'ImageNet'

  • daysinteger

    Limit to papers published within N days

  • exclude_idsstring[]

    arXiv IDs to exclude from results (for deduplication across chained calls)

  • fieldsstring

    Comma-separated list of fields to return (e.g. 'arxiv_id,title,llm_summary,llm_novelty_score'). If omitted, returns the lean 12-field default unless verbose=true.

  • github_url_existsboolean

    Filter on whether the paper has a linked GitHub URL (true = only papers with a repo). Stricter than has_code (which counts any code link).

  • has_codeboolean

    Filter to papers with a linked code release (has_code=true). Surfaces runnable/reproducible work — pair with min_stars/sort='community' to find the papers practitioners actually adopt.

  • impact_mininteger

    Minimum impact_pct (0-100), e.g. 80 = top 20% FORECAST impact. This is a RISING-WORK filter: impact_pct is only computed for the last ~90 days, so impact_min restricts results to recent papers predicted to land well AND DROPS everything older. Use it for 'what's rising in X'. Do NOT use it to find the influential/seminal papers in a topic — that excludes the established work; use sort='impactful' instead.

  • limitinteger

    Results per page (max 50)

  • method_categorystring

    Filter by method category e.g. 'reinforcement learning', 'transformer'

  • method_namestring

    Filter to papers introducing/using a specific named method e.g. 'LoRA', 'YOLO', 'DPO'. Case-insensitive substring match on the extracted method_name field.

  • min_citationsinteger

    Minimum real citation count. Unlike impact_min (a ~90-day FORECAST percentile), this filters on PROVEN citations and keeps established/canonical papers.

  • min_starsinteger

    Minimum GitHub stars on the paper's linked repo. A proxy for engineering adoption — surfaces work that practitioners are actually running/building on. Pair with sort='community' to rank by it. COVERAGE CAVEAT: a never-fetched repo is stored as 0, not NULL, so this filter cannot distinguish 'no adoption' from 'never measured'. It is applied as 'KNOWN to have >= N stars' — papers whose stars were never fetched are excluded rather than treated as 0-star, so the result is honest but INCOMPLETE: a genuinely popular older paper can be missing simply because nobody measured it. Coverage skews toward recently-published papers and is being backfilled. Use it to filter recent work; for established papers use min_citations instead.

  • modeenum

    Search mode. 'semantic' (default) uses embedding similarity — finds conceptually related papers even without exact keyword matches. 'keyword' uses Postgres full-text search — faster but only matches exact terms.

  • novelty_minnumber

    Minimum novelty score (0-1). Use 0.5+ for novel papers.

  • pageinteger

    Page number

  • published_afterstring

    Only papers published on or after this date, 'YYYY-MM-DD'. Use with published_before to bound an arbitrary date window (days only gives a rolling N-day lookback).

  • published_beforestring

    Only papers published on or before this date, 'YYYY-MM-DD'. Pair with published_after for an explicit window.

  • qstring

    Search query keywords. REQUIRED unless (a) anchor_paper_id or scope_to_citations_of is set (anchor mode ignores q and returns papers similar to the anchor), or (b) sort is one of 'trending' / 'recent' / 'impactful' — the query-less 'browse the frontier' feed, which is capped to the FIRST 200 RESULTS (paging past offset 200 is a 422; narrow with q= or filters instead). Any other q-less call is a 422, INCLUDING a q-less call with only filters (category/days/...) and a q-less sort='community'. Filters alone do NOT substitute for q — pair them with a browse sort (e.g. category='cs.AI' + sort='recent') or pass q. For 'what's hot in AI right now', either sort='trending' alone or a broad q plus sort='trending' works.

  • scope_to_citations_ofstring

    Restrict search to this paper's citation graph, ranked by relevance to q. Pass the arXiv ID of the paper whose citations you want to search within.

  • sortenum

    Result ranking — a relevance↔impact dial plus time-based and adoption orders. 'relevance' (default) = best topical match. 'balanced' = relevant AND well-cited. 'impactful' = the most-cited (proven-influential) papers among those relevant to the query — use this for 'the important/seminal papers on topic X'. 'trending' = rising/FORECAST impact (impact_pct, last ~90 days) — use for 'what's hot/new in X', NOT for established work. 'recent' = newest first. 'community' = GitHub adoption (stars + star-velocity) — surfaces the papers practitioners are actually running/building on, independent of citations. COVERAGE CAVEAT (the analogue of impact_min's ~90-day hole): an unfetched repo stores 0 rather than NULL, and coverage skews heavily toward recently-published papers, so most older papers with a repo currently rank as 0-star and sink — 'community' reflects measured adoption, not corpus-wide adoption. Proven impact ('impactful'/'balanced') ranks by real citations; 'trending' is a model prediction; 'community' is real-world engineering traction within its window. Pair with get_foundational_lineage for a topic's canonical roots.

  • taskstring

    Filter by task e.g. 'image classification', 'question answering' (partial match)

  • task_categoryenum

    Filter by broad research area

  • verboseboolean

    If true, returns the full 28-field paper shape (method/task/dataset extraction, application_domain, baselines, etc.). Default false returns the lean 12-field set. Ignored when fields is provided.

unsave_paper

Удаляет статью из библиотеки Scholar Feed аутентифицированного пользователя. ИЗМЕНЯЕТ библиотеку. Идемпотентна: удаление статьи, которой нет в сохранённых, оставляет её несохранённой. Примечание: сохранённая библиотека — это надмножество всех коллекций, поэтому отмена сохранения статьи ТАКЖЕ удаляет её из каждой коллекции, в которой она находилась. Чтобы оставить её в коллекции, используйте вместо этого remove_from_collection (это оставляет статью сохранённой). Требует SF_API_KEY.

Отменяет сохранение документа.

Параметры
  • arxiv_idstringобязательный

    arXiv ID of the paper to remove from the library.

update_watch

Обновляет существующее наблюдение на месте: переименовывает, изменяет novelty_min или ПЕРЕНАЦЕЛИВАЕТ его структурированный фильтр criteria. МУТИРУЕТ. Адресуется по watch_id ИЛИ имени. Изменение criteria заменяет определение и очищает ожидающие попадания наблюдения (чтобы устаревшие совпадения не доставлялись); следующая ежедневная оценка перезаполняет список. Структурированные наблюдения ранжируются по 'rising' (прогнозируемая ударная сила прорыва) по умолчанию и ужесточают порог с помощью min_impact_pct для защиты от шума — такое наблюдение показывает только прорывные статьи в вашей нише. Сначала настройте новые критерии с помощью preview_watch. Требует SF_API_KEY.

Обновляет Watch

Параметры
  • criteriaobject

    Replace the watch's filter (becomes kind='filter'). Clears pending hits.

  • namestring

    Find the watch by its current name. Provide this OR watch_id.

  • new_namestring

    Rename the watch.

  • novelty_minnumber

    New novelty floor (0..1).

  • recency_daysinteger

    Window for the new criteria.

  • watch_idstring

    Find the watch by UUID. Provide this OR name.

Похожие MCP-сервера

blazickjp/arxiv-mcp-server

blazickjp/arxiv-mcp-server

MCP-сервер для интеграции arXiv с AI-ассистентами: поиск, загрузка, чтение и локальное хранение научных статей. Полезен исследователям и разработчикам для автоматизации работы с публикациями через ...

Python3131
takashiishida/arxiv-latex-mcp

takashiishida/arxiv-latex-mcp

MCP сервер для доступа к LaTeX-исходникам arXiv. Точная обработка математических формул отличает его от PDF. Предоставляет инструменты: полный текст, абстракт, разделы статьи. Полезен для работы с научными публикациями в Claude, Cursor и других.

Python145
bluzername/lennys-quotes

bluzername/lennys-quotes

MCP-сервер для поиска по 269 эпизодам подкаста Lenny's Podcast. Продакт-менеджеры через Claude, Cursor получают цитаты, информацию о гостях, случайную мудрость без API-ключей. 51 000+ сегментов, ло...

TypeScript12
bh-rat/context-awesome

bh-rat/context-awesome

MCP сервер для доступа к awesome-листам GitHub: более 8500 курированных списков лучших инструментов и библиотек. Помогает агентам быстро находить проверенные ссылки для работы, обучения и исследований. Полезен разработчикам и аналитикам.

TypeScript59
connerlambden/bgpt-mcp

connerlambden/bgpt-mcp

Сервер BGPT даёт AI-помощникам и Python-скриптам доступ к структурированным данным из научных статей: методам, результатам и выводам. Незаменим для обзоров литературы и проверки гипотез.

JavaScript43
mlava/scholar-sidekick-mcp

mlava/scholar-sidekick-mcp

MCP-сервер для научных идентификаторов: преобразует DOI, PMID, arXiv в цитаты (10 000+ стилей CSL) и экспорт (BibTeX, RIS и др.), проверяет отзывы, открытый доступ и фабрикацию. Полезен исследовате...

TypeScript9
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин