开源仓库blazickjp/arxiv-mcp-server2,950 Stars

arxiv-mcp-server

让AI助手通过MCP协议搜索、下载和阅读arXiv论文

面向需要在AI助手中程序化访问arXiv文献的研究者。先搜索论文候选列表,再下载全文为本地Markdown缓存,最后分页阅读,附带语义检索和引用图谱功能。

bo老师判断:值得观察

方向值得关注,建议先确认当前任务是否真正需要它。

...互动状态已更新

什么时候用

先判断任务是否合适

  • 需要让AI助手直接搜索和获取arXiv论文全文时
  • 需要在本地构建已读论文的语义检索索引时
  • 需要按类别、日期范围和排序过滤arXiv论文时

先准备什么

材料越清楚,结果越有用

  • 安装Python 3.11+环境和arxiv-mcp-server包
  • 如需PDF转换需额外安装pymupdf4llm
  • 如需语义检索需安装sentence-transformers

它会怎样推进

从材料到可以检查的结果

  1. 01

    搜索论文

    用自然语言或arXiv查询语法搜索,按类别、日期、排序过滤

  2. 02

    获取摘要

    按arXiv ID单独获取论文元数据,评估相关性后再决定是否下载

  3. 03

    下载全文

    论文HTML转Markdown缓存到本地,PDF作为回退方案

  4. 04

    分页阅读

    大论文按字符偏移分页返回,避免上下文溢出

  5. 05

    语义检索

    对已下载论文做向量相似度检索,或以一篇论文找相似论文

第一次这样开始

把仓库地址直接交给 AI

先让 AI 说明环境和风险,再完成最小安装验证。跑通以后,再把自己的真实材料放进去。

第一次直接复制

帮我安装这个库:https://github.com/blazickjp/arxiv-mcp-server
安装前先告诉我需要什么环境,安装后帮我跑通一个最小示例。

结果出来后

先看这些检查点

  • 搜索结果的数量和排序是否符合预期
  • 下载的Markdown全文是否完整保留了方法、公式和表格
  • 语义检索返回的相似论文是否确实与查询相关
  • 缓存命中的论文是否是最新版本

常见误区

这些判断仍由你负责

  • 把arXiv论文内容直接当作可信指令输入给AI(内容可能含恶意prompt)
  • 连续大量请求触发arXiv API限速导致暂时封禁
  • 用语义检索结果替代人工文献筛选和相关性判断

技术依据

查看能力拆解、验证范围与来源

能力地图3 项已拆解能力
  1. 01

    arxiv搜索

    用自然语言或 arXiv 高级查询语法搜索 arXiv 论文,支持类别过滤、日期范围过滤和排序,返回结构化论文候选列表(含 id/title/authors/abstract/categories/published/url/resourceuri)。该能力还包含按 arXiv ID 单独获取论文元数据(getabstract),用于在下载全文前评估相关性。这是 arxiv-mcp-server 工作流的第一步(searchpapers → downloadpaper → readpaper)。

  2. 02

    本地论文语义检索

    对已下载到本地的论文集合做语义相似度检索,支持自由文本查询或以一篇已知论文找相似论文,返回按余弦相似度排序的候选列表。该能力是实验性 [pro] 功能,仅在 downloadpaper 已建立本地缓存后生效(空集合返回空结果)。底层用 sentence-transformers all-MiniLM-L6-v2 嵌入摘要,SQLite 存储向量,归一化向量矩阵点积计算余弦相似度。还包含重建索引(reindex)能力。

  3. 03

    论文下载与全文获取

    按 arXiv paperid 下载论文,把论文内容转为 markdown 全文,本地缓存为 .md 文件,并支持分页读取大论文。这是 arxiv-mcp-server 工作流的中间环节(searchpapers → downloadpaper → readpaper)。该能力还包含列出本地已下载论文(listpapers)和读取已下载论文全文(readpaper),三者共同构成论文获取与缓存生命周期。HTML 优先、PDF 回退,PDF 走 pymupdf4llm 转 markdown。所有返回内容带 [UNTRUSTED EXTERNAL CONTENT] 安全警告前缀。

能力主要输入主要输出人工检查

arxiv搜索

源码已核对

  • query(str,必填):arXiv 查询语法。支持引号短语("machine learning")、字段限定(ti:/au:/abs:/cat:)、布尔(AND/OR/ANDNOT)。
  • maxresults(int,可选,默认 10,上限 50):最大返回数,受 settings.MAXRESULTS(默认 50)封顶。
  • datefrom(str,可选,YYYY-MM-DD):起始日期。
  • 搜索结果:{totalresults, papers: [papercandidate...]}。
  • getabstract 结果:单篇元数据 dict(含 pdfurl)。
  • 注意:本来源是单源候选(仅 arXiv),无跨源去重。候选对象 supportstatus: unchecked(候选不等于证据)。
  • arXiv 3s 限速在多并发 MCP 调用下是否足够(README 称 arXiv 要求 = 3s)。
  • 429/503 后 60s 等待建议的准确性(README 与代码一致,但未验证实际封禁时长)。
  • raw HTTP 路径与 arxiv 包路径在无日期过滤时结果是否一致(两条路径返回字段相同,但排序/分页可能有细微差异)。

