Paper Search MCP

Pesquise e baixe artigos acadêmicos de fontes como arXiv, PubMed e Google Scholar.

Documentação

Paper Search MCP

Um servidor Model Context Protocol (MCP) para buscar e baixar artigos acadêmicos de múltiplas fontes. O projeto segue uma estratégia de prioridade gratuita: priorizar fontes públicas e abertas, apoiar chaves de API opcionais quando elas melhoram a estabilidade ou a cobertura, e manter conectores específicos de fonte extensíveis para usuários avançados.

PyPI License Python smithery badge


Sumário


Visão Geral

paper-search-mcp é uma ferramenta baseada em Python para buscar e baixar artigos acadêmicos de várias plataformas. Ela fornece ferramentas para pesquisar artigos, baixar PDFs e extrair texto, tornando-a ideal para pesquisadores e fluxos de trabalho orientados por IA. Pode ser usada como servidor MCP (para Claude Desktop e outros clientes MCP) ou como skill do Claude Code com interface CLI.

Princípios do Projeto

  • Gratuito-Primeiro: Fontes públicas e abertas são o roteiro padrão. Fontes pagas ou restritas não são o núcleo deste projeto.
  • Chaves de API Opcionais: Chaves de API são suportadas apenas quando melhoram a estabilidade, os limites de taxa ou a qualidade dos metadados. O MCP deve continuar utilizável sem elas sempre que possível.
  • Recuperação Amigável para LLM: Os resultados de pesquisa devem ser padronizados, deduplicados e o mais completos possível para fluxos de trabalho de LLM à jusante.
  • Transparência das Fontes: Diferentes fontes têm diferentes pontos fortes. O MCP deve tornar essas compensações explícitas em vez de fingir que toda fonte suporta recuperação de texto completo.

Recursos

  • Arquitetura em Duas Camadas:
    • Camada 1 (Ferramenta Unificada): search_papers de alto nível para pesquisa multi-fonte concorrente e deduplicação, e download_with_fallback dependendo de links de acesso aberto de editores com fallbacks sequenciais.
    • Camada 2 (Conectores de Plataforma): Conectores modulares para plataformas acadêmicas específicas (arXiv, PubMed, bioRxiv, Semantic Scholar, etc.) equipados com extração inteligente de DOI via análise de regex de texto ou campos de API.
  • Suporte Multi-Fonte: Pesquise e baixe artigos de arXiv, PubMed, bioRxiv, medRxiv, Google Scholar, IACR ePrint Archive, Semantic Scholar, Crossref, OpenAlex, PubMed Central (PMC), CORE, Europe PMC, dblp, OpenAIRE, CiteSeerX, DOAJ, BASE, Zenodo, HAL, SSRN, Unpaywall (consulta DOI) e fluxos opcionais do Sci-Hub.
  • Saída Padronizada: Os artigos são retornados em um formato de dicionário consistente via a classe Paper.
  • Design Gratuito-Primeiro: Fontes abertas e públicas são priorizadas antes de quaisquer integrações comerciais ou restritas opcionais.
  • Aprimoramento Opcional com Chave de API: Fontes como Semantic Scholar podem funcionar melhor com uma chave de API fornecida pelo usuário, mas não se pretende forçar uso pago.
  • Fluxo de Descoberta + Recuperação: Google Scholar e Crossref podem ser usados para descoberta e preenchimento de DOI, enquanto repositórios abertos e links de editores são usados para resolução lawful de texto completo quando disponível.
  • Cadeia de Fallback OA-Primeiro: download_with_fallback agora segue download nativo da fonte → descoberta OpenAIRE/CORE/Europe PMC/PMC → resolução DOI Unpaywall → Sci-Hub opcional.
  • Integração MCP: Compatível com clientes MCP para enriquecimento de contexto de LLM.
  • Design Extensível: Adicione facilmente novas plataformas acadêmicas estendendo o módulo academic_platforms.

Estratégia de Fontes

O objetivo de longo prazo não é depender de um único mecanismo de busca, mas combinar múltiplas fontes gratuitas e públicas com papéis claros:

  • Coluna vertebral de metadados abertos: Crossref, OpenAlex, Semantic Scholar, dblp, CiteSeerX, SSRN, Unpaywall (metadados OA centrados em DOI).
  • Fontes específicas de disciplina: arXiv, PubMed, PubMed Central, Europe PMC, IACR.
  • Fontes de texto completo de acesso aberto: arXiv, PMC, CORE, OpenAIRE, DOAJ, BASE, Zenodo, HAL, links de acesso aberto de editores.
  • Descoberta e recuperação de DOI: Google Scholar pode ser útil para encontrar títulos, versões e pistas de DOI quando outras fontes de metadados públicas estão incompletas.

