blazickjp/arxiv-mcp-server

blazickjp/arxiv-mcp-server

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

PyPI Version PyPI Downloads GitHub Stars GitHub Forks Tests Python Version License smithery badge Install in VS Code Install in VS Code Insiders Add to Kiro Codex Plugin

ArXiv MCP Server

🔍 Enable AI assistants to search and access arXiv papers through a simple MCP interface.

The ArXiv MCP Server provides a bridge between AI assistants and arXiv's research repository through the Model Context Protocol (MCP). It allows AI models to search for papers and access their content in a programmatic way.

🤝 Contribute • 📝 Report Bug

Pulse MCP Badge

✨ Core Features

  • 🔎 Paper Search: Query arXiv papers with filters for date ranges and categories
  • 📄 Paper Access: Download and read paper content
  • 📋 Paper Listing: View all downloaded papers
  • 🗃️ Local Storage: Papers are saved locally for faster access
  • 📝 Prompts: A set of research prompts for paper analysis

🔒 Security

Prompt Injection Risk

Paper content retrieved from arXiv is untrusted external input.

When an AI assistant downloads or reads a paper through this server, the paper's text is passed directly into the model's context. A maliciously crafted paper could embed adversarial instructions designed to hijack the AI's behavior — for example, instructing it to exfiltrate data, invoke other tools with unintended arguments, or override system-level instructions. This is a known class of attack described by OWASP as LLM01: Prompt Injection and by the OWASP Agentic AI framework as AG01: Prompt Injection in LLM-Integrated Systems.

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

Проверяет все сохранённые отслеживания тем на наличие новых опубликованных статей с момента последней проверки. Пропуск параметра topic запускает ВСЕ сохранённые отслеживания и возвращает новые статьи для каждого. Передача строки topic проверяет только конкретное отслеживание. После выполнения продвигает курсор опустошения (drain cursor) каждого отслеживания: когда страница обрезается параметром max_results, has_more=true, а check_start смещается так, что последующие вызовы возвращают следующие статьи в том же окне (границы дат Atom имеют дневную гранулярность и иначе снова упёрлись бы в границу); last_checked отслеживает самую новую возвращённую статью. Когда страница не заполнена, last_checked становится равным текущему моменту, а курсор опустошения сбрасывается. Используйте watch_topic для регистрации тем перед вызовом этого инструмента. Возвращает понятную ошибку «не найдено», если topic указан, но соответствующего отслеживания не существует. Возвращает сводку с количеством новых статей, has_more и полными метаданными статей по каждой теме.

Параметры
  • topicstring

    Optional: check only this specific watched topic (must match the topic string used in watch_topic exactly). Omit to check all saved watches.

citation_graphтолько чтениевнешний мир

Возвращает статьи, которые цитируют статью из arXiv, и статьи, на которые она ссылается, используя граф цитирования Semantic Scholar. Результаты ограничены (по умолчанию 50), чтобы не превышать неаутентифицированную квоту. При высокой нагрузке укажите переменную окружения SEMANTIC_SCHOLAR_API_KEY для более высокого лимита; без ключа постоянные ограничения скорости возвращают статус rate_limited вместо результатов.

Параметры
  • max_citationsinteger

    Maximum citations and references to return (default 50).

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

    arXiv ID (for example: 2401.12345).

download_paperвнешний мир

Скачивает статью с arXiv и возвращает её текстовое содержание. Сначала пробует HTML-версию для чистого извлечения; при недоступности HTML переключается на преобразование из PDF. Сохраняет статью локально. Возвращаемый текст по умолчанию ограничен примерно 12 000 символов, чтобы один вызов не мог вернуть неограниченное тело статьи. Когда is_truncated равен true, вызовите снова с параметром start=next_start (см. next_retrieval), чтобы продолжить, или передайте return_full_text=true для получения всего оставшегося текста статьи. Установите force=true, чтобы повторно загрузить и перезаписать кэшированную статью (требуется для замены более новой сохранённой версии arXiv на более старую).

