mcpField
A
arxiv-search

arxiv-search

github.com/dsebastien生产力794 次安装28 周前更新
代码仓库

关于 arxiv-search

arxiv-search 是通过 arXiv 公共 API 查找研究论文的技能。它返回结构化 JSON 元数据,并支持按主题、类别、作者和日期筛选搜索。

主要功能

  1. 01搜索 arXiv 公共 API
  2. 02按类别和日期范围筛选
  3. 03按相关性或提交日期排序
  4. 04以 JSON 返回论文元数据

适用场景

  1. 01查找某个研究主题的论文
  2. 02浏览某类别的近期投稿
  3. 03查询某位作者发表的论文

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/dsebastien/ai-skill-arxiv --skill arxiv-search

安装后在 Claude Code 中输入/arxiv-search确认已加载。

附带文件scripts/arxiv_search.py

详细介绍

arXiv 搜索

搜索 arXiv 公共 API,查找研究论文。以 JSON 格式返回结构化元数据(标题、作者、摘要、arXiv ID、类别、日期、PDF/HTML 链接)。若要分析特定论文的全文,可搭配 arxiv-analyze 使用。

适用场景

  • 用户想查找某个主题的论文
  • 用户想了解 arXiv 某个类别的最新投稿
  • 用户想查看某位作者发表过哪些论文
  • 分析特定论文前的起点

用法

脚本位于 scripts/arxiv_search.py。它直接调用 arXiv API,并将 Atom XML 解析为 JSON,因此模型无需处理 XML。

# Topic search
python3 scripts/arxiv_search.py "mechanistic interpretability" --max 20

# Category filter (see arXiv taxonomy: cs.LG, cs.CL, stat.ML, etc.)
python3 scripts/arxiv_search.py --category cs.LG --max 30 --sort-by submittedDate

# Topic + category + date range
python3 scripts/arxiv_search.py "sparse autoencoders" --category cs.LG \
    --from 2025-01-01 --to 2026-04-16 --max 50

# Recency-focused (newest first)
python3 scripts/arxiv_search.py "LLM agents" --sort-by submittedDate --max 20

标志:

  • --max N — 最大结果数(默认 20;arXiv API 上限为 2000)
  • --category CAT — arXiv 类别代码
  • --from YYYY-MM-DD / --to YYYY-MM-DD — 投稿日期筛选条件
  • --sort-by relevance|lastUpdatedDate|submittedDate — 默认按相关性排序

输出: 标准输出中的 JSON。每条结果包含 id、title、authors[]、abstract、categories[]、primary_category、published、updated、abs_url、pdf_url、doi、journal_ref、comment。

工作流

1. 解析意图
  • 主题搜索:“查找关于 X 的论文” → 将 "X" 用作查询
  • 查找某领域的最新论文:“cs.LG 有哪些新论文” → --category cs.LG --sort-by submittedDate
  • 作者搜索:“ 的论文” → 以姓名作为查询;arXiv 会将作者姓名编入 all: 索引
  • **组合搜索:**主题 + 时间范围 + 类别
2. 执行搜索

调用脚本。默认的 --max 20 是不错的起点。对于范围较广的综述,可将其增至 50。

3. 展示结果

整理成简洁的表格。每篇论文包含:

  • arXiv ID(使用 abs_url 作为链接)
  • 标题
  • 作者(显示前 2 位;若作者更多,则加上 “et al.”)
  • 发表日期
  • 主类别
  • 1 句话的摘要概述(不要直接贴出完整摘要)
4. 提供后续选项

询问用户是否想要:

  • 分析特定论文(→ arxiv-analyze)
  • 为此查询创建监视项(→ arxiv-monitor add)

输出格式

### arXiv Search: <query>

| # | arXiv ID | Title | Authors | Date |
|---|----------|-------|---------|------|
| 1 | 2501.11120v1 | Tell me about yourself... | Betley et al. | 2025-01-19 |

**Next:**
- analyze <id> to fetch full text
- watch <name> to track this query ongoingly

Token 效率

  • 20 条结果约需 5K 个 token(主要来自摘要)
  • 与其直接输出 50 条结果,不如请用户缩小查询范围
  • 仅需简报时,在发送到上下文前通过 jq '.results | map({id, title, authors, published})' 处理

arXiv 分类速查

常见类别(完整列表请参阅 https://arxiv.org/category_taxonomy):

  • cs.CL — 计算与语言(NLP)
  • cs.LG — 机器学习
  • cs.AI — 人工智能
  • cs.CR — 密码学与安全
  • cs.CY — 计算机与社会
  • stat.ML — 统计学:机器学习
  • cs.IR — 信息检索
  • cs.HC — 人机交互

速率限制

arXiv API:每个 IP 每 3 秒最多 1 个请求(软限制)。此技能每次调用只发出 1 个请求,远低于限制。

错误处理

  • 类别无效或查询格式错误 → results 数组为空。报告“未找到论文”,并建议扩大查询范围。
  • 网络错误 → 退出码为 4,错误信息输出到标准错误。
  • 响应格式错误 → 退出码为 5(极少见;这可能意味着 arXiv API 已变更)。

要求

  • Python 3.11+(仅使用标准库,无需通过 pip 安装)

评论

支持 Markdown