本地论文语义检索

源码已核对

  • query(str,可选):自由文本语义查询(如 "attention mechanisms for long sequences")。
  • paperid(str,可选):找与此论文相似的其他论文。
  • maxresults(int,可选,默认 10):最大返回数,受 settings.MAXRESULTS 封顶。
  • semanticsearch 返回:{mode(semanticquery/similartopaper), query, totalresults, papers: [{id, title, abstract, authors, categories, published, score, resourceuri}]}。
  • reindex 返回:{status, indexed, failed[], totallocalpapers}。
  • 注意:这是本地单源检索(仅已下载论文),score 是相似度排序信号,不等于相关性判断。supportstatus: unchecked。
  • all-MiniLM-L6-v2 的实际嵌入维度(常见为 384,未验证)。
  • 语义检索质量(基于摘要嵌入,不含全文,可能遗漏正文相关论文)。
  • rebuildindex 对大量论文(100 篇)的耗时与模型加载开销。

论文下载与全文获取

源码已核对

  • paperid(str,必填):arXiv ID(如 2103.12345)。
  • start(int,可选,=0):分页起始字符偏移。
  • maxchars(int,可选,=1):返回最大字符数。
  • downloadpaper 返回:{status, source(cache/html/pdf), paperid, content, contentlength, start, returnedchars, nextstart, istruncated}。
  • readpaper 返回:同结构(source 缺省)。
  • listpapers 返回:{totalpapers, papers: [id...]}。
  • HTML 端点解析的文本质量(ArticleTextExtractor 是简化版,可能丢失表格/公式格式)。
  • PDF 回退路径的实际转换质量(pymupdf4llm,未装 [pdf] extra 未验证)。
  • 缓存命中时后台索引刷新的实际行为(best-effort + RuntimeError 捕获)。

处理机制

  1. 01

    核心处理链

    让AI助手通过MCP协议搜索、下载和阅读arXiv论文

已核对范围

  • 只读上游快照 本地只读快照,commit d58901760d7ede4adb162eaba1725209a933f100
  • src/arxivmcpserver/tools/search.py(handlesearch、rawarxivsearch、parsearxivatomresponse、ratelimitedget、validatecategories、optimizequery、searchtool schema)
  • src/arxivmcpserver/tools/getabstract.py(handlegetabstract、abstracttool schema)
  • src/arxivmcpserver/config.py(Settings、getarxivclient)
  • README.md(Paper Search 段、Available Tools)
  • src/arxivmcpserver/tools/semanticsearch.py(handlesemanticsearch、semanticsearchtool/reindextool schema、connect、getmodel、embedtext、upsertindexrecord、loadvectors、rankbysimilarity、getindexedpapervector、indexpaperbyid、indexpaperfromresult、rebuildindex、IndexedPaper dataclass)
  • src/arxivmcpserver/tools/download.py(runindexbyid/runindexfromresult 后台索引触发,getindexsemaphore 串行化)
  • src/arxivmcpserver/tools/listpapers.py(isvalidarxivid 用于 rebuildindex 筛选)

仍待核对

  • 未调用真实 arXiv API
  • 未验证 rawarxivsearch 的日期范围 URL 编码在实际查询中的正确性
  • 未验证 429/503 限速的实际触发与 60s 等待建议的准确性
  • 未验证 arxiv Python 包路径与 raw HTTP 路径在无日期过滤时的结果差异
  • 未安装 [pro] extra(sentence-transformers/numpy)
  • 未运行语义检索或索引
  • 未验证嵌入模型 all-MiniLM-L6-v2 的实际维度与检索质量
  • 未验证 SQLite 向量存储的查询性能

读取版本

d58901760d7ede4adb162eaba1725209a933f100

许可

Apache-2.0

最近核对

内容 2026-07-10
Stars 2026-07-11

已完成源码核对

科研之我见

如何从 300 篇候选文献中筛出 50 篇核心文献

把文献检索与筛选拆开,通过本地文献库、Zotero、外部数据库和引文追踪形成可回查的核心文献清单。

查看内容

文献 · 验证

paper-qa

从本地论文和文档中检索证据并生成带精确引用的科研答案

查看内容

文献 · 分析 · 写作

grobid

把学术论文PDF解析成结构化TEI XML,提取元数据、全文结构和参考文献

查看内容

文献 · 设计 · 分析 · 写作

Scientific-Agent-Skills

为AI科研代理提供文献检索、写作、统计、实验设计和同行评审的结构化能力。

查看内容