Roteiro gratuito-primeiro recomendado:

  1. Manter as fontes públicas atuais estáveis.
  2. Adicionar OpenAlex como uma ampla fonte de metadados gratuita.
  3. Adicionar PubMed Central e Europe PMC para acesso mais forte a texto completo biomédico.
  4. Adicionar CORE e OpenAIRE para recuperação de acesso aberto baseada em repositórios.
  5. Usar Google Scholar principalmente como fallback de descoberta, não como a fonte canônica primária.

Matriz de Capacidade das Plataformas

Esta matriz reflete resultados verificados de integração ao vivo de testes funcionais e de regressão de ponta a ponta neste repositório. As colunas mostram o nível de capacidade mais alto observado sob condições normais.

PlataformaPesquisaDownloadLeituraNotas
arXivAPI aberta; confiável
PubMed⚠️ somente infoAPI aberta; confiável
bioRxivAPI aberta; confiável
medRxivAPI aberta; confiável
Google Scholar⚠️Detecção de bot ativa; defina PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL
IACRAPI aberta; confiável
Semantic Scholar✅ (OA)✅ (OA)Funciona sem chave (limitado por taxa); chave melhora limites; rejeição de chave (403) é repetida automaticamente sem chave
Crossref⚠️ somente infoAPI aberta; confiável
OpenAlex⚠️ somente infoAPI aberta; confiável
PMC✅ (somente OA)✅ (somente OA)Apenas PDFs OA; download direto pode ser bloqueado por alguns ambientes de proxy
CORE✅ (dependente do registro)✅ (dependente do registro)Chave gratuita recomendada; o conector tenta novamente com backoff e cai para sem chave em 401/403
Europe PMC✅ (OA)✅ (OA)Apenas PDFs OA; download direto pode ser bloqueado por alguns ambientes de proxy
dblp⚠️ somente infoAPI aberta; confiável
OpenAIREAPI aberta; tenta 3× com perfis de solicitação crescentes em 403 transitório
CiteSeerX⚠️✅ (dependente do registro)⚠️Endpoint da API intermitentemente indisponível / redireciona para arquivo web
DOAJ⚠️ (dependente de URL)⚠️ (dependente de URL)Disponibilidade de PDF varia por artigo; chave gratuita aumenta os limites de taxa
BASE⚠️✅ (dependente do registro)✅ (dependente do registro)Endpoint OAI-PMH requer registro de IP institucional; retorna vazio graciosamente caso contrário
Zenodo✅ (dependente do registro)✅ (dependente do registro)API aberta; confiável
HAL✅ (dependente do registro)✅ (dependente do registro)API aberta; confiável
SSRN⚠️⚠️ melhor esforço⚠️ melhor esforçoDetecção de bot 403 ativa; apenas PDF público
Unpaywall✅ (consulta DOI)Requer PAPER_SEARCH_MCP_UNPAYWALL_EMAIL
Sci-Hub (opcional)⚠️ somente fallbackOpcional; espelhos instáveis; responsabilidade do usuário
IEEE Xplore 🔑🚧 esqueleto🚧 esqueleto🚧 esqueletoRequer PAPER_SEARCH_MCP_IEEE_API_KEY para ativar
ACM DL 🔑🚧 esqueleto🚧 esqueleto🚧 esqueletoRequer PAPER_SEARCH_MCP_ACM_API_KEY para ativar

✅ = confiável em testes ao vivo. ⚠️ = funciona, mas sujeito a instabilidade ou restrições de acesso upstream. ❌ = não suportado. 🔑 = chave necessária. 🚧 = somente esqueleto.


Requisitos de Credenciais e Chaves de API

Todas as chaves são opcionais, a menos que indicado. Configure-as em ~/.config/paper-search-mcp/.env (preferido) ou como exportações de shell.

