什么时候用
先判断任务是否合适
- 需要让AI助手直接搜索和获取arXiv论文全文时
- 需要在本地构建已读论文的语义检索索引时
- 需要按类别、日期范围和排序过滤arXiv论文时
先准备什么
材料越清楚,结果越有用
- •安装Python 3.11+环境和arxiv-mcp-server包
- •如需PDF转换需额外安装pymupdf4llm
- •如需语义检索需安装sentence-transformers
它会怎样推进
从材料到可以检查的结果
- 01
搜索论文
用自然语言或arXiv查询语法搜索,按类别、日期、排序过滤
- 02
获取摘要
按arXiv ID单独获取论文元数据,评估相关性后再决定是否下载
- 03
下载全文
论文HTML转Markdown缓存到本地,PDF作为回退方案
- 04
分页阅读
大论文按字符偏移分页返回,避免上下文溢出
- 05
语义检索
对已下载论文做向量相似度检索,或以一篇论文找相似论文
第一次这样开始
把仓库地址直接交给 AI
先让 AI 说明环境和风险,再完成最小安装验证。跑通以后,再把自己的真实材料放进去。
第一次直接复制
帮我安装这个库:https://github.com/blazickjp/arxiv-mcp-server 安装前先告诉我需要什么环境,安装后帮我跑通一个最小示例。
结果出来后
先看这些检查点
- 搜索结果的数量和排序是否符合预期
- 下载的Markdown全文是否完整保留了方法、公式和表格
- 语义检索返回的相似论文是否确实与查询相关
- 缓存命中的论文是否是最新版本
常见误区
这些判断仍由你负责
- 把arXiv论文内容直接当作可信指令输入给AI(内容可能含恶意prompt)
- 连续大量请求触发arXiv API限速导致暂时封禁
- 用语义检索结果替代人工文献筛选和相关性判断
技术依据
查看能力拆解、验证范围与来源
技术依据
查看能力拆解、验证范围与来源
- 01
arxiv搜索
用自然语言或 arXiv 高级查询语法搜索 arXiv 论文,支持类别过滤、日期范围过滤和排序,返回结构化论文候选列表(含 id/title/authors/abstract/categories/published/url/resourceuri)。该能力还包含按 arXiv ID 单独获取论文元数据(getabstract),用于在下载全文前评估相关性。这是 arxiv-mcp-server 工作流的第一步(searchpapers → downloadpaper → readpaper)。
- 02
本地论文语义检索
对已下载到本地的论文集合做语义相似度检索,支持自由文本查询或以一篇已知论文找相似论文,返回按余弦相似度排序的候选列表。该能力是实验性 [pro] 功能,仅在 downloadpaper 已建立本地缓存后生效(空集合返回空结果)。底层用 sentence-transformers all-MiniLM-L6-v2 嵌入摘要,SQLite 存储向量,归一化向量矩阵点积计算余弦相似度。还包含重建索引(reindex)能力。
- 03
论文下载与全文获取
按 arXiv paperid 下载论文,把论文内容转为 markdown 全文,本地缓存为 .md 文件,并支持分页读取大论文。这是 arxiv-mcp-server 工作流的中间环节(searchpapers → downloadpaper → readpaper)。该能力还包含列出本地已下载论文(listpapers)和读取已下载论文全文(readpaper),三者共同构成论文获取与缓存生命周期。HTML 优先、PDF 回退,PDF 走 pymupdf4llm 转 markdown。所有返回内容带 [UNTRUSTED EXTERNAL CONTENT] 安全警告前缀。
| 能力 | 主要输入 | 主要输出 | 人工检查 |
|---|---|---|---|
arxiv搜索源码已核对 |
|
|
|
本地论文语义检索源码已核对 |
|
|
|
论文下载与全文获取源码已核对 |
|
|
|
处理机制
- 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、外部数据库和引文追踪形成可回查的核心文献清单。
查看内容