MCP Refchecker
Um servidor MCP leve que encapsula o academic-refchecker, permitindo que o Claude verifique citações acadêmicas em tempo real contra Semantic Scholar, OpenAlex e CrossRef.
Documentação
mcp-refchecker
Um servidor MCP que permite ao Claude verificar citações acadêmicas em tempo real contra Semantic Scholar, OpenAlex e Crossref — detectando referências alucinadas ou incorretas antes que elas cheguem ao seu trabalho.
Construído sobre academic-refchecker (MIT).
Ferramenta
verify_citation — verifica se um artigo citado existe e se seus metadados (título, autores, ano, veículo) correspondem ao que foi citado.
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
title | string | sim | Título do artigo citado |
authors | string[] | não | Lista de nomes dos autores |
year | integer | não | Ano de publicação |
doi | string | não | DOI (ex.: 10.1145/12345) |
arxiv_id | string | não | ID arXiv (ex.: 2301.00001) |
url | string | não | URL direta para o artigo |
Retorna 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—truese o artigo foi encontrado e todos os metadados fornecidos (ano, autores, veículo) correspondem.falsese houver um conflito real de metadados ou se o artigo não puder ser encontrado.matched_paper— os metadados autoritativos da fonte de verificação.possible_match— uma correspondência de fallback do Crossref quando o título exato não foi encontrado, mas uma variante próxima foi (veja "Fallback difuso" abaixo).errors— erros graves que bloqueiam a verificação (ano errado, autores errados, artigo não encontrado).warnings— avisos leves que não bloqueiam a verificação (diferenças entre arXiv v1 e v2, preprint arXiv vs veículo publicado, metadados de entrada incompletos).info— sugestões informativas (ex.: "a referência poderia incluir a URL do arXiv").
O que conta como erro vs aviso
academic-refchecker retorna uma lista plana de problemas com alguma inconsistência (discrepâncias de ano são marcadas como avisos, enquanto discrepâncias de autor são marcadas como erros). Este wrapper normaliza a saída:
- Promovidos a erros graves: discrepâncias simples de
year/author/venueonde os metadados citados realmente diferem da realidade. Eles bloqueiamverified. - Rebaixados para avisos: erros de "campo ausente" quando o artigo foi encontrado, mas o usuário não forneceu esse campo em primeiro lugar. Metadados de entrada ausentes não são evidência de uma citação alucinada.
- Mantidos como avisos: diferenças de versão do arXiv (v1 vs v2), notas de preprint vs veículo publicado.
Fallback difuso e suas limitações
Quando academic-refchecker relata que um artigo não pôde ser verificado, este wrapper faz uma consulta secundária ao Crossref usando correspondência difusa de título e fuzzywuzzy.ratio. Se um candidato com similaridade ≥ 85% for encontrado, ele é retornado como possible_match com um aviso.
O que o fallback difuso captura:
- Variações estilísticas de título (diferenças de maiúsculas, pontuação, ordem das palavras)
- Pequenas reformulações
- Títulos onde a comparação estrita do refchecker rejeitou uma correspondência que, de outra forma, seria válida
O que o fallback difuso NÃO captura:
- Erros de digitação reais em palavras distintivas do título (ex.: "Atention Is All You Need")
- Títulos severamente distorcidos
Esta é uma limitação fundamental das APIs gratuitas de busca acadêmica. Crossref, OpenAlex e Semantic Scholar fazem busca baseada em palavras-chave/tokens — assim que uma palavra distintiva é escrita incorretamente, ela simplesmente não está no índice de busca, e o artigo real não aparecerá nos resultados, independentemente de como você os pós-processa. Capturar erros de digitação reais exigiria embeddings semânticos de uma API paga (OpenAI, Voyage, etc.) ou um mecanismo de busca difusa de texto completo, nenhum dos quais é exposto por fontes de dados acadêmicos gratuitas.
Se você suspeitar de um erro de digitação, mas verify_citation retornar não verificado, a melhor solução é reescrever o título na forma mais canônica que puder e tentar novamente.
Instalação e configuração
Recomendado: uvx (sem etapa de instalação)
Se você tiver o uv instalado, nenhuma instalação separada é necessária. Adicione diretamente ao seu claude_desktop_config.json:
{
"mcpServers": {
"refchecker": {
"command": "uvx",
"args": ["mcp-refchecker"]
}
}
}
uvx baixa e executa o pacote em um ambiente isolado automaticamente. Reinicie o Claude Desktop após salvar a configuração.
Alternativa: pip
pip install mcp-refchecker
Em seguida, adicione ao claude_desktop_config.json:
{
"mcpServers": {
"refchecker": {
"command": "mcp-refchecker"
}
}
}
A partir do código-fonte
git clone https://github.com/JonasBaath/mcp-refchecker
cd mcp-refchecker
pip install .
Variáveis de ambiente opcionais
SEMANTIC_SCHOLAR_API_KEY— solicite um aqui para limites de taxa mais altos no caminho de verificação primário do refchecker.CROSSREF_MAILTO— seu e-mail de contato, usado para optar pelo polite pool do Crossref para acesso mais confiável ao fallback difuso.MCP_REFCHECKER_DEBUG— defina para qualquer valor não vazio para imprimir logs de depuração do caminho de fallback difuso no stderr.
Exemplo com todas as configurações opcionais (uvx):
{
"mcpServers": {
"refchecker": {
"command": "uvx",
"args": ["mcp-refchecker"],
"env": {
"SEMANTIC_SCHOLAR_API_KEY": "your-key-here",
"CROSSREF_MAILTO": "you@example.com"
}
}
}
}
Licença
MIT — © Jonas Bååth. Construído sobre academic-refchecker (MIT).