Variável de AmbienteProvedorObrigatória?Como obter
PAPER_SEARCH_MCP_UNPAYWALL_EMAILUnpaywallSim (Unpaywall desabilitado sem ela)Qualquer e-mail válido; registre-se em unpaywall.org
PAPER_SEARCH_MCP_CORE_API_KEYCORERecomendadaGratuita em core.ac.uk/services/api
PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEYSemantic ScholarOpcionalGratuita em semanticscholar.org — melhora os limites de taxa
PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URLGoogle ScholarOpcionalSua URL de proxy HTTP/HTTPS — contorna a detecção de bot
PAPER_SEARCH_MCP_DOAJ_API_KEYDOAJOpcionalGratuita em doaj.org — aumenta o limite de taxa por hora
PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKENZenodoOpcionalGratuita em zenodo.org — necessária para registros privados
PAPER_SEARCH_MCP_IEEE_API_KEYIEEE XploreObrigatória para ativarGratuita em developer.ieee.org
PAPER_SEARCH_MCP_ACM_API_KEYACM DLObrigatória para ativarVeja libraries.acm.org/digital-library/acm-open

Todas as variáveis seguem o esquema de prefixo PAPER_SEARCH_MCP_<NAME>. Nomes legados sem o prefixo (por exemplo, CORE_API_KEY, UNPAYWALL_EMAIL) ainda são suportados para compatibilidade reversa.


Limitações Conhecidas Upstream

Algumas falhas de pesquisa são causadas por instabilidade do provedor externo, não por bugs deste projeto:

FonteSintomaCausaSolução
Google ScholarRetorna 0 resultados / HTML vazioDetecção de bot (CAPTCHA)Defina PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL para um proxy
Semantic ScholarRespostas 429 limitadas por taxaLimite de taxa de acesso anônimoDefina PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY; se a chave for rejeitada (403), o conector automaticamente tenta novamente sem chave
COREErros 500 / timeoutLimitação de taxa não autenticadaDefina PAPER_SEARCH_MCP_CORE_API_KEY (gratuita); o conector tenta novamente com backoff exponencial e cai para sem chave em 401/403
OpenAIRERespostas 403 transitóriasLimitação de sessão baseada em IPO conector tenta 3× por perfil, escalando: sessão simples → cabeçalho Accept XML → requests.get bruto com UA Mozilla
CiteSeerX404 via redirecionamento de arquivo webEndpoint PSU intermitentemente redireciona para arquivoSem solução; o conector retorna vazio graciosamente
BASEPesquisa retorna 0 resultadosEndpoint OAI-PMH requer registro de IP institucionalRegistre-se em base-search.net para acesso à API; o conector retorna vazio graciosamente caso contrário
SSRNHTTP 403Detecção de bot (Cloudflare)Sem solução; o conector tenta dois endpoints e retorna mensagem clara em caso de falha
PMC / Europe PMCProxyError no download de PDFProxy local bloqueando download direto de PDF via HTTPSDesative o proxy ou use download_with_fallback
UnpaywallIgnorado completamenteVariável de ambiente UNPAYWALL_EMAIL não definidaDefina PAPER_SEARCH_MCP_UNPAYWALL_EMAIL em ~/.config/paper-search-mcp/.env

Conectores Opcionais de Plataformas Pagas (Fase 3)

Os conectores IEEE Xplore e ACM Digital Library estão incluídos como esqueletos opt-in. Eles estão desabilitados por padrão — nenhuma chamada de API é feita a menos que você configure explicitamente as chaves correspondentes.

PlataformaVariável de AmbienteStatus
IEEE XplorePAPER_SEARCH_MCP_IEEE_API_KEY🚧 esqueleto — pesquisa registrada, download/leitura levantam NotImplementedError
ACM Digital LibraryPAPER_SEARCH_MCP_ACM_API_KEY🚧 esqueleto — pesquisa registrada, download/leitura levantam NotImplementedError

Como habilitar:

export PAPER_SEARCH_MCP_IEEE_API_KEY=<your_ieee_key>       # free key at https://developer.ieee.org/
export PAPER_SEARCH_MCP_ACM_API_KEY=<your_acm_key>         # see https://libraries.acm.org/digital-library

Uma vez que uma chave é definida, a fonte correspondente é automaticamente adicionada a ALL_SOURCES e suas ferramentas MCP (search_ieee / search_acm, download_ieee / download_acm, read_ieee_paper / read_acm_paper) são registradas na inicialização do servidor.

Sem uma chave, os conectores apenas registram um aviso de inicialização — o resto do servidor não é afetado.

