mcpField
A
arxiv-search

arxiv-search

github.com/yorkeccak生产力641.1k 次安装4 周前更新
代码仓库

关于 arxiv-search

arxiv-search 是面向研究者和 Agent 的技能,可用自然语言检索 arXiv 预印本。它通过 Valyu 语义搜索提供论文全文内容和图片链接。

主要功能

  1. 01自然语言语义搜索
  2. 02覆盖 arXiv 多个学科
  3. 03返回论文全文
  4. 04提供图表和图片链接
  5. 05通过命令行输出 JSON

适用场景

  1. 01查找特定主题论文
  2. 02追踪新兴 AI 研究
  3. 03探索跨学科预印本

安装

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

$npx skills add https://github.com/yorkeccak/scientific-skills --skill arxiv-search

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

附带文件scripts/searchscripts/search.mjs

详细介绍

arXiv 搜索

使用 Valyu 语义搜索 API,通过自然语言查询搜索 arXiv 中涵盖物理学、数学、计算机科学和定量生物学的完整预印本数据库。

此技能为何强大

  • 无需解析 API 参数:直接传入自然语言查询即可,无需构造复杂的搜索参数
  • 语义搜索:理解查询的含义,而不仅仅是匹配关键词
  • 全文访问:返回完整的文章内容,而不仅仅是摘要
  • 图片链接:包含论文中的图表和图片
  • 全面覆盖:可访问 arXiv 涵盖多个学科的全部预印本档案

要求

  1. Node.js 18+(使用内置的 fetch)
  2. Valyu API 密钥,可从 https://platform.valyu.ai 获取(赠送 $10 免费额度)

关键:脚本路径解析

本文档中的 scripts/search 命令是相对于此技能的安装目录而言的。

运行任何命令之前,请先找到脚本:

ARXIV_SCRIPT=$(find ~/.claude/plugins/cache -name "search" -path "*/arxiv-search/*/scripts/*" -type f 2>/dev/null | head -1)

然后在所有命令中使用完整路径:

$ARXIV_SCRIPT "quantum entanglement" 15

API 密钥设置流程

运行搜索并收到 "setup_required": true 时,请按以下流程操作:

  1. 向用户索取 API 密钥: “要搜索 arXiv,我需要你的 Valyu API 密钥。前往 https://platform.valyu.ai 免费获取(赠送 $10 额度)。”

  2. 用户提供密钥后,运行:

    scripts/search setup <api-key>
    
  3. 重试原始搜索。

流程示例:
User: Search arXiv for transformer architecture papers
→ Response: {"success": false, "setup_required": true, ...}
→ Claude asks: "Please provide your Valyu API key from https://platform.valyu.ai"
→ User: "val_abc123..."
→ Claude runs: scripts/search setup val_abc123...
→ Response: {"success": true, "type": "setup", ...}
→ Claude retries: scripts/search "transformer architecture papers" 10
→ Success!

何时使用此技能

  • 搜索物理学、数学和计算机科学领域的预印本
  • 查找同行评审发表前的研究成果
  • 开展跨领域研究
  • 跟进 AI 和理论物理领域的快速发展
  • 为新想法搜索现有技术
  • 追踪新兴研究趋势

输出格式

{
  "success": true,
  "type": "arxiv_search",
  "query": "quantum entanglement",
  "result_count": 10,
  "results": [
    {
      "title": "Article Title",
      "url": "https://arxiv.org/abs/...",
      "content": "Full article text with figures...",
      "source": "arxiv",
      "relevance_score": 0.95,
      "images": ["https://example.com/figure1.jpg"]
    }
  ],
  "cost": 0.025
}

处理结果

使用 jq
# Get article titles
scripts/search "query" 10 | jq -r '.results[].title'

# Get URLs
scripts/search "query" 10 | jq -r '.results[].url'

# Extract full content
scripts/search "query" 10 | jq -r '.results[].content'

常见用例

AI/ML 研究
# Find recent machine learning papers
scripts/search "large language model architectures" 50
物理学研究
# Search for quantum physics papers
scripts/search "topological quantum computation" 20
数学
# Find math papers
scripts/search "representation theory and Lie algebras" 15
计算机科学
# Search for CS theory papers
scripts/search "distributed systems consensus algorithms" 25

错误处理

所有命令都会返回包含 success 字段的 JSON:

{
  "success": false,
  "error": "Error message"
}

退出代码:

  • 0 - 成功
  • 1 - 错误(查看 JSON 了解详情)

API 端点

  • 基础 URL:https://api.valyu.ai/v1
  • 端点:/search
  • 身份验证:X-API-Key 请求头

架构

scripts/
├── search          # Bash wrapper
└── search.mjs      # Node.js CLI

直接使用 Node.js 内置的 fetch() 调用 API,无需任何外部依赖。

添加到你的项目

如果你正在构建 AI 项目,并希望将 arXiv 搜索直接集成到应用中,请使用 Valyu SDK:

Python 集成
from valyu import Valyu

client = Valyu(api_key="your-api-key")

response = client.search(
    query="your search query here",
    included_sources=["valyu/valyu-arxiv"],
    max_results=20
)

for result in response["results"]:
    print(f"Title: {result['title']}")
    print(f"URL: {result['url']}")
    print(f"Content: {result['content'][:500]}...")
TypeScript 集成
import { Valyu } from "valyu-js";

const client = new Valyu("your-api-key");

const response = await client.search({
  query: "your search query here",
  includedSources: ["valyu/valyu-arxiv"],
  maxResults: 20
});

response.results.forEach((result) => {
  console.log(`Title: ${result.title}`);
  console.log(`URL: ${result.url}`);
  console.log(`Content: ${result.content.substring(0, 500)}...`);
});

完整集成示例和 SDK 参考,请参阅 Valyu 文档。

评论

支持 Markdown