Skip to main content
Glama

citeguard

Отозванные статьи цитируются годами после того, как были отозваны. Сфальсифицированная статья Эндрю Уэйкфилда 1998 года, связывающая вакцину MMR с аутизмом, — отозванная в 2010 году, — цитировалась более тысячи раз после отзыва, и исследователи, у которых не было простого способа узнать об этом. Исследование JMIR 2026 года показало, что свободно доступные AI-инструменты «не могут надёжно распознавать отозванную литературу», как раз тогда, когда AI-помощь в исследованиях и написании текстов переживает взрывной рост. citeguard закрывает этот пробел: проверьте цитату по Crossref — бесплатно, без ключа API, — прежде чем она попадёт в статью, обзор или рецензию.

Три интерфейса, один проверенный алгоритм выявления:

Интерфейс

Назначение

Расположение

Библиотека Python + CLI

академические авторы, скрипты

src/citeguard/

MCP сервер

AI-агенты, занимающиеся исследованиями и написанием

mcp-server/

GitHub Action

CI в репозитории лаборатории или журнала

action.yml

Почему это построено именно так

Логика выявления не угадана из документации — она построена на обращениях к реальному 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 below

MCP 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.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to fact-check claims, verify citations, and check source freshness using Wikipedia, Wikidata, Crossref, and Wayback Machine.
    1
  • A
    license
    Not graded
    quality
    C
    maintenance
    Ground citations before your agent emits them by checking references against public scholarly registries and flagging hallucinated or retracted ones.
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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