Параметры
  • forceboolean

    If true, re-download and overwrite the local markdown and metadata sidecar even if the paper is already cached, including when replacing a newer stored arXiv version with an older one. Default false.

  • max_charsinteger

    Maximum raw paper characters to return from start; omit for the bounded default (12,000 chars)

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

    The arXiv ID of the paper to download (e.g. '2103.12345')

  • return_full_textboolean

    Set true to opt out of the bounded default and return the entire remaining paper from start in one call

  • startinteger

    Zero-based character offset for returning large papers in chunks; pass next_start from a prior truncated response to continue

export_citationsтолько чтениевнешний мир

Экспортирует ссылки BibTeX для одной или нескольких статей arXiv, используя официальные метаданные arXiv (название, авторы, год, основная категория), но никогда не поля, сгенерированные моделью. Суффиксы версий (например, '2401.12345v2') сохраняются, а ключи цитирования детерминированы. Возвращает сформированный BibTeX, а также статус/ошибку для каждой статьи. Только BibTeX; RIS/CSL-JSON пока не поддерживаются.

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

    arXiv IDs, new-style ('2401.12345', optionally versioned '2401.12345v2') or legacy ('hep-ph/9901234').

get_abstractтолько чтениевнешний мир

Получает аннотацию и метаданные по arXiv ID без скачивания статьи. Используйте перед download_paper для оценки релевантности. Возвращает название, авторов, аннотацию, категории, дату публикации и URL PDF. После компактного поиска используйте для получения одной полной аннотации; пропустите, если поиск использовал abstract_mode=full.

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

    The arXiv paper ID (e.g. '2401.12345' or '2404.19756')

get_paper_latexвнешний мир

Скачивает, безопасно обрабатывает, кэширует и возвращает ограниченный исходный LaTeX-код. Используйте инструменты разделов для адресного чтения.

Параметры
  • max_charsinteger

    Maximum source characters to return (default 12000)

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

    Validated modern or legacy arXiv paper ID

  • return_full_textboolean

    Set true to opt out of the bounded default and return the entire remaining source or section from start in one call

  • startinteger

    Zero-based character offset within this source or section

get_paper_latex_sectionвнешний мир

Возвращает одну ограниченную секцию LaTeX по идентификатору или заголовку структуры (нормализованы пробелы и регистр; раскрыты макросы).

Параметры
  • max_charsinteger

    Maximum source characters to return (default 12000)

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

    Validated modern or legacy arXiv paper ID

  • return_full_textboolean

    Set true to opt out of the bounded default and return the entire remaining source or section from start in one call

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

    Section ID from list_paper_latex_sections or section title

  • startinteger

    Zero-based character offset within this source or section

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

Возвращает постраничную структуру заголовков для загруженного документа (markdown). Стабильные иерархические идентификаторы разделов; чтобы получить один раздел, используйте read_paper_section.

Параметры
  • max_sectionsinteger

    Maximum headings to return (default 100)

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

    Validated modern or legacy arXiv paper ID

  • startinteger

    Zero-based section index (default 0)

list_paper_latex_sectionsвнешний мир

Возвращает компактный план заголовков из исходного LaTeX-кода.

Параметры
  • max_sectionsinteger

    Maximum headings to return (default 100)

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

    Validated modern or legacy arXiv paper ID

  • startinteger

    Zero-based section index (default 0)

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

Перечисляет все статьи, которые были загружены и сохранены локально через download_paper. Возвращает id, title, authors, published и arxiv_version/versioned_id из локальных метаданных — без повторного запроса в реальном времени. Установите compact=true, чтобы вернуть только идентификаторы arXiv. Возвращает пустой список, если ещё не было загружено ни одной статьи. Рабочий процесс: search_papers -> download_paper -> list_papers -> read_paper.

Параметры
  • compactboolean

    If true, return arXiv IDs only. Default is full local metadata (id, title, authors, published, arxiv_version, versioned_id).

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

Выводит список всех сохранённых отслеживаний тем без проверки новых статей. Возвращает тему каждого отслеживания, категории, временную метку last_checked и другие сохранённые поля. Не обновляет last_checked: используйте эту команду для просмотра сохранённых данных. Для удаления отслеживания используйте unwatch_topic, а для опроса новых статей — check_alerts.

Параметры

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

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

