Skip to main content
Glama

mcp-refchecker

PyPI

MCP-сервер, который позволяет Claude проверять академические цитирования в режиме реального времени через Semantic Scholar, OpenAlex и Crossref — выявляя галлюцинации или неверные ссылки до того, как они попадут в вашу работу.

Построен на базе academic-refchecker (MIT).

Инструмент

verify_citation — проверяет, существует ли цитируемая статья и совпадают ли её метаданные (название, авторы, год, место публикации) с указанными.

Параметр

Тип

Обязательный

Описание

title

string

да

Название цитируемой статьи

authors

string[]

нет

Список имен авторов

year

integer

нет

Год публикации

doi

string

нет

DOI (например, 10.1145/12345)

arxiv_id

string

нет

arXiv ID (например, 2301.00001)

url

string

нет

Прямая ссылка на статью

Возвращает JSON:

{
  "verified": true,
  "url": "https://...",
  "matched_paper": {
    "title": "...",
    "authors": [...],
    "year": 2023,
    "venue": "..."
  },
  "possible_match": null,
  "errors": null,
  "warnings": null,
  "info": null
}

Поля результата

  • verified — true, если статья найдена и все предоставленные метаданные (год, авторы, место публикации) совпадают. false, если есть реальное несоответствие метаданных или статью не удалось найти.

  • matched_paper — достоверные метаданные из источника проверки.

  • possible_match — вариант соответствия из Crossref, если точное название не было найдено, но был найден близкий вариант (см. «Нечеткий поиск» ниже).

  • errors — критические ошибки, блокирующие проверку (неверный год, неверные авторы, статья не найдена).

  • warnings — предупреждения, не блокирующие проверку (различия между v1 и v2 в arXiv, различия между препринтом arXiv и опубликованной версией, неполные входные метаданные).

  • info — информационные предложения (например, «ссылка может включать URL arXiv»).

Что считается ошибкой, а что — предупреждением

academic-refchecker возвращает плоский список проблем с некоторой непоследовательностью (несовпадения года помечаются как предупреждения, в то время как несовпадения авторов — как ошибки). Эта обертка нормализует вывод:

  • Повышены до критических ошибок: явные несовпадения year/author/venue, где цитируемые метаданные действительно отличаются от реальности. Они блокируют verified.

  • Понижены до предупреждений: ошибки «отсутствующее поле», когда статья найдена, но пользователь изначально не предоставил это поле. Отсутствие входных метаданных не является доказательством галлюцинации цитирования.

  • Оставлены как предупреждения: различия версий arXiv (v1 vs v2), примечания о различии препринта и опубликованной версии.

Нечеткий поиск и его ограничения

Когда academic-refchecker сообщает, что статью не удалось проверить, эта обертка делает вторичный запрос к Crossref, используя нечеткое сравнение названий и fuzzywuzzy.ratio. Если найден кандидат со сходством ≥ 85%, он возвращается как possible_match с предупреждением.

Что ловит нечеткий поиск:

  • Стилистические вариации названий (различия в регистре, пунктуации, порядке слов)

  • Незначительные изменения формулировок

  • Названия, которые строгое сравнение refchecker отклонило, несмотря на валидность

Что НЕ ловит нечеткий поиск:

  • Реальные опечатки в ключевых словах названия (например, «Atention Is All You Need»)

  • Сильно искаженные названия

Это фундаментальное ограничение бесплатных академических поисковых API. Crossref, OpenAlex и Semantic Scholar используют поиск по ключевым словам/токенам — как только ключевое слово написано с ошибкой, его просто нет в поисковом индексе, и реальная статья не появится в результатах, независимо от того, как вы обрабатываете их после. Для обнаружения реальных опечаток потребовались бы семантические эмбеддинги из платного API (OpenAI, Voyage и т.д.) или полнотекстовый поисковый движок с нечетким поиском, ни один из которых не предоставляется бесплатными научными источниками данных.

Если вы подозреваете опечатку, но verify_citation возвращает результат «не проверено», лучший способ — переписать название в максимально канонической форме и попробовать снова.

Related MCP server: Lyra's Expanded Research MCP

Установка и настройка

Рекомендуется: uvx (без этапа установки)

Если у вас установлен uv, отдельная установка не требуется. Добавьте напрямую в ваш claude_desktop_config.json:

{
  "mcpServers": {
    "refchecker": {
      "command": "uvx",
      "args": ["mcp-refchecker"]
    }
  }
}

uvx автоматически загружает и запускает пакет в изолированной среде. Перезапустите Claude Desktop после сохранения конфигурации.

