MCP Refchecker

Un servidor MCP ligero que envuelve academic-refchecker, permitiendo a Claude verificar citas académicas contra Semantic Scholar, OpenAlex y CrossRef en tiempo real.

Documentación

mcp-refchecker

PyPI

Un servidor MCP que permite a Claude verificar citas académicas en tiempo real contra Semantic Scholar, OpenAlex y Crossref, detectando referencias alucinadas o incorrectas antes de que lleguen a tu trabajo.

Construido sobre academic-refchecker (MIT).

Herramienta

verify_citation — verifica que un artículo citado exista y que sus metadatos (título, autores, año, lugar de publicación) coincidan con lo citado.

ParámetroTipoRequeridoDescripción
titlestringTítulo del artículo citado
authorsstring[]noLista de nombres de autores
yearintegernoAño de publicación
doistringnoDOI (p. ej., 10.1145/12345)
arxiv_idstringnoID de arXiv (p. ej., 2301.00001)
urlstringnoURL directa al artículo

Devuelve JSON:

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

Campos de resultado

  • verifiedtrue si el artículo se encontró y todos los metadatos proporcionados (año, autores, lugar de publicación) coinciden. false si hay un conflicto real de metadatos o el artículo no se pudo encontrar.
  • matched_paper — los metadatos autoritativos de la fuente de verificación.
  • possible_match — una coincidencia de respaldo de Crossref cuando el título exacto no se encontró pero sí una variante cercana (consulta "Respaldo difuso" más abajo).
  • errors — errores graves que bloquean la verificación (año incorrecto, autores incorrectos, artículo no encontrado).
  • warnings — advertencias suaves que no bloquean la verificación (diferencias entre arXiv v1 y v2, preprint de arXiv frente a lugar de publicación, metadatos de entrada incompletos).
  • info — sugerencias informativas (p. ej., "la referencia podría incluir la URL de arXiv").

Qué cuenta como error frente a advertencia

academic-refchecker devuelve una lista plana de problemas con cierta inconsistencia (los desajustes de año se marcan como advertencias mientras que los desajustes de autores se marcan como errores). Este envoltorio normaliza la salida:

  • Promovidos a errores graves: desajustes simples de year/author/venue donde los metadatos citados realmente difieren de la realidad. Estos bloquean verified.
  • Degradados a advertencias: errores de "campo faltante" cuando el artículo se encontró pero el usuario no proporcionó ese campo en primer lugar. La falta de metadatos de entrada no es evidencia de una cita alucinada.
  • Mantenidos como advertencias: diferencias de versión de arXiv (v1 frente a v2), notas de preprint frente a lugar de publicación.

Respaldo difuso y sus limitaciones

Cuando academic-refchecker informa que un artículo no se pudo verificar, este envoltorio realiza una consulta secundaria a Crossref utilizando coincidencia difusa de títulos y fuzzywuzzy.ratio. Si se encuentra un candidato con una similitud ≥ 85 %, se devuelve como possible_match con una advertencia.

Lo que detecta el respaldo difuso:

  • Variaciones estilísticas del título (diferencias de mayúsculas, puntuación, orden de palabras)
  • Reformulaciones menores
  • Títulos donde la comparación estricta de refchecker rechazó una coincidencia válida

Lo que NO detecta el respaldo difuso:

  • Errores tipográficos reales en palabras distintivas del título (p. ej., "Atention Is All You Need")
  • Títulos muy alterados

Esta es una limitación fundamental de las API académicas de búsqueda gratuitas. Crossref, OpenAlex y Semantic Scholar utilizan búsqueda por palabras clave/tokens; en cuanto una palabra distintiva está mal escrita, simplemente no está en el índice de búsqueda, y el artículo real no aparecerá en los resultados sin importar cómo se procesen posteriormente. Detectar errores tipográficos reales requeriría incrustaciones semánticas de una API de pago (OpenAI, Voyage, etc.) o un motor de búsqueda difusa de texto completo, ninguno de los cuales está expuesto por las fuentes de datos académicos gratuitas.

Si sospechas un error tipográfico pero verify_citation devuelve "no verificado", la mejor solución es reescribir el título en la forma más canónica posible e intentarlo de nuevo.

Instalación y configuración

Recomendado: uvx (sin paso de instalación)

Si tienes uv instalado, no se necesita instalación adicional. Añádelo directamente a tu claude_desktop_config.json:

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

uvx descarga y ejecuta el paquete en un entorno aislado automáticamente. Reinicia Claude Desktop después de guardar la configuración.

Alternativa: pip

pip install mcp-refchecker

Luego añádelo a claude_desktop_config.json:

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

Desde el código fuente

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

Variables de entorno opcionales

  • SEMANTIC_SCHOLAR_API_KEYsolicita una aquí para obtener límites de tasa más altos en la ruta de verificación principal de refchecker.
  • CROSSREF_MAILTO — tu correo electrónico de contacto, utilizado para optar por el grupo cortés de Crossref para un acceso más confiable al respaldo difuso.
  • MCP_REFCHECKER_DEBUG — configúralo con cualquier valor no vacío para imprimir registros de depuración de la ruta de respaldo difuso en stderr.

Ejemplo con todas las opciones opcionales (uvx):

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

Licencia

MIT — © Jonas Bååth. Construido sobre academic-refchecker (MIT).