Expansão de Fontes Gratuitas (Fase 4)

Três conectores adicionais de fontes gratuitas estão agora integrados ao servidor MCP:

  • zenodo: Conector oficial da API REST do Zenodo (busca + suporte a PDF/leitura dependente do registro).
  • hal: Conector da API pública do HAL (busca + suporte a PDF/leitura dependente do registro).
  • ssrn: Conector com foco em descoberta, com parser robusto e download/leitura de melhor esforço quando um link PDF público direto estiver disponível.
  • unpaywall: Fonte de metadados OA centrada em DOI para consulta autônoma (search_unpaywall) e resolução de URL de fallback.

A integração com o SSRN permanece em conformidade: ela só tenta links PDF públicos diretos expostos pelas páginas do SSRN. Se for necessário login ou entrega restrita, o conector retorna uma mensagem clara em vez de contornar os controles de acesso.

Aviso sobre o Sci-Hub

O suporte ao Sci-Hub pode permanecer disponível como um conector opcional para usuários que escolherem explicitamente habilitá-lo, mas não deve ser tratado como o caminho padrão ou recomendado para texto completo.

  • A disponibilidade é instável e os espelhos mudam com frequência.
  • Os riscos legais e de política variam conforme a jurisdição.
  • O README e as descrições das ferramentas devem deixar claro que os usuários são responsáveis por habilitá-lo e usá-lo.
  • Fontes de acesso aberto e permitidas pelo editor devem ser tentadas primeiro sempre que possível.

Instalação

Escolha o método que melhor se adapta ao seu fluxo de trabalho. Todos os métodos suportam as mesmas chaves de API opcionais.


Claude Code (Skill) — recomendado para usuários do Claude Code

Instale como uma skill do Claude Code em vez de um servidor MCP. Isso dá ao Claude acesso automático à busca de artigos quando você menciona encontrar papers, literatura acadêmica, etc. — sem necessidade de configuração MCP.

Pré-requisitos: uv e Claude Code.

Passo 1 — Instale a CLI:

uv tool install paper-search-mcp

Passo 2 — Instale a skill:

mkdir -p ~/.claude/skills/paper-search
curl -fsSL https://raw.githubusercontent.com/openags/paper-search-mcp/main/claude-code/SKILL.md \
  -o ~/.claude/skills/paper-search/SKILL.md

Passo 3 (opcional) — Configure as chaves de API:

Crie ~/.config/paper-search-mcp/.env para chaves de API opcionais (veja Variáveis de Ambiente).

É isso. Na próxima vez que você iniciar o Claude Code, basta pedir para encontrar artigos — a skill ativa automaticamente. Por exemplo:

  • "Encontre artigos recentes sobre edição de base CRISPR"
  • "Pesquise no arxiv e no semantic scholar por mecanismos de atenção em transformers"
  • "Baixe o PDF do artigo do arxiv 2106.12345"

A skill usa uma CLI (paper-search) que encapsula a mesma biblioteca do servidor MCP, gerando JSON para busca/download e texto simples para leitura.


Locais dos arquivos de configuração do servidor MCP (para os métodos abaixo)

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Método 1 — Smithery (um comando, recomendado para Claude Desktop)

npx -y @smithery/cli install @openags/paper-search-mcp --client claude

O Smithery escreve automaticamente o bloco de configuração correto para você. Não é necessário editar JSON manualmente.


Método 2 — uvx (sem instalação, sempre a versão mais recente)

uvx executa o pacote diretamente do PyPI sem instalação permanente. Requer uv.

# Install uv (skip if already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

⚠️ Nota para macOS: os scripts wrapper gerados por uvx dependem de realpath, que não está incluído no macOS por padrão. Se você vir um erro realpath: command not found, instale o GNU coreutils (brew install coreutils) ou use o Método 3 (uv run) — ele não tem essa limitação.

Configuração do Claude Desktop:

{
  "mcpServers": {
    "paper-search-mcp": {
      "command": "uvx",
      "args": ["paper-search-mcp"],
      "env": {
        "PAPER_SEARCH_MCP_UNPAYWALL_EMAIL": "your@email.com",
        "PAPER_SEARCH_MCP_CORE_API_KEY": "",
        "PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY": "",
        "PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN": "",
        "PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL": "",
        "PAPER_SEARCH_MCP_IEEE_API_KEY": "",
        "PAPER_SEARCH_MCP_ACM_API_KEY": ""
      }
    }
  }
}

