CiteGuard

io.github.lonexreb由 GitHub 帳號 lonexreb 發布v0.1.2更新於 Oct 27, 2026

Open watchdog for retracted & problematic citations: Retraction Watch, OpenAlex, Crossref.

已驗證STDIO僅桌面知識與記憶資料與分析

概覽

AI 產生的概覽

CiteGuard 透過 Retraction Watch、OpenAlex 與 Crossref 資料,檢查參考文獻、作者或機構論文是否涉及撤稿、更正或被標記的研究。

可以做什麼
  • 檢查參考文獻清單:輸入 DOI 或 .bib 檔案,逐筆回傳撤稿、更正、關注聲明、劫持期刊或正常等狀態
  • 查詢單篇論文的編輯狀態,附上來源、證據連結、日期與信心度說明,來源衝突時明確提示
  • 依 ROR ID 關注某個機構,當其論文引用或成為新被標記論文時產生摘要
  • 證據不足時回傳 UNKNOWN 而非猜測
適用情境
適合研究誠信承辦人、期刊編輯、圖書館員、系統性回顧作者,以及投稿前自行檢查參考文獻的作者,用來篩檢參考文獻或機構成果中的撤稿與更正引用。
執行需求
以 stdio 本機程序執行,來自 PyPI 套件 retractguard,需 Python 3.11+ 與 uv,透過 uvx 或 retractguard-mcp 指令啟動。即時 OpenAlex 查詢與 watch_institution 需要 OPENALEX_API_KEY 中的 OpenAlex API 金鑰,禮貌池需在 CITEGUARD_MAILTO 提供聯絡信箱。首次呼叫會下載約 65 MB 的 Retraction Watch 資料到 CITEGUARD_DATA_DIR(預設 ./data)。
安裝前請注意
需要以環境變數提供 OpenAlex API 金鑰(OPENALEX_API_KEY)與聯絡信箱(CITEGUARD_MAILTO)。專案自述處於早期開發階段,據此採取行動前應核對原始編輯聲明。參考文獻清單與機構查詢會傳送至 OpenAlex、Crossref 與 Retraction Watch 資料來源。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 CiteGuard,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[CiteGuard — the open watchdog for retracted and problematic citations]

CiteGuard

[PyPI] [DOI] [License: MIT]

The free, open, OpenAlex-native watchdog for retracted and problematic citations.

CiteGuard tells you — and keeps telling you — when your references, your authors, or your institution's papers cite research the community has flagged as retracted, corrected, or subject to an expression of concern.

It exists because the existing options each fall short: scite is proprietary and paywalled, RetractoBot had to license Scopus (no open citation database existed at the time), and OpenAlex collapses all editorial status into a single is_retracted boolean that can't tell a retraction from a correction — and has produced false positives in the past.

Now that the Retraction Watch dataset is open (via Crossref) and the OpenAlex citation graph is CC0, CiteGuard can do this fully in the open, for free.

Status: early development. Building the MVP. See GOAL.md for the mission and CLAUDE.md for the build guide.

What it does

  • Check a reference list. Paste a DOI or upload a .bib file → get a per-reference status: retracted, corrected, expression of concern, hijacked-journal, or clean.
  • Nuanced status, not a boolean. Every flag carries its source (Retraction Watch / OpenAlex / Crossref), an evidence link, a date, and a confidence note. When sources disagree, CiteGuard surfaces the conflict instead of silently guessing.
  • Watch an institution. Point it at a ROR ID → get a digest when any of that institution's works cites (or becomes) a newly-flagged paper.
  • Use it from an AI agent. An MCP server exposes the same logic as tools (check_references, get_editorial_status, watch_institution) for Claude, Cursor, and any MCP-compatible client.

Why it's trustworthy

Integrity tooling can do real harm if it's wrong — a false "retracted" flag damages a real author. CiteGuard is conservative by design: it corroborates before flagging, prefers the documented editorial notice, and marks a work UNKNOWN rather than guess. Every core capability ships with a published eval reporting precision and recall on a gold set.

Who it's for

  • Research-integrity officers and journal editors screening submissions
  • Academic librarians at OpenAlex-adopting institutions
  • Systematic reviewers (one retracted included study can invalidate a review)
  • Developers and meta-scientists building on the MCP server
  • Authors checking their own bibliography before submission

Architecture

