citeguard
citeguard
Отозванные статьи цитируются годами после того, как были отозваны. Сфальсифицированная статья Эндрю Уэйкфилда 1998 года, связывающая вакцину MMR с аутизмом, — отозванная в 2010 году, — цитировалась более тысячи раз после отзыва, и исследователи, у которых не было простого способа узнать об этом. Исследование JMIR 2026 года показало, что свободно доступные AI-инструменты «не могут надёжно распознавать отозванную литературу», как раз тогда, когда AI-помощь в исследованиях и написании текстов переживает взрывной рост. citeguard закрывает этот пробел: проверьте цитату по Crossref — бесплатно, без ключа API, — прежде чем она попадёт в статью, обзор или рецензию.
Три интерфейса, один проверенный алгоритм выявления:
Интерфейс | Назначение | Расположение |
Библиотека Python + CLI | академические авторы, скрипты | |
MCP сервер | AI-агенты, занимающиеся исследованиями и написанием | |
GitHub Action | CI в репозитории лаборатории или журнала |
Почему это построено именно так
Логика выявления не угадана из документации — она построена на обращениях к реальному API Crossref, на изучении фактической структуре ответов и на тестах, опирающихся на сохранённые реальные ответы (зафиксированные в tests/fixtures/, общих для Python- и TypeScript-реализаций). Две реальные статьи задают эталонную основу:
Wakefield et al., 1998, The Lancet (сообщения о связи между MMR и аутизмом): в метаданных самого издателя в Crossref нет структурированных данных об отзыве — одна только проверка
update-toпропустила бы это молча. Сигнал на самом деле несёт отдельное полеupdated-by, куда Crossref добавил задним числом сведения об отзыве (и более ранней правке 2004 года) из базы данных Retraction Watch. Упустить это поле означало бы упустить самую известную отозванную статью в медицине.[Mehra et al., 2020, The Lancet](https://doi.org/10.1016/S0140-6736(20\\\\)31180-6) (статья о COVID/гидроксихлорохине, связанная с Surgisphere): здесь издатель сам прикрепил структурированные данные напрямую, через
update-to. Другое поле, другое происхождение — под этими данными лежит тот же факт.Watson & Crick, 1953, Nature служит чистым контролем в каждом тестовом наборе — статья, которая определённо реальна и точно не отозвана, и которая никогда не должна быть помечена.
Итак, проверяющий модуль смотрит на три независимых сигнала в таком порядке: update-to (указывается издателем), updated-by (часто поступает из Retraction Watch, отражая то, что издатели пропускают), и запасной вариант по префиксу заголовка (например, «RETRACTED:», «WITHDRAWN:») для старых или несвязанных случаев, где структурированных метаданных нет ни в одном поле. Каждый сигнал привязан нужной степени серьёзности: заголовок с «Expression of Concern:» — это не то же самое, что отзыв, и то, что более ранние версии кода стирал это различие, само по себе было ошибкой, которую выявили тесты на реальных заголовках, а не только на синтетических. Полностью комментированная реализация — в src/citeguard/analyze.py.
Related MCP server: verification-mcp
Быстрый старт
CLI:
pip install -e .
citeguard doi 10.1016/S0140-6736(97)11096-0
citeguard file references.bib --fail-on retracted # for CI, see belowMCP server (добавьте в конфигурацию вашего клиента, например .mcp.json):
{ "mcpServers": { "citeguard": { "command": "node", "args": ["/path/to/citeguard/mcp-server/dist/index.js"] } } }GitHub Action (в workflow в другом репозитории):
- uses: wedo911/citeguard@main
with:
path: references.bib
fail-on: concern # never | retracted | concern | correctedЧто это не такое
Не является доказательством того, что содержание статьи корректно. Проверяется только статус отзыва, а не то, устоят не ли результата неотозванной статьи.
Не исчерпывающая. Эвристика по префиксу в заго ловне расп узнаёт только те издательские условности, которыми протестирован; о результат означает «известный сигнал сигнал не найден», а не «гарантированно никогда не отзывавн».
Не инструмент массового скрайпинга. О построен для размера реальной библиографии (десятков citations), with small fixed delay between Crossref requests and optional persistent cache (
src/citeguard/ca.py) — вежливое отношение к бесплатному публичному API, not a tool for scanning millions of DOIs.
Запуск тестов
# Python (55 tests, including against the real fixtures above)
pip install -e ".[dev]" && pytest -v
# MCP server (17 tests against the same real fixtures)
cd mcp-server && npm install && npm run build && npm testОба набора тестов работы и де отделённые(sets) — они работают на закоммитченных реальных API-ответов, а не на живых вызовах, так, поэтому ва они быстрые и не зависят от досту nested by Crossref. Живое сквозное поведение — сам CLI, сам инструмент, реальный API-nic — было отдельно и вручную проверено during development; GOST; GitHub Action также имеет own CI-задака́not чтобы constantly проводить реal API но и на оси оци images etc.,
Вклад
Новые типы сигналов, дополнительные издательски условияй заголовках and ложнопол даетются. Если вы добавляете пример, предпочтительнее его как реальную, цитирующую фиксированную Crossref, а не синтетик, hue evolve em em pamer... Catch these errors: Thus the جمله التصويت interviewing نحن في الكاميرونيّة، وâا، Mahmoud – reconstructions referencing scrambling HTTP-btn. For this, decrement due—volt to ставку "inclusion". Provide raw outputs gener. /From git/Git commit e/script 누락.
Prefer adding a case as a real, cited Crossref fixture over a synthetic one where possible—that's what caught the two real bugs. This project's own test suite found during development (a URL-encoding bug in the DOI request path, and a BibTeX parser that could swallow an adjacent entry when parsing a malformed @comment block).
License
MIT — see LICENSE.
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseAqualityDmaintenancePrevents citation hallucination by verifying academic citations against CrossRef's database of 150+ million publications before they can be mentioned, ensuring every citation includes a valid DOI.315MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to fact-check claims, verify citations, and check source freshness using Wikipedia, Wikidata, Crossref, and Wayback Machine.1
- AlicenseNot gradedqualityCmaintenanceVerifies citations in reference lists by checking DOIs against public registries to catch AI-hallucinated or mismatched citations.MIT

CiteStamp MCP serverofficial
AlicenseNot gradedqualityCmaintenanceGround citations before your agent emits them by checking references against public scholarly registries and flagging hallucinated or retracted ones.MIT
Related MCP Connectors
Catch AI-fabricated citations (real DOI + fake title). Retraction, open-access, 10,000+ CSL styles.
Real-time fact-check, citation verification, and source-freshness for AI agents.
AI research grounded in 300M scientific works — every citation a verifiable DOI.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/wedo911/citeguard'
If you have feedback or need assistance with the MCP directory API, please join our Discord server