Método 3 — uv (instalação persistente)

uv tool install paper-search-mcp

Configuração do Claude Desktop:

{
  "mcpServers": {
    "paper-search-mcp": {
      "command": "uv",
      "args": ["tool", "run", "paper-search-mcp"],
      "env": {
        "PAPER_SEARCH_MCP_UNPAYWALL_EMAIL": "your@email.com",
        "PAPER_SEARCH_MCP_CORE_API_KEY": "",
        "PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY": "",
        "PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN": "",
        "PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL": "",
        "PAPER_SEARCH_MCP_IEEE_API_KEY": "",
        "PAPER_SEARCH_MCP_ACM_API_KEY": ""
      }
    }
  }
}

Método 4 — pip (instalação padrão do Python)

pip install paper-search-mcp

Configuração do Claude Desktop:

{
  "mcpServers": {
    "paper-search-mcp": {
      "command": "python",
      "args": ["-m", "paper_search_mcp.server"],
      "env": {
        "PAPER_SEARCH_MCP_UNPAYWALL_EMAIL": "your@email.com",
        "PAPER_SEARCH_MCP_CORE_API_KEY": "",
        "PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY": "",
        "PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN": "",
        "PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL": "",
        "PAPER_SEARCH_MCP_IEEE_API_KEY": "",
        "PAPER_SEARCH_MCP_ACM_API_KEY": ""
      }
    }
  }
}

Se python não estiver no seu PATH, substitua-o pelo caminho completo (por exemplo, /usr/bin/python3 ou C:\Python311\python.exe). Execute which python3 / where python para encontrá-lo.


Método 5 — npx (via CLI do Smithery, sem necessidade de Python local)

npx -y @smithery/cli run @openags/paper-search-mcp

Configuração do Claude Desktop:

{
  "mcpServers": {
    "paper-search-mcp": {
      "command": "npx",
      "args": ["-y", "@smithery/cli", "run", "@openags/paper-search-mcp"],
      "env": {
        "PAPER_SEARCH_MCP_UNPAYWALL_EMAIL": "your@email.com",
        "PAPER_SEARCH_MCP_CORE_API_KEY": "",
        "PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY": ""
      }
    }
  }
}

Método 6 — Docker

docker build -t paper-search-mcp .
docker run --rm -i \
  -e PAPER_SEARCH_MCP_UNPAYWALL_EMAIL=your@email.com \
  -e PAPER_SEARCH_MCP_CORE_API_KEY=your_core_key \
  paper-search-mcp

Configuração do Claude Desktop:

{
  "mcpServers": {
    "paper-search-mcp": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "paper-search-mcp"],
      "env": {
        "PAPER_SEARCH_MCP_UNPAYWALL_EMAIL": "your@email.com",
        "PAPER_SEARCH_MCP_CORE_API_KEY": "",
        "PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY": "",
        "PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN": "",
        "PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL": "",
        "PAPER_SEARCH_MCP_IEEE_API_KEY": "",
        "PAPER_SEARCH_MCP_ACM_API_KEY": ""
      }
    }
  }
}

Método 7 — Clonar e executar a partir do código-fonte (desenvolvimento / recomendado para macOS local)

Este é o método mais confiável no macOS — sem scripts wrapper, sem problemas com realpath.

# 1. Install uv (skip if already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 2. Clone repo
git clone https://github.com/openags/paper-search-mcp.git
cd paper-search-mcp

# 3. Verify it runs (uv auto-resolves dependencies, no manual install needed)
uv run -m paper_search_mcp.server

Configuração do Claude Desktop (substitua o caminho do diretório pelo local real do seu clone):

{
  "mcpServers": {
    "paper-search-mcp": {
      "command": "uv",
      "args": [
        "run",
        "--directory", "/path/to/paper-search-mcp",
        "-m", "paper_search_mcp.server"
      ],
      "env": {
        "PAPER_SEARCH_MCP_UNPAYWALL_EMAIL": "your@email.com",
        "PAPER_SEARCH_MCP_CORE_API_KEY": "",
        "PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY": "",
        "PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN": "",
        "PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL": "",
        "PAPER_SEARCH_MCP_IEEE_API_KEY": "",
        "PAPER_SEARCH_MCP_ACM_API_KEY": ""
      }
    }
  }
}