One core, two surfaces.

                 ┌─────────────────────────────┐   OpenAlex ─────▶                             │   (CC0 graph)   │   editorial-status model    │──▶  MCP server                 │   + resolution logic        │      (check_references,   Retraction ──▶│   (conservative)            │       get_editorial_status,   Watch (open)  │                             │       watch_institution)                 │                             │──▶  reference-list checker   Crossref ─────▶                             │      (DOI / .bib → statuses,   (DOI norm.)   └─────────────────────────────┘       thin web UI)

Repository layout:

src/citeguard/  openalex.py         # keyed, rate-aware, ID-lookup-first OpenAlex client  retractionwatch.py  # ingest + normalize the Retraction Watch dump  status.py           # the EditorialStatus model + resolution logic (core)  checker.py          # reference-list checker (DOI / .bib -> statuses)  mcp_server.py       # MCP server exposing the three toolstests/                # pytest unit + functional testsevals/                # gold sets + precision/recall harnessdata/                 # local RW dump + cached lookups (gitignored)

Design constraints (important)

  • Free-tier-aware. OpenAlex API keys are required (since Feb 13, 2026); the free tier is small and search costs ~10× a record lookup. CiteGuard resolves to IDs first and looks up by ID; bulk work uses the free monthly snapshot, and the live API is reserved for incremental checks.
  • Open and reproducible. CC0 ethos, with proper attribution to Retraction Watch and OpenAlex, thorough docs, and a Zenodo DOI.

Getting started (dev)

Requires Python 3.11+ and uv.

bash
uv sync                                   # install dependenciesexport OPENALEX_API_KEY=...               # your OpenAlex keyexport [email protected]   # polite-pool contact
uv run pytest                             # run testsuv run python -m evals.run                # run the eval harness (precision/recall)uv run python -m citeguard.mcp_server     # launch the MCP server locally

Connect it as an MCP server

CiteGuard exposes get_editorial_status, check_references, and watch_institution to any MCP client. After pip install retractguard (or uv tool install retractguard), the retractguard-mcp command launches the stdio server.

Claude Desktop — add to claude_desktop_config.json:

json
{  "mcpServers": {    "retractguard": {      "command": "retractguard-mcp",      "env": {        "OPENALEX_API_KEY": "your-key",        "CITEGUARD_MAILTO": "[email protected]"      }    }  }}

Cursor / other clients — point them at the same retractguard-mcp command (stdio transport). Running from a checkout instead of an install? Use "command": "uv", "args": ["run", "retractguard-mcp"] with "cwd" set to the repo.

On first call the server downloads the Retraction Watch dump (~65 MB, free) into CITEGUARD_DATA_DIR (default ./data). Editorial-notice lookups (Retraction Watch, Crossref) need no key; OpenAlex corroboration and watch_institution do.

The web checker

A thin web UI for people who don't live in an editor — paste DOIs or drop a .bib file, get a per-reference status table.

bash
retractguard-web            # then open http://127.0.0.1:8000# or from a checkout: uv run python -m citeguard.web

Add Accept: application/json to POST /check to get the results as JSON instead of a table. It reuses the same conservative resolution logic as the MCP server — no separate code path, no separate trust model.

Roadmap (MVP)

  1. status.py — the normalized editorial-status model (foundation)
  2. retractionwatch.py — ingest + normalize the Retraction Watch dump
  3. openalex.py — keyed, ID-first client
  4. checker.py — DOI / .bib → statuses
  5. mcp_server.py — expose the three tools
  6. evals/ — gold set + precision/recall harness (running from step 2 onward)

Credits & data

  • OpenAlex — CC0 scholarly metadata and citation graph.
  • Retraction Watch — retraction database, made openly available via Crossref.
  • Crossref — DOI infrastructure.

CiteGuard is independent and not affiliated with these projects; it builds on their open data with gratitude.

License

MIT (see LICENSE) — permissive and maximally reusable, in keeping with the open-science ethos in GOAL.md.

The code is CiteGuard's. The data it builds on is not and carries its own terms: Retraction Watch (via Crossref) and OpenAlex/Crossref metadata. CiteGuard redistributes only a tiny evaluation extract (see evals/fixtures/ATTRIBUTION.md); anything at scale should be fetched from the upstream sources under their licenses.

來源:README.md,提交 0689cfa

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.2最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分