A pasteable skeleton generated from the repository name. Check the project README for the exact package and arguments.
Star count
1 ★ · wedo911/citeguard · read from the repository page · (checked 2026-10-16 20:00:20)
Source
collected from the punkpeye/awesome-mcp-servers list · type: MCP server
Harvest history
first seen 2026-10-09 · last seen 2026-10-16 · seen 32× · listed by 7 sources
Score
score 703 · 1 ★ · 7 sources · mcp
FAQ (answers come from our records)
How do I install it?
We did not find an install command for this repository (our install coverage is only about 4%). Check its README or releases page.
Who is it for?
We filed it under these tags: MCP 服务. The tags come from the entry itself, not a taxonomy we imposed.
Who maintains it?
repository wedo911/citeguard;first catalogued 2026-10-09;last seen 2026-10-16。There is no official certification or quality rating here — we record sources and dates only.
Retracted papers get cited for years after retraction. Andrew Wakefield's fraudulent 1998 paper linking the MMR vaccine to autism — retracted in 2010 — has been cited well over a thousand times *since* its retraction, by researchers who had no easy way to know. A 2026 JMIR study found that freely available AI tools "cannot reliably flag retracted literature," right as AI-assisted research and writing has exploded. citeguard closes that gap: check a citation against Crossref — free, no API key — before it goes in a paper, a summary, or a review. Three surfaces, one verified detection algorithm: | Surface | For | Location | |---|---|---| | **Python library + CLI** | academic writers, scripts | src/citeguard/ | | **MCP server** | AI agents doing research/writing | mcp-server/ | | **GitHub Action** | CI on a lab's or journal's repo | action.yml | Why this is built the way it is The detection logic isn't guessed at from documentation — it was built by querying Crossref's real API for known cases and reading the actual response shapes, then writing tests against the saved real responses (committed in tests/fixtures/, shared by both the Python and TypeScript implementations). Two real papers anchor the ground truth: - **Wakefield et al., 1998, *The Lancet*11096-0)** (the MMR-autism paper): the publisher's own Crossref metadata has *no* structured retraction data — an update-to check alone would silently miss it. What actually carries the signal is a separate updated-by field, where Crossref has backfilled the retraction (and an earlier 2004 correction) from the **Retraction Watch database** itself. Missing this field would have meant missing the single most famous retracted paper in medicine. - **Mehra et al., 2020, *The Lancet*31180-6)** (the Surgisphere-linked COVID/hydroxychloroquine paper): here the *publisher* did attach structured data directly, via update-to. A different field, a different provenance, same underlying fact. - **Watson & Crick, 1953, *Nature*** serves as the clean control in every test suite — a definitely-real, definitely-not-retracted paper that must never be flagged. So the checker looks at three independent signals, in order: update-to (publisher-asserted), updated-by (often Retraction-Watch-sourced, catching what publishers miss), and a title-prefix fallback ("RETRACTED:", "WITHDRAWN:", etc.) for older or unlinked cases with no structured metadata on either field. Each signal is mapped to the right severity — an "Expression of Concern:" title is not the same thing as a retraction, and earlier versions of this code collapsing that distinction was itself a bug caught by testing against real titles, not just synthetic ones. See src/citeguard/analyze.py for the fully-commented implementation. Quick start **CLI:** The distribution is named citeguard-cli on PyPI because the plain citeguard name there belongs to an unrelated project. The command and the import are still citeguard. **MCP server** (add to your client's config, e.g. .mcp.json): Published on npm as citeguard-mcp-server — nothing to clone or build. To run it from a local checkout instead, point command at node and args at mcp-server/dist/index.js.