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 分