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.
Sumário
- Visão Geral
- Princípios do Projeto
- Recursos
- Estratégia de Fontes
- Aviso sobre o Sci-Hub
- Instalação
- Contribuindo
- Demonstração
- Histórico de Estrelas
- Licença
- TODO
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_papersde alto nível para pesquisa multi-fonte concorrente e deduplicação, edownload_with_fallbackdependendo 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.
- Camada 1 (Ferramenta Unificada):
- 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_fallbackagora 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:
- Manter as fontes públicas atuais estáveis.
- Adicionar OpenAlex como uma ampla fonte de metadados gratuita.
- Adicionar PubMed Central e Europe PMC para acesso mais forte a texto completo biomédico.
- Adicionar CORE e OpenAIRE para recuperação de acesso aberto baseada em repositórios.
- 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.
| Plataforma | Pesquisa | Download | Leitura | Notas |
|---|---|---|---|---|
| arXiv | ✅ | ✅ | ✅ | API aberta; confiável |
| PubMed | ✅ | ❌ | ⚠️ somente info | API aberta; confiável |
| bioRxiv | ✅ | ✅ | ✅ | API aberta; confiável |
| medRxiv | ✅ | ✅ | ✅ | API aberta; confiável |
| Google Scholar | ⚠️ | ❌ | ❌ | Detecção de bot ativa; defina PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL |
| IACR | ✅ | ✅ | ✅ | API 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 info | API aberta; confiável |
| OpenAlex | ✅ | ❌ | ⚠️ somente info | API 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 info | API aberta; confiável |
| OpenAIRE | ✅ | ❌ | ❌ | API 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ço | Detecção de bot 403 ativa; apenas PDF público |
| Unpaywall | ✅ (consulta DOI) | ❌ | ❌ | Requer PAPER_SEARCH_MCP_UNPAYWALL_EMAIL |
| Sci-Hub (opcional) | ⚠️ somente fallback | ✅ | ❌ | Opcional; espelhos instáveis; responsabilidade do usuário |
| IEEE Xplore 🔑 | 🚧 esqueleto | 🚧 esqueleto | 🚧 esqueleto | Requer PAPER_SEARCH_MCP_IEEE_API_KEY para ativar |
| ACM DL 🔑 | 🚧 esqueleto | 🚧 esqueleto | 🚧 esqueleto | Requer 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 Ambiente | Provedor | Obrigatória? | Como obter |
|---|---|---|---|
PAPER_SEARCH_MCP_UNPAYWALL_EMAIL | Unpaywall | Sim (Unpaywall desabilitado sem ela) | Qualquer e-mail válido; registre-se em unpaywall.org |
PAPER_SEARCH_MCP_CORE_API_KEY | CORE | Recomendada | Gratuita em core.ac.uk/services/api |
PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY | Semantic Scholar | Opcional | Gratuita em semanticscholar.org — melhora os limites de taxa |
PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL | Google Scholar | Opcional | Sua URL de proxy HTTP/HTTPS — contorna a detecção de bot |
PAPER_SEARCH_MCP_DOAJ_API_KEY | DOAJ | Opcional | Gratuita em doaj.org — aumenta o limite de taxa por hora |
PAPER_SEARCH_MCP_ZENODO_ACCESS_TOKEN | Zenodo | Opcional | Gratuita em zenodo.org — necessária para registros privados |
PAPER_SEARCH_MCP_IEEE_API_KEY | IEEE Xplore | Obrigatória para ativar | Gratuita em developer.ieee.org |
PAPER_SEARCH_MCP_ACM_API_KEY | ACM DL | Obrigatória para ativar | Veja 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:
| Fonte | Sintoma | Causa | Solução |
|---|---|---|---|
| Google Scholar | Retorna 0 resultados / HTML vazio | Detecção de bot (CAPTCHA) | Defina PAPER_SEARCH_MCP_GOOGLE_SCHOLAR_PROXY_URL para um proxy |
| Semantic Scholar | Respostas 429 limitadas por taxa | Limite de taxa de acesso anônimo | Defina PAPER_SEARCH_MCP_SEMANTIC_SCHOLAR_API_KEY; se a chave for rejeitada (403), o conector automaticamente tenta novamente sem chave |
| CORE | Erros 500 / timeout | Limitação de taxa não autenticada | Defina PAPER_SEARCH_MCP_CORE_API_KEY (gratuita); o conector tenta novamente com backoff exponencial e cai para sem chave em 401/403 |
| OpenAIRE | Respostas 403 transitórias | Limitação de sessão baseada em IP | O conector tenta 3× por perfil, escalando: sessão simples → cabeçalho Accept XML → requests.get bruto com UA Mozilla |
| CiteSeerX | 404 via redirecionamento de arquivo web | Endpoint PSU intermitentemente redireciona para arquivo | Sem solução; o conector retorna vazio graciosamente |
| BASE | Pesquisa retorna 0 resultados | Endpoint OAI-PMH requer registro de IP institucional | Registre-se em base-search.net para acesso à API; o conector retorna vazio graciosamente caso contrário |
| SSRN | HTTP 403 | Detecção de bot (Cloudflare) | Sem solução; o conector tenta dois endpoints e retorna mensagem clara em caso de falha |
| PMC / Europe PMC | ProxyError no download de PDF | Proxy local bloqueando download direto de PDF via HTTPS | Desative o proxy ou use download_with_fallback |
| Unpaywall | Ignorado completamente | Variável de ambiente UNPAYWALL_EMAIL não definida | Defina 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.
| Plataforma | Variável de Ambiente | Status |
|---|---|---|
| IEEE Xplore | PAPER_SEARCH_MCP_IEEE_API_KEY | 🚧 esqueleto — pesquisa registrada, download/leitura levantam NotImplementedError |
| ACM Digital Library | PAPER_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
uvxdependem derealpath, que não está incluído no macOS por padrão. Se você vir um errorealpath: 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
pythonnão estiver no seu PATH, substitua-o pelo caminho completo (por exemplo,/usr/bin/python3ouC:\Python311\python.exe). Executewhich python3/where pythonpara 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 runinstala automaticamente as dependências em um ambiente isolado na primeira execução — sem necessidade depip installouvenv.
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:
-
Faça um fork do repositório: Clique em "Fork" no GitHub.
-
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]" -
Faça alterações:
- Adicione novas plataformas em
academic_platforms/. - Atualize os testes em
tests/.
- Adicione novas plataformas em
-
Envie um Pull Request: Envie as alterações e crie um PR no GitHub.
Demonstração
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
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.