Skip to main content
已暴露为 MCP 工具paper_search + paper_read —— 在 Claude / Cursor / 任意 MCP 客户端中直接调用。详见 MCP Server 60 秒配置。
已上线   1 credit · search   免费 · read

它为 Agent 做什么

paper_search 接收自然语言查询,返回 Quant Paper 中最相关的 knowledge card —— 因子、异象、市场微结构、ML for finance 等研究。它是 agent 的 文献入口:当 agent 要把一个判断锚到学术文献上(“momentum crash 真的存在吗?”、“factor zoo 那篇到底说了什么?”),先调 paper_search 拿到候选 paperCardId + availableSections,再用 paper_read 加载真正需要的章节。 向量基于 title + abstract + summary + tags,所以 card 级命中是”值得继续 paper_read”的信号 —— paper_search 故意返回正文。

Agent flow

返回值

paper_search 返回

data
PaperCard[]
required
按相关性降序排列的论文卡片数组。
meta.topK
number
本次请求实际使用的 topK 值。
meta.creditsUsed
number
本次调用消耗的 credit(搜索固定 1)。
meta.remainingCredits
number
账户剩余 credit。
200 OK · paper_search
{
  "data": [
    {
      "paperCardId": "card_abc123",
      "sourcePaperId": "arxiv:1404.4944",
      "title": "Momentum Crashes",
      "authors": ["Kent Daniel", "Tobias J. Moskowitz"],
      "abstract": "Despite their strong positive abnormal returns, momentum strategies experience infrequent but severe crashes...",
      "summary": "记录了动量组合在熊市反弹之后出现的剧烈崩溃,并给出可在实时操作中识别的 market-state / volatility 预测变量。",
      "tags": ["factor", "momentum", "crash"],
      "availableSections": [
        { "section_key": "introduction", "section_type": "introduction", "title": "Introduction", "char_count": 18420, "section_order": 1 },
        { "section_key": "methodology", "section_type": "method", "title": "Methodology", "char_count": 22150, "section_order": 2 }
      ],
      "sectionCount": 6,
      "fullTextCharCount": 102345,
      "pdfUrl": "https://arxiv.org/pdf/1404.4944"
    }
  ],
  "meta": { "topK": 5, "creditsUsed": 1, "remainingCredits": 99 }
}

paper_read 返回

data
PaperReadResult
required
单篇 paper 的指定章节集合。
meta.creditsUsed
number
读取固定 0
meta.remainingCredits
number
账户剩余 credit。

说明

两步检索是 canonical 模式paper_search 用 1 credit 拿一组 ID + summary + section manifest,agent 据此判断要不要加载章节;再用 paper_read 免费加载真正需要的章节。建议先读 top-1 的 introduction + methodology;要核对具体结论时再加章节。
paper_read 之前就用 paper_search 返回的 availableSections[i].char_count 决定读哪几节。长文不要随手 ["all"] —— 精准加载 1–2 节,agent context 会小很多。
超过 2,000 字符 的查询会返回 400。把 agent 上下文里的长文先做摘要再调用。
paper_searchtopK 上限是 10,超出会被静默截断。
paper_search 只返回 card 级元数据,不带正文。要拿到章节内容必须调 paper_read

直接调用

// 1) 搜索
{
  "method": "tools/call",
  "params": {
    "name": "paper_search",
    "arguments": { "query": "momentum crash", "topK": 5 }
  }
}

// 2) 读 top hit 的指定章节
{
  "method": "tools/call",
  "params": {
    "name": "paper_read",
    "arguments": {
      "paperCardId": "card_abc123",
      "sections": ["introduction", "methodology"]
    }
  }
}

完整参数参考

paperCardId
string
required
paper_search 返回的 paperCardId
sections
string[]
default:["all"]
章节 key 数组,取自 availableSections[].section_key。省略或传 ["all"] 表示读全文。

相关接口

Wiki 搜索

同样的两步检索模式,作用在 Quant Wiki 语料(概念、公式、因子)上。

MCP Server 接入

60 秒接入 Claude / Cursor / 任意 agent harness。