mcpField
G
gs-cited-by

gs-cited-by

github.com/cookjohn生产力538204 次安装33 周前更新
代码仓库

关于 gs-cited-by

gs-cited-by 通过 Google Scholar 引用结果查找引用指定论文的文献,适用于引文追踪。输入可为论文的 data-cid,也可先通过标题搜索定位。

主要功能

  1. 01查找引用目标论文的文献
  2. 02接受 data-cid 或论文标题
  3. 03通过搜索解析论文标题
  4. 04支持继续追踪引用关系

适用场景

  1. 01查看后续引用某篇论文的研究
  2. 02从搜索结果追踪引文
  3. 03从一篇引用论文继续追踪

MCP 相关

该技能使用 Chrome DevTools MCP 打开 Google Scholar 的被引结果并提取引用论文。

安装

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

$npx skills add https://github.com/cookjohn/gs-skills --skill gs-cited-by

安装后在 Claude Code 中输入/gs-cited-by确认已加载。

详细介绍

Google Scholar — 被引情况(引文追踪)

查找引用某篇论文的所有论文。使用 Google Scholar 的 cites 参数和论文的集群 ID(data-cid)。

参数

$ARGUMENTS 可以是:

  • 之前搜索结果中的 data-cid(例如,TFS2GgoGiNUJ)
  • 论文标题(将先搜索以查找 data-cid)

步骤

步骤 1:解析 data-cid

如果 $ARGUMENTS 是 data-cid(字母数字字符串,不含空格):直接使用。

如果 $ARGUMENTS 是标题或描述:先搜索以查找 data-cid:

  1. 使用 gs-search 将标题作为关键词
  2. 根据标题相似度,在结果中匹配目标论文
  3. 提取其 dataCid
步骤 2:导航到“被引”页面

使用 mcp__chrome-devtools__navigate_page:

  • url:https://scholar.google.com/scholar?cites={DATA_CID}&hl=en&num=10

将 {DATA_CID} 替换为解析得到的集群 ID。

步骤 3:提取引用该论文的论文(evaluate_script)

使用与 gs-search 相同的提取脚本:

async () => {
  for (let i = 0; i < 20; i++) {
    if (document.querySelector('#gs_res_ccl') || document.querySelector('#gs_captcha_ccl')) break;
    await new Promise(r => setTimeout(r, 500));
  }

  if (document.querySelector('#gs_captcha_ccl') || document.body.innerText.includes('unusual traffic')) {
    return { error: 'captcha', message: 'Google Scholar requires CAPTCHA verification. Please complete it in your browser, then tell me to continue.' };
  }

  const items = document.querySelectorAll('#gs_res_ccl .gs_r.gs_or.gs_scl');
  const results = Array.from(items).map((item, i) => {
    const titleEl = item.querySelector('.gs_rt a');
    const meta = item.querySelector('.gs_a')?.textContent || '';
    const parts = meta.split(' - ');
    const authors = parts[0]?.trim() || '';
    const journalYear = parts[1]?.trim() || '';
    const citedByEl = item.querySelector('.gs_fl a[href*="cites"]');

    return {
      n: i + 1,
      title: titleEl?.textContent?.trim() || item.querySelector('.gs_rt')?.textContent?.trim() || '',
      href: titleEl?.href || '',
      authors,
      journalYear,
      citedBy: citedByEl?.textContent?.match(/\d+/)?.[0] || '0',
      dataCid: item.getAttribute('data-cid') || '',
      fullTextUrl: (item.querySelector('.gs_ggs a') || item.querySelector('.gs_or_ggsm a'))?.href || '',
      snippet: item.querySelector('.gs_rs')?.textContent?.trim()?.substring(0, 200) || ''
    };
  });

  const totalText = document.querySelector('#gs_ab_md')?.textContent?.trim() || '';
  const currentUrl = window.location.href;
  return { total: totalText, resultCount: results.length, currentUrl, results };
}
步骤 4:报告
Papers citing [{original paper title}] (data-cid: {DATA_CID}):
{total}

1. {title}
   Authors: {authors} | {journalYear}
   Cited by: {citedBy}
   Data-CID: {dataCid}

2. ...

后续操作

  • 查看更多引用该论文的论文:使用 gs-navigate-pages(分页同样适用于被引页面)
  • 导出引用该论文的论文:使用 gs-export 和相应的 data-cid
  • 递归追踪引用:对任何一篇引用该论文的论文使用 gs-cited-by

注意事项

  • 此技能会使用 2–3 次工具调用:可选搜索 + navigate_page + evaluate_script
  • cites 参数使用集群 ID(data-cid),而非 DOI 或论文 ID
  • 被引页面支持与常规搜索相同的分页(start 参数)
  • Google Scholar 上的引用数量通常高于 PubMed,因为它还包含非 PubMed 来源(书籍、论文、预印本等)

评论

支持 Markdown