Projeto IA.med Licença MIT Resumo local

radar-papers-mcp

Servidor MCP que monitora PubMed e medRxiv por tópicos de pesquisa e resume os papers com um LLM local, numa base local deduplicada por DOI.

O que a ferramenta faz e não faz

  • O resumo sai do abstract, não do texto completo. Serve para triagem, decidir se vale abrir o paper; não substitui a leitura.
  • O resumo é gerado por LLM e pode errar. Confira os números no abstract original: o link vem em toda resposta.
  • Aqui não há conferência de citação literal. O campo achado_principal pode conter um número que o modelo interpretou errado.
  • A cobertura depende das suas queries. O que não casa com a query configurada não aparece; ausência de resultado não significa ausência de literatura.

O problema

Por que este projeto existe

Literatura demais para acompanhar à mão

PubMed e medRxiv publicam sem parar. Acompanhar um punhado de tópicos de pesquisa manualmente, todo dia, não escala.

Triar abstract a abstract cansa

A maior parte do tempo é decidir se vale abrir o paper. Um resumo curto e estruturado do abstract acelera essa triagem.

O mesmo paper aparece duas vezes

Um preprint do medRxiv sai depois num periódico do PubMed com o mesmo DOI, e um paper casa com mais de um tópico. Sem deduplicação, a lista vira ruído.

Como funciona

Da fonte pública ao resumo de triagem

  1. 01

    Fontes

    PubMed (E-utilities) e medRxiv (details), por tópicos configuráveis. O rate limit da NCBI é respeitado; o medRxiv não busca por termo, então o filtro é local.

  2. 02

    Deduplicação

    A chave é o DOI. Um paper já conhecido ganha o novo tópico na lista, em vez de virar uma segunda linha.

  3. 03

    Armazenamento

    Guarda em DuckDB local. O resumo fica cacheado: o mesmo paper não é resumido duas vezes.

  4. 04

    Resumo por LLM local

    Do abstract, um resumo estruturado (problema, método, achado principal, relevância), exposto como tools MCP.

Um paper sem abstract devolve erro explícito, não um resumo inventado a partir do título. E o resumo não é conferido contra o abstract: o link original vem em toda resposta justamente para você checar os números.

As ferramentas

Duas tools MCP expostas ao modelo

Toda resposta traz o link original do paper. O resumo abaixo é um retorno real do projeto; o resumo estruturado sai do abstract.

buscar_papers_novos

Papers do período na base local, com a chave para usar no resumo e o link original de cada um.

buscar_papers_novos(topico: str = "", dias: int = 7)
Devolve os papers que casaram com o tópico na janela de dias, cada um com paper_id (chave), título, tópicos e o link. O paper_id alimenta o resumir_paper.

resumir_paper

Resumo estruturado do abstract (problema, método, achado principal, relevância). Fica cacheado; o mesmo paper não é resumido duas vezes.

resumir_paper(paper_id: str)
{
  "titulo": "Mortality risk ranking after medical emergency team review…",
  "url": "https://pubmed.ncbi.nlm.nih.gov/42761253/",
  "origem": "llm",
  "resumo": {
    "problema": "Validação externa e redesenvolvimento de modelos preditivos de mortalidade após revisão da equipe de emergência.",
    "metodo": "Coorte multicêntrica em quatro hospitais, 1.937 adultos.",
    "achado_principal": "O modelo original discriminou bem (AUC 0,80) mas com estimativas variáveis entre hospitais; o novo modelo chegou a AUC 0,84 com menos variáveis.",
    "relevancia": "Mostra que a discriminação pode ser robusta mesmo quando a calibração absoluta varia entre instituições."
  }
}
Retorno real do projeto

Como rodar

Roda na sua máquina

Não é um serviço hospedado. Você define os tópicos, sincroniza das fontes públicas e o servidor MCP roda ali, no seu computador, com o resumo pelo seu LLM local.

# 1. clonar e instalar
git clone https://github.com/fabianofilho/radar-papers-mcp.git
cd radar-papers-mcp
uv sync
cp .env.example .env
# opcional: PUBMED_API_KEY eleva o rate limit da NCBI de 3 para 10 req/s

# 2. definir os tópicos em config/topicos.yaml e sincronizar
uv run papers-cli topicos
uv run papers-cli sync --dias 30

# 3. buscar e resumir
uv run papers-cli buscar "multicalibração"
uv run papers-cli resumir "10.1016/j.exemplo.2026.100217"

# 4. subir o servidor MCP e conectar ao seu cliente
uv run radar-papers-mcp
Confira variáveis e opções no README do projeto.

Um tópico em config/topicos.yaml

topicos:
  - nome: multicalibração
    pubmed: multicalibration[All Fields]   # sintaxe das E-utilities
    medrxiv:                                # palavras simples, filtradas localmente
      - multicalibration
      - multi-calibration
Cada tópico tem duas configs porque as fontes funcionam diferente.

O que sai da máquina: as requisições ao PubMed e ao medRxiv (serviços públicos, não rode em loop nem contorne o limitador). Os tópicos ficam no arquivo local, e o abstract vai para o seu LLM local no resumo.