Por exemplo, se você clonou para /Users/mac/Pengsong/paper-search-mcp:

"args": ["run", "--directory", "/Users/mac/Pengsong/paper-search-mcp", "-m", "paper_search_mcp.server"]

uv run instala automaticamente as dependências em um ambiente isolado na primeira execução — sem necessidade de pip install ou venv.

Para desenvolvimento ativo, opcionalmente instale uma cópia editável:

uv venv && source .venv/bin/activate   # Windows: .venv\Scripts\activate
uv pip install -e ".[dev]"

Variáveis de Ambiente (arquivo .env)

Em vez de colocar chaves diretamente na configuração JSON, você pode armazená-las no arquivo de configuração do usuário (carregado automaticamente na inicialização):

mkdir -p ~/.config/paper-search-mcp
curl -fsSL https://raw.githubusercontent.com/openags/paper-search-mcp/main/.env.example \
  -o ~/.config/paper-search-mcp/.env
$EDITOR ~/.config/paper-search-mcp/.env
PAPER_SEARCH_MCP_UNPAYWALL_EMAIL=your@email.com
PAPER_SEARCH_MCP_CORE_API_KEY=
PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY=
PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN=
PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL=
PAPER_SEARCH_MCP_IEEE_API_KEY=
PAPER_SEARCH_MCP_ACM_API_KEY=

Para usar um caminho personalizado: export PAPER_SEARCH_MCP_ENV_FILE=/absolute/path/to/.env

Nomes de variáveis legados sem o prefixo PAPER_SEARCH_MCP_ (por exemplo, CORE_API_KEY, UNPAYWALL_EMAIL) ainda são suportados para compatibilidade retroativa.


Contribuindo

Aceitamos contribuições! Veja como começar:

  1. Faça um fork do repositório: Clique em "Fork" no GitHub.

  2. Clone e configure:

    git clone https://github.com/yourusername/paper-search-mcp.git
    cd paper-search-mcp
    uv venv && source .venv/bin/activate
    uv pip install -e ".[dev]"
    
  3. Faça alterações:

    • Adicione novas plataformas em academic_platforms/.
    • Atualize os testes em tests/.
  4. Envie um Pull Request: Envie as alterações e crie um PR no GitHub.


Demonstração

Demo

TODO

Plataformas Acadêmicas Planejadas

  • [√] arXiv
  • [√] PubMed
  • [√] bioRxiv
  • [√] medRxiv
  • [√] Google Scholar
  • [√] IACR ePrint Archive
  • [√] Semantic Scholar
  • [√] Crossref
  • [√] PubMed Central (PMC)
  • [√] CORE
  • [√] Europe PMC
  • [√] documentação de aviso e habilitação do Sci-Hub

Tarefas de Desenvolvimento

  • [√] Corrigir bugs de busca assíncrona e garantir eventos MCP rápidos e confiáveis
  • [√] Script de teste de pipeline completo de ponta a ponta (busca, parse, download)
  • [√] Estabelecer arquitetura federada em duas camadas (ferramenta da Camada 1: search_papers)
  • [√] Garantir extração abrangente de DOI em todos os campos de metadados e fallbacks de resumo
  • Grafo de citações e recurso de contexto de relações entre artigos
  • [√] Expandir o provedor OpenAlex full-stack

Fontes Gratuitas e Abertas Prioritárias

  • [√] PubMed Central (PMC)
  • [√] CORE
  • [√] OpenAlex
  • [√] Europe PMC
  • [√] OpenAIRE
  • [√] dblp
  • [√] CiteSeerX
  • [√] DOAJ
  • [√] BASE
  • [√] Zenodo
  • [√] HAL
  • [√] SSRN (descoberta + texto completo de melhor esforço)
  • [√] Unpaywall (fonte de busca de DOI autônoma)

Integrações Opcionais e Não Essenciais

  • ResearchGate
  • JSTOR
  • ScienceDirect
  • Springer Link
  • [√] IEEE Xplore (esqueleto opcional — ative com IEEE_API_KEY)
  • [√] ACM Digital Library (esqueleto opcional — ative com ACM_API_KEY)
  • Web of Science
  • Scopus

Histórico de Estrelas

Star History Chart


Licença

Este projeto é licenciado sob a Licença MIT. Consulte o arquivo LICENSE para obter detalhes.


Boa pesquisa com paper-search-mcp! Se encontrar problemas, abra uma issue no GitHub.