Читает текстовое содержимое статьи, которая была ранее загружена через download_paper. Возвращает статью в формате Markdown, по умолчанию ограниченном примерно 12 000 символов, чтобы один вызов не возвращал неограниченный текст статьи. Когда is_truncated равен true, вызовите снова с параметром start=next_start (см. next_retrieval), чтобы продолжить, или передайте return_full_text=true для получения всего оставшегося текста статьи. Завершится ошибкой с понятным сообщением, если статья еще не загружена — сначала вызовите download_paper. Рабочий процесс: search_papers -> download_paper -> read_paper.

Параметры
  • max_charsinteger

    Maximum raw paper characters to return from start; omit for the bounded default (12,000 chars)

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

    The arXiv ID of the paper to read

  • return_full_textboolean

    Set true to opt out of the bounded default and return the entire remaining paper from start in one call

  • startinteger

    Zero-based character offset for reading large papers in chunks; pass next_start from a prior truncated response to continue

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

Возвращает один ограниченный раздел Markdown по идентификатору структуры (или уникальному заголовку). Не включает соседние или родительские разделы.

Параметры
  • max_charsinteger

    Maximum section characters to return (default 12,000)

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

    Validated modern or legacy arXiv paper ID

  • return_full_textboolean

    If true, return the entire remaining section from start

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

    Section ID from get_paper_outline, or unique title

  • startinteger

    Zero-based character offset within this section

reindex

Перестраивает локальный семантический индекс для загруженных статей.

Параметры
  • clear_existingboolean

    If true, clear the existing index before rebuilding.

search_papersтолько чтениевнешний мир

Ищет в arXiv по запросу с опциональными категориями, диапазоном дат, сортировкой и пагинацией. Запрос: используй кавычки для фраз; ti:/au:/abs:/cat:; AND/OR/ANDNOT. Термины без префиксов ищутся в заголовке+аннотации (не в авторах). Используй категории (cs.AI, cs.LG, cs.CL, cs.CV, cs.MA, cs.RO, stat.ML, quant-ph). Каталог и примеры: README 'search_papers query guide'. Даты в формате YYYY-MM-DD (date_from/date_to). sort_by relevance|date. max_results по умолчанию 5 (максимум 50). abstract_mode none|snippet|full (по умолчанию snippet). start по умолчанию 0. Ответ: total_results, returned, has_more, next_start, abstract_mode. Передавай next_start с тем же abstract_mode. Используй get_abstract после компактного поиска — но не после abstract_mode=full. arXiv требует паузы ~3 секунды между запросами (на стороне сервера). Временные ошибки 429/503 повторяются с backoff; при превышении лимита возвращается status=rate_limited.

Параметры
  • abstract_modeenum

    Abstract projection (default snippet ~280 chars, marked if truncated; full=complete; none=omit).

  • categoriesstring[]

    arXiv category filters (e.g. ['cs.LG', 'cs.AI']). Strongly improves relevance.

  • date_fromstring

    Inclusive start date (YYYY-MM-DD).

  • date_tostring

    Inclusive end date (YYYY-MM-DD).

  • max_resultsinteger

    Maximum results to return (default: 5, max: 50).

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

    arXiv query string. Prefer quoted phrases and ti:/au:/abs:/cat: field prefixes; AND/OR/ANDNOT supported.

  • sort_byenum

    Sort by 'relevance' (default) or 'date' (newest first).

  • startinteger

    Zero-based result offset (default: 0). Pass next_start from a previous response to fetch the next page.

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

Ищет в скачанной статье совпадающие фрагменты заданной длины с указанием смещений в разделе/источнике. Подавляет почти дубликаты с высоким перекрытием и предпочитает результаты из разных разделов. Облегчённый поиск подстрок; без Torch.

Параметры
  • max_passagesinteger

    Maximum passages to return (default 8)

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

    Validated modern or legacy arXiv paper ID

  • passage_charsinteger

    Max characters per excerpt (default 800)

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

    Case-insensitive substring to find

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

