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. 02data-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 — 引用論文(引用追跡)

指定した論文を引用しているすべての論文を検索します。論文のクラスター ID(data-cid)を使った Google Scholar の cites パラメーターを使用します。

引数

$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 を使用します(引用元ページでもページネーションを利用できます)
  • 引用論文をエクスポートする:data-cid(s) を指定して gs-export を使用します
  • 再帰的に引用を追跡する:引用論文のいずれかに対して gs-cited-by を使用します

注記

  • このスキルでは、ツールを 2~3 回呼び出します:任意の検索 + navigate_page + evaluate_script
  • cites パラメーターではクラスター ID(data-cid)を使用します。DOI や論文 ID は使用しません
  • 引用元ページでは通常の検索と同じページネーション(start パラメーター)を利用できます
  • Google Scholar の引用数は、PubMed 以外の情報源(書籍、学位論文、プレプリントなど)を含むため、通常は PubMed より多くなります

コメント