Альтернатива: pip

pip install mcp-refchecker

Затем добавьте в claude_desktop_config.json:

{
  "mcpServers": {
    "refchecker": {
      "command": "mcp-refchecker"
    }
  }
}

Из исходного кода

git clone https://github.com/JonasBaath/mcp-refchecker
cd mcp-refchecker
pip install .

Дополнительные переменные окружения

  • SEMANTIC_SCHOLAR_API_KEY — запросите ключ здесь для повышения лимитов запросов на основном пути проверки refchecker.

  • CROSSREF_MAILTO — ваш контактный email, используемый для присоединения к polite pool Crossref для более надежного доступа к нечеткому поиску.

  • MCP_REFCHECKER_DEBUG — установите любое непустое значение для вывода отладочных логов пути нечеткого поиска в stderr.

Пример со всеми дополнительными настройками (uvx):

{
  "mcpServers": {
    "refchecker": {
      "command": "uvx",
      "args": ["mcp-refchecker"],
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "your-key-here",
        "CROSSREF_MAILTO": "you@example.com"
      }
    }
  }
}

Лицензия

MIT — © Jonas Bååth. Построено на academic-refchecker (MIT).

Available Tools

1 tool
verify_citationA

Verify that an academic citation is accurate by checking it against Semantic Scholar, OpenAlex, and CrossRef. Returns whether the paper exists and flags mismatches in title, authors, year, or venue.

Args: title: Title of the cited paper (required). authors: List of author names. year: Publication year. doi: DOI of the paper (e.g. 10.1145/12345). arxiv_id: arXiv ID (e.g. 2301.00001). url: Direct URL to the paper.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYes
authorsNo
yearNo
doiNo
arxiv_idNo
urlNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explains what the tool checks (title, authors, year, venue) and the sources used, adding behavioral context beyond the schema. However, with no annotations provided, this dimension carries full weight; the description does not cover all potential behaviors such as rate limits, authentication requirements, or error handling, but given the straightforward nature of a citation verification tool, the disclosure is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, with a clear first paragraph stating the tool's purpose followed by a bulleted list of parameters. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (6 parameters, 1 required, output schema present), the description covers the essential information. It explains the verification process and parameter meanings, but lacks details on output structure. However, since an output schema exists, this omission is acceptable. The description is sufficiently complete for effective usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides brief semantic information for each parameter, defining what they represent (e.g., 'DOI of the paper', 'arXiv ID'). However, the input schema's title fields already convey most of this information (e.g., 'Doi', 'Arxiv Id'), and the description does not add significant new meaning. Schema description coverage is 0%, so the description compensates minimally.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: verifying academic citations by checking against three specific databases (Semantic Scholar, OpenAlex, CrossRef). It precisely describes the verification outputs: existence check and mismatch flags for title, authors, year, or venue. This is specific and informative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly lists parameters with their types and example formats, providing guidance on how to use the tool. However, it does not indicate when not to use this tool or mention alternatives, which would be beneficial since there are no sibling tools. The clarity of the parameter descriptions partly compensates.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.1.0
    • First observedverify_citation

TDQS

A3.8/5.0

Scored across 1 tool

Disambiguation5/5

Only one tool exists, so there is no ambiguity between tools. The single tool has a clear, singular purpose.

Naming Consistency3/5

With only one tool, consistency with other tools is not applicable. The name itself (verify_citation) follows a reasonable verb_noun pattern, but no pattern across tools can be evaluated.

Tool Count2/5

The server provides only one tool for the domain of citation verification. While verifying a citation is a focused task, real-world usage often requires additional operations like batch verification, retrieving paper details, or checking multiple citations at once, making the single tool feel too limited.

Completeness2/5

The tool covers a single operation (verifying a citation) but lacks other related operations such as searching for papers, listing citations for a paper, or bulk verification. For a comprehensive citation checking service, the coverage is incomplete.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Comprehensive MCP server for academic research workflows, enabling paper searching across multiple sources, manuscript processing with citation placeholders, search caching, and citation export.
    11
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Unified MCP server for scientific literature search and extraction, integrating databases like Scopus, OpenAlex, Semantic Scholar, and Unpaywall to enable AI agents to discover papers, track citations, and analyze content.
    27
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    An MCP server that verifies the existence, metadata accuracy, and claim support of academic citations by querying sources like OpenAlex, Crossref, and arXiv, enabling AI agents to fact-check references.
    7
    68 PyPI
    1
    MIT