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
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ámetro | Tipo | Requerido | Descripción |
|---|---|---|---|
title | string | sí | Título del artículo citado |
authors | string[] | no | Lista de nombres de autores |
year | integer | no | Año de publicación |
doi | string | no | DOI (p. ej., 10.1145/12345) |
arxiv_id | string | no | ID de arXiv (p. ej., 2301.00001) |
url | string | no | URL 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
verified—truesi el artículo se encontró y todos los metadatos proporcionados (año, autores, lugar de publicación) coinciden.falsesi 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/venuedonde los metadatos citados realmente difieren de la realidad. Estos bloqueanverified. - 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_KEY— solicita 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).