mcpField
A
arxiv-monitor

arxiv-monitor

github.com/dsebastien生産性770 回インストール28 週間前に更新
リポジトリ

arxiv-monitor について

arxiv-monitorは、arXivの検索条件やカテゴリを継続的に追跡するスキルです。既出論文のIDを保存して新着のみを返し、検索には同じディレクトリにあるarxiv-searchを使います。

主な機能

  1. 01検索語またはカテゴリでウォッチを作成
  2. 02未確認の論文のみを返す
  3. 03保存済みトピックを一括チェック
  4. 04チェック結果をJSONで出力
  5. 05ローカルのウォッチ状態を原子的に更新

活用シーン

  1. 01研究分野の新着論文を継続的に発見
  2. 02arXivカテゴリの更新確認
  3. 03保存済みトピックをまとめて一度に確認

インストール

コマンドをコピーしてターミナルで実行します。

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

インストール後、Claude Code で/arxiv-monitorを入力して読み込まれたか確認します。

同梱ファイルscripts/arxiv_monitor.py

詳細

arXiv Monitor

arXiv のクエリやカテゴリを継続的に追跡します。状態は scripts/watchlist.json に保存されます。各ウォッチでは、すでに表示した arXiv ID を記憶するため、check を実行するたびに新しい論文のみが返されます。

使用する場面

  • 特定の研究分野について継続的に情報を探したい場合
  • あるカテゴリから新しい論文が公開されたら通知を受け取りたい場合
  • cron、スケジュール済みジョブ、または自動検索用の /loop と組み合わせる場合
  • 保存済みの複数のトピックについて、一度だけ「新着」を確認する場合

状態を保存せずに一度だけ検索する場合は、arxiv-search を直接使用してください。

依存関係

arxiv-monitor は、クエリを実行するためにサブプロセス経由で arxiv-search を呼び出します。両方のスキルが同じ skills/ ディレクトリ内に兄弟としてインストールされている場合、相対パスは自動的に解決されます。arxiv-monitor のみをインストールすると、check の実行に失敗します。arxiv-search も一緒にインストールしてください。

アーキテクチャ

このスクリプトは arxiv-search の薄いラッパーです。保存済みのクエリパラメーターを使って検索スクリプトを呼び出し、その後、対象ウォッチの seen_ids リストと照合して応答をフィルタリングします。新しい論文 ID は seen_ids に追加されます(ウォッチごとに最大 500 件)。状態はアトミックに書き込まれます(一時ファイルと os.replace を使用)。

コマンド

# Inspect
python3 scripts/arxiv_monitor.py list

# Add a watch (needs --query and/or --category)
python3 scripts/arxiv_monitor.py add "interp-ml" \
    --query "mechanistic interpretability" --category cs.LG --max 30

# Check one watch (returns new-only, updates state)
python3 scripts/arxiv_monitor.py check "interp-ml"

# Check everything (respects arXiv API's 1-req-per-3s soft limit)
python3 scripts/arxiv_monitor.py check-all

# Reset seen-ids (treat next check as first run)
python3 scripts/arxiv_monitor.py reset "interp-ml"

# Remove a watch entirely
python3 scripts/arxiv_monitor.py remove "interp-ml"

check/check-all の出力は JSON です:{"name", "total_returned", "new_count", "new": [...]}。

ワークフロー

1. 意図を把握する
  • 「X をウォッチしたい」/「X を追跡したい」→ add
  • 「新着は?」→ check-all
  • 「自分の ウォッチの新しい論文」→ check <name>
  • 「X の追跡をやめたい」→ remove
2. add の場合:パラメーターを集める

不明な点がある場合にのみ、ユーザーに確認してください:

  • Name — 短いスラッグ、ケバブケース。必須です。
  • Query — 自由記述のテキスト。複数語は個別の句として AND 検索されます。
  • Category — arXiv のコード(cs.LG、cs.CL、stat.ML など)。省略可能です。
  • 確認ごとの最大結果数 — デフォルトは 30 です。

query または category の少なくとも一方を指定する必要があります。

3. check の場合:実行してフィルタリングする

コマンドを実行します。new_count == 0 の場合は、「前回の確認以降、新しい論文はありません」とタイムスタンプだけを伝えてください。new_count > 0 の場合:

  • 新しい論文を簡潔な表で提示します(arXiv ID、タイトル、著者、日付、主カテゴリ)。
  • 論文の分析を提案します(→ arxiv-analyze)。
4. check-all の場合:一括レポート

ウォッチごとに概要を 1 行ずつ表示し、新しい論文があるウォッチの詳細を続けて示します。

状態ファイル

scripts/watchlist.json の構造:

{
  "watches": {
    "interp-ml": {
      "query": "mechanistic interpretability",
      "category": "cs.LG",
      "max": 30,
      "seen_ids": ["2501.11120v1", "..."],
      "last_checked": "2026-04-16T09:00:00Z",
      "created": "2026-04-16T09:00:00Z"
    }
  }
}

確認の実行中は手動で編集しないでください。デバッグのために、実行と実行の間に直接編集することは問題ありません。

seen_ids は、ウォッチごとに直近の 500 件に整理されます。長期間確認されず古い論文がリストから外れた場合、次回の確認時に再び表示されることがあります。状態サイズを制限するためのトレードオフとして許容されています。

厳守事項

  • スクリプトの処理を超えて、seen-ids リストを切り詰めないでください。 このリストは重要な役割を担っており、切り詰めると新しい論文ではないものが「新着」として誤検出されます。
  • ウォッチごとにクエリは 1 つです。 あるトピックに複数の切り口がある場合は、複数のウォッチを作成してください。
  • --max は 100 を上限とします。 これを超えると arXiv API の応答が遅くなり、シグナル対ノイズ比が低下します。
  • arXiv API のレート制限に注意してください。 check-all はウォッチ間で 3 秒待機します。並列実行しないでください。

要件

  • Python 3.11 以降(標準ライブラリのみ。pip によるインストールは不要です)
  • arxiv-search スキルが兄弟としてインストールされていること(同じ skills/ ディレクトリ内)

コメント