Выполняет семантический поиск по статьям, которые вы уже загрузили локально через download_paper. Поддерживает запросы в свободной форме (например, 'механизмы внимания для длинных последовательностей') или поиск статей, похожих на заданный paper_id. ВАЖНО: поиск выполняется только по вашей локальной коллекции загруженных статей — вернет пустые результаты, если статьи еще не загружены. Используйте search_papers для поиска статей на arXiv, затем download_paper, чтобы добавить их в локальный индекс перед использованием этого инструмента. Требует pro-зависимости: uvx --from 'arxiv-mcp-server[pro]' arxiv-mcp-server (или uv tool install 'arxiv-mcp-server[pro]').

Параметры
  • max_resultsinteger

    Maximum number of results to return (default: 10).

  • paper_idstring

    Find papers semantically similar to this arXiv paper ID.

  • querystring

    Free-text semantic query.

unwatch_topic

Удаляет сохранённую подписку на тему по точной строке темы. Тема должна точно совпадать с сохранённым значением watch_topic. Возвращает понятную ошибку «не найдено», если подходящая подписка отсутствует. Используйте list_watches для просмотра сохранённых подписок перед удалением.

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

    Exact topic string of the watch to remove. Must match the topic used in watch_topic.

watch_topic

Сохраняет или обновляет постоянное отслеживание темы исследования. При проверке через check_alerts возвращает только статьи, опубликованные с момента последней проверки, и служит постоянным оповещением о новых работах по теме. Новые отслеживания устанавливают last_checked на время создания, чтобы первая проверка не выдавала исторические совпадения. Строка темы использует тот же синтаксис запросов, что и search_papers (фразы в кавычках, указатели полей, логические операторы). Примеры: '"diffusion models" AND ti:"video generation"', 'au:"LeCun" AND cs.LG'. Вызов watch_topic с той же строкой темы обновляет существующее отслеживание, а не создает дубликат. При обновлении опускает categories для сохранения существующих фильтров; передача categories: [] очищает их. Сочетается с check_alerts для опроса новых статей.

Параметры
  • categoriesstring[]

    Optional arXiv category filter (e.g. ['cs.LG', 'cs.AI']). Narrows results to specific fields. On update, omit this field to preserve existing categories; pass an empty array [] to clear them.

  • max_resultsinteger

    Maximum papers to return per alert check (default: 10).

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

    Query string to monitor. Uses arXiv search syntax — quoted phrases for exact matches, field specifiers (ti:, au:, abs:), and boolean operators (AND, OR, ANDNOT). Example: '"reinforcement learning" AND "robotics"'.

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

ppl-ai/modelcontextprotocol

ppl-ai/modelcontextprotocol

MCP-инструмент от Perplexity, который подключает к AI-ассистентам веб-поиск, глубокие исследования и аналитические рассуждения через Sonar-модели и Search API. Идеален для разработчиков, создающих интеллектуальных агентов с доступом к актуальной информации из сети.

TypeScript2520
archoor/painspotter-mcp

archoor/painspotter-mcp

MCP инструмент PainSpotter ищет бизнес-возможности, собирая данные с Reddit, Hacker News и Product Hunt. Он выделяет темы и конкретные идеи продуктов с коммерческими баллами. Также доступен блог с еженедельными аналитическими статьями.

Python1
ConechoAI/openai-websearch-mcp

ConechoAI/openai-websearch-mcp

MCP сервер для умного веб-поиска через reasoning модели OpenAI. Поддерживает gpt-5, o3, o4-mini с интеллектуальным выбором усилий. Идеален для AI-ассистентов, которым нужны актуальные и обоснованные ответы с живыми источниками.

Python94
takashiishida/arxiv-latex-mcp

takashiishida/arxiv-latex-mcp

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

Python145
Savirinc/unfragile-mcp-server

Savirinc/unfragile-mcp-server

MCP сервер для поиска AI-артефактов и MCP-инструментов через граф соответствия Unfragile. Находит серверы по возможностям, собирает стеки, сравнивает альтернативы и выдает доверенные паспорта. Полезен разработчикам агентов в Claude, Cursor, Windsurf.

JavaScript2
SelfPy/science-ai-mcp-server

SelfPy/science-ai-mcp-server

MCP сервер Science AI Journal предоставляет инструменты для предпроверки, рецензирования и подбора научных журналов, а также проверки дубликатов - всё без выхода из ИИ-ассистента.

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

Лука Никитин