Scholar Feed
Servidor MCP para pesquisar mais de 600.000 artigos de pesquisa em Ciência da Computação e IA, com gráficos de citação, texto completo, embeddings e BibTeX.
Documentação
Servidor MCP Scholar Feed
Busca de artigos de pesquisa com ranqueamento e rastreamento de citações, para engenharia de LLM e pesquisa acadêmica, sem sair do Claude Code, Cursor ou qualquer cliente MCP.
A maioria das ferramentas de artigos devolve uma lista plana. O Scholar Feed a ranqueia: ordene por relevância, por contagem comprovada de citações ou por impacto crescente, e então trace a linhagem de citações de qualquer artigo para frente e para trás em mais de 22 milhões de arestas. Mais de 600 mil artigos de CS/IA/ML, atualizados diariamente, cada um com um resumo gerado por LLM e uma pontuação de novidade.
Scholar Feed indexa artigos do arXiv diariamente e os ranqueia por atualidade, velocidade de citações, reputação institucional e disponibilidade de código.
Início Rápido
npx scholar-feed-mcp@latest init
Este assistente interativo irá:
- Opcionalmente, solicitar uma chave de API (ou pular para acesso anônimo)
- Detectar seu cliente MCP (Claude Code, Cursor ou Claude Desktop)
- Escrever a configuração e verificar a conexão
Nenhuma chave de API é necessária. O acesso anônimo oferece 200 chamadas/mês, suficientes para uma sessão típica de pesquisa. Para uma cota maior (500/mês por conta) além da sua biblioteca — coleções, artigos salvos e monitoramentos — obtenha uma chave gratuita em scholarfeed.org/settings.
Experimente perguntar: "Busque artigos recentes sobre escalonamento de computação em tempo de teste"
O Que Você Pode Fazer
Prospecção de tecnologia: "Que pesquisa nova sobre geração aumentada por recuperação foi publicada este mês?"
Revisão de literatura: "Encontre artigos semelhantes a 2401.04088 e exporte o BibTeX deles"
Monitoramento de tendências: "O que está em alta em cs.CV esta semana? Resuma os 3 principais."
Descoberta de autores: "Quem são os principais pesquisadores em inferência eficiente de LLM?"
Orientação de área: "Dê-me um relatório de orientação sobre arquiteturas esparsas de mistura de especialistas."
Instalação
O caminho mais rápido é npx scholar-feed-mcp@latest init, que detecta automaticamente seu cliente e escreve a configuração. Para configurar manualmente, cada cliente inicia o mesmo servidor stdio (npx -y scholar-feed-mcp@latest); apenas o local do arquivo de configuração e a chave de wrapper diferem.
Claude Desktop (um clique) instala sem editar nenhuma configuração: baixe o pacote .mcpb do último lançamento e abra-o (ou arraste-o para Configurações > Extensões). O instalador mostra um campo opcional para uma chave de API do Scholar Feed (sf_...): deixe em branco para o modo anônimo (200 chamadas/mês) ou cole uma chave gratuita de scholarfeed.org/settings para 500/mês.
Claude Code usa um comando de uma linha:
# Anonymous (200 calls/month)
claude mcp add scholar-feed -- npx -y scholar-feed-mcp@latest
# With an API key (500 calls/month per account)
claude mcp add scholar-feed -e SF_API_KEY=sf_your_key_here -- npx -y scholar-feed-mcp@latest
Qualquer outro cliente usa este bloco JSON padrão:
{
"mcpServers": {
"scholar-feed": {
"command": "npx",
"args": ["-y", "scholar-feed-mcp@latest"]
}
}
}
Para aumentar a cota para 500 chamadas/mês, adicione "env": { "SF_API_KEY": "sf_your_key_here" } à entrada do servidor. Obtenha uma chave gratuita em scholarfeed.org/settings.
Coloque esse bloco no arquivo de configuração correto:
| Cliente | Arquivo de configuração | Observações |
|---|---|---|
| Cursor | .cursor/mcp.json (projeto) ou ~/.cursor/mcp.json (global) | Reinicie o Cursor. |
| Claude Desktop | macOS: ~/Library/Application Support/Claude/claude_desktop_config.json; Windows: %APPDATA%\Claude\claude_desktop_config.json | Configurações → Desenvolvedor → Editar Configuração e reinicie. |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | Cascade → ícone MCP → Configurar e atualize. |
| Cline / Roo Code | cline_mcp_settings.json | Ícone da barra lateral Servidores MCP → Configurar. Cline e Roo Code compartilham este formato. |
| Gemini CLI | ~/.gemini/settings.json (ou projeto .gemini/settings.json) | |
| LM Studio | ~/.lmstudio/mcp.json | Aba Programa → Instalar → Editar mcp.json. Segue a notação do Cursor. |
| JetBrains (PyCharm / IntelliJ) | AI Assistant → MCP → Adicionar → Como JSON | Requer AI Assistant 2025.1+. |
Alguns clientes precisam de uma chave de wrapper ou formato de arquivo diferente:
OpenAI Codex, VS Code (GitHub Copilot), Zed, Continue e configurações com escopo de projeto
OpenAI Codex (~/.codex/config.toml, ou $CODEX_HOME/config.toml se você definir isso) usa TOML, não JSON — o bloco acima não funcionará. Um único arquivo atende tanto o CLI do Codex quanto a extensão do IDE.
[mcp_servers.scholar-feed]
command = "npx"
args = ["-y", "scholar-feed-mcp@latest"]
env = { SF_API_KEY = "sf_your_key_here" }
Remova a linha env para executar sem chave com 200 chamadas/mês. No Windows, se o Codex não conseguir iniciar o servidor, use command = "cmd" com args = ["/c", "npx", "-y", "scholar-feed-mcp@latest"].
VS Code: GitHub Copilot (.vscode/mcp.json) usa uma chave servers e um type explícito, e precisa do modo agente do Copilot. Você também pode executar MCP: Add Server pela Paleta de Comandos.
{
"servers": {
"scholar-feed": {
"type": "stdio",
"command": "npx",
"args": ["-y", "scholar-feed-mcp@latest"]
}
}
}
Zed (settings.json) usa uma chave context_servers, e a linha "source": "custom" é obrigatória (sem ela, o Zed ignora silenciosamente a entrada).
{
"context_servers": {
"scholar-feed": {
"source": "custom",
"command": "npx",
"args": ["-y", "scholar-feed-mcp@latest"]
}
}
}
Continue usa YAML, com mcpServers como lista, em ~/.continue/config.yaml (global) ou .continue/config.yaml (workspace).
mcpServers:
- name: scholar-feed
type: stdio
command: npx
args:
- "-y"
- scholar-feed-mcp@latest
Escopo de projeto (.mcp.json), para compartilhar o servidor em um repositório:
{
"mcpServers": {
"scholar-feed": {
"command": "npx",
"args": ["-y", "scholar-feed-mcp@latest"],
"env": { "SF_API_KEY": "${SF_API_KEY}" }
}
}
}
Windows: para qualquer configuração JSON acima, use "command": "cmd" e "args": ["/c", "npx", "-y", "scholar-feed-mcp@latest"].
O Scholar Feed é um servidor MCP stdio padrão, então qualquer outro cliente compatível com MCP funciona com o bloco padrão também.
Ferramentas Disponíveis (27)
Busca e Descoberta Principais
| Ferramenta | Descrição | Parâmetros Principais |
|---|---|---|
search_papers | Busca semântica + por palavras-chave com filtros. Também faz descoberta de artigos semelhantes, busca com escopo de citações e tendências. | q, category, novelty_min, days, sort, anchor_paper_id, scope_to_citations_of, mode, method_category, task, dataset, contribution_type, task_category, cursor, limit |
get_paper | Obtém detalhes completos do artigo pelo ID do arXiv. Também lida com consulta em lote e exportação BibTeX. | arxiv_ids, format, fields, verbose |
get_citations | Grafo de citações (referências de saída ou citações recebidas) | arxiv_id, direction, limit, fields |
fetch_fulltext | Lê o texto de um artigo por seção (resumo, introdução, trabalho_relacionado, método, resultados, conclusão ou all). Passe arxiv_ids para ler até 8 artigos em uma única chamada; um artigo que não puder ser extraído retorna como uma entrada com falha, não como uma chamada com falha. | arxiv_id, arxiv_ids, sections |
Autores
| Ferramenta | Descrição | Parâmetros Principais |
|---|---|---|
find_author | Encontra pesquisadores por consulta de tópico/nome, ou recupera um perfil por ID. | q, id, field, limit |
co_author_graph | Vizinhança de coautoria para um autor | author_ids, window_years |
Embeddings
| Ferramenta | Descrição | Parâmetros Principais |
|---|---|---|
embed_text | Obtém um embedding Gemini de 768 dimensões para texto (para HyDE e similaridade personalizada). Somente Pro, então chamadas anônimas/gratuitas recebem um 403 pro_required. | text, task_type |
Pesquisa
| Ferramenta | Descrição | Parâmetros Principais |
|---|---|---|
get_field_orientation | Orientação de recuperação barata para uma área de pesquisa: principais artigos, subcampos, problemas em aberto. Sem cota Pro. | topic, limit |
get_foundational_lineage | Trabalho fundamental para o nicho de um artigo via grafo de citações (consenso-depois-elevação): raízes_do_nicho → nível_de_campo → disciplina, com evidência cited_by_in_niche. Revela âncoras canônicas que a busca semântica não encontra. Sem cota Pro. | anchor_paper_id, scope, generality_ceiling, limit |
check_drift | "O método que uso está superado — e por quê?" Recibos de crítica + arestas de dominância de benchmark em ~10 famílias de problemas de construtores de LLM. Sem cota Pro. | family, method, limit |
Biblioteca, Coleções, Monitoramentos e Análise de Lacunas (exigem SF_API_KEY)
Estas MUTAM ou leem a conta do usuário autenticado. As ferramentas principais de leitura/busca acima funcionam anonimamente; estas precisam de uma chave.
| Ferramenta | Descrição | Parâmetros Principais |
|---|---|---|
save_paper | Adiciona um artigo à sua biblioteca (idempotente; alimenta a personalização). | arxiv_id |
unsave_paper | Remove um artigo da sua biblioteca (idempotente). | arxiv_id |
like_paper | Sinal de calibração "mais como este" para o feed Para Você (somente inserção). | arxiv_id |
list_library | Lista seus artigos salvos, mais recentes primeiro (inclui suas anotações). | limit, page |
annotate_paper | Registra seu veredito sobre um artigo — por que ele importa, quando usá-lo, por que você o descartou. Upsert; retornado por list_library, então é o que uma sessão posterior lê em vez de rederivar. | arxiv_id, note_text, action |
list_collections | Lista coleções com contagens de artigos. | (nenhum) |
create_collection | Cria uma coleção nomeada (obter-ou-criar; sem erro em duplicata). | name |
add_to_collection | Adiciona um artigo a uma coleção por nome ou id (também salva automaticamente). | arxiv_id, collection_name, collection_id |
remove_from_collection | Remove um artigo de uma coleção (permanece salvo). | arxiv_id, collection_name, collection_id |
create_watch | Busca salva avaliada diariamente; obter-ou-criar por nome. Defina-a com um filtro estruturado criteria (recomendado) ou um único seletor de semente. | name, novelty_min, criteria, recency_days, q, collection_name, collection_id, anchor_paper_id, scope_to_citations_of, author_id, category |
list_watches | Lista monitoramentos com resumo, last_evaluated_at e pending_hits. | (nenhum) |
check_watches | Puxa novas correspondências desde o último resumo (somente leitura, idempotente). | watch_name, watch_id, limit |
update_watch | Edita um monitoramento no lugar: renomear, alterar novelty_min ou redirecionar seu criteria estruturado (limpa correspondências pendentes). Enderece por nome ou id. | name, watch_id, new_name, novelty_min, criteria, recency_days |
preview_watch | Teste seco de um filtro estruturado criteria sobre artigos recentes sem criar um monitoramento; retorna match_count e um sample para ajustar antes de salvar. Somente leitura. | criteria, recency_days |
delete_watch | Exclui um monitoramento por nome ou id (idempotente). | name, watch_id |
find_gaps | "O que estou perdendo?" para uma coleção ou tópico: trabalho fundamental + de fronteira que você não salvou (somente leitura, Pro). | collection_name, collection_id, topic, scope, limit |
ask_library | "Responda do meu conjunto salvo": uma síntese citada sobre sua biblioteca ou uma coleção, fundamentada apenas em artigos que você salvou (somente leitura). O inverso de find_gaps. Grátis 20/mês, depois Pro 200/dia. | question, collection_name, collection_id, limit |
Pontuação de Novidade
Cada artigo tem um llm_novelty_score de 0,0 a 1,0:
| Faixa | Significado | Exemplo |
|---|---|---|
| 0,7+ | Mudança de paradigma ou SOTA amplo | Nova arquitetura que muda o campo |
| 0,5-0,7 | Método novo com resultados fortes | Nova técnica de treinamento com ganhos claros |
| 0,3-0,5 | Melhoria incremental | Aplicar método conhecido a novo domínio |
| <0,3 | Levantamento, conjunto de dados ou extensão menor | Revisão de literatura, lançamento de benchmark |
Use novelty_min: 0.5 em search_papers para filtrar trabalho genuinamente novo.
Limites de Taxa
| Endpoint | Limite |
|---|---|
search_papers | 30/min |
get_paper | 30/min |
get_citations | 30/min |
fetch_fulltext (artigo único) | 10/min |
fetch_fulltext (lote, 2-8 artigos) | 6/min |
find_author | 20/min |
co_author_graph | 20/min |
embed_text | 30/min |
get_field_orientation | 20/min |
get_foundational_lineage | 20/min |
find_gaps | 20/min |
ask_library | 10/min |
As respostas incluem os cabeçalhos X-RateLimit-Limit, X-RateLimit-Remaining e X-RateLimit-Reset.
Cota mensal de volume (separada dos limites por minuto acima, contada por conta em todas as suas chaves): 200 chamadas/mês anônimas (por IP), 500/mês com chave gratuita, 10.000/mês no Pro. Um limite diário menor (100 / 200 / 2.000) fica abaixo disso como proteção contra picos, para que um loop descontrolado não consuma um mês em uma hora; atingi-lo retorna um 429 com scope: "burst" e não afeta sua cota mensal. Consulte seu saldo mensal restante em GET /v1/health (monthly_limit / usage_this_month) antes de um lote.
As ferramentas de síntese com IA têm seus próprios limites: ask_library é 20/mês grátis, depois 200/dia no Pro; find_gaps é somente Pro (um 403 pro_required caso contrário). embed_text exige uma conta de qualquer nível — chamadas anônimas recebem um 403 account_required.
Exemplo de Resposta
search_papers com q: "attention mechanism" retorna:
{
"papers": [
{
"arxiv_id": "2401.04088",
"title": "Attention Is All You Need (But Not All You Get)",
"authors": ["A. Researcher", "B. Scientist"],
"year": 2024,
"categories": ["cs.LG", "cs.AI"],
"primary_category": "cs.LG",
"arxiv_url": "https://arxiv.org/abs/2401.04088",
"has_code": true,
"github_url": "https://github.com/example/repo",
"citation_count": 42,
"rank_score": 0.73,
"llm_summary": "Proposes a sparse attention variant that reduces compute by 60% while matching dense attention accuracy on 5 benchmarks.",
"llm_novelty_score": 0.55
}
],
"total": 1847,
"page": 1,
"limit": 20,
"next_cursor": "eyJzIjogMC43MywgImlkIjogIjI0MDEuMDQwODgifQ=="
}
Passe next_cursor de volta para obter a próxima página (paginação por chave, que é mais estável que números de página para grandes conjuntos de resultados).
Variáveis de Ambiente
| Variável | Obrigatória | Padrão | Descrição |
|---|---|---|---|
SF_API_KEY | Não | (nenhum) | Sua chave de API do Scholar Feed (começa com sf_). Sem ela, opera em modo anônimo (200 chamadas/mês). |
SF_API_BASE_URL | Não | URL de produção | Substitui a URL base da API |
Desenvolvimento
npm install
npm run build # Build to build/
npm run dev # Watch mode
npm run typecheck # Type check without emitting
npm test # Run tests
Contribuindo
Consulte CONTRIBUTING.md para diretrizes.
Solução de Problemas
"Falha na autenticação: sua SF_API_KEY é inválida" A chave pode ter sido revogada. Gere uma nova em scholarfeed.org/settings. Ou remova a chave para usar o modo anônimo.
"Limite de taxa excedido" ou "Limite diário anônimo excedido" O modo anônimo permite 200 chamadas/mês. Obtenha uma chave de API gratuita em scholarfeed.org/settings para 500 chamadas/mês por conta, além da sua biblioteca.
O servidor aparece como "falhou" sem erro — especialmente logo após uma atualização
O primeiro lançamento (e o primeiro lançamento após cada nova versão) faz npx baixar o pacote. O binário publicado é um único arquivo autocontido, sem árvore de dependências para resolver, então isso é rápido — mas em uma conexão lenta pode exceder o tempo limite de inicialização do seu cliente, e o servidor então aparece como "falhou" sem detalhes. Correções: (1) aqueça o cache executando-o uma vez em um terminal — npx -y scholar-feed-mcp@latest --version — e reinicie o cliente; (2) aumente o tempo limite de inicialização do MCP se o seu cliente suportar (Claude Code: MCP_TIMEOUT=60000). Para inicializações mais rápidas e offline, instale uma vez globalmente e aponte a configuração para ele em vez de npx:
npm install -g scholar-feed-mcp
# then in your MCP config: "command": "scholar-feed-mcp", "args": []
Chamadas de ferramentas expiram ou falham silenciosamente
Garanta que o Node.js 18+ esteja instalado (node --version). Versões mais antigas não possuem a API nativa fetch.
Cache npx desatualizado
Os blocos de configuração acima fixam scholar-feed-mcp@latest, que re-resolve a versão mais recente a cada inicialização. Se você usou anteriormente um scholar-feed-mcp sem fixação e está preso em uma versão antiga: npx --yes scholar-feed-mcp@latest.
Windows: "comando não encontrado"
Use "command": "cmd" com "args": ["/c", "npx", "-y", "scholar-feed-mcp@latest"] na sua configuração do MCP.
Sobre o Scholar Feed
Scholar Feed é um mecanismo de descoberta de pesquisa para artigos de ciência da computação e IA/ML, fundado em 2025. Ele indexa mais de 600.000 artigos do arXiv — classificados por novidade, velocidade de citação e relevância — com resumos gerados por LLM, um grafo de citações, perfis de autores e extração de texto completo. Está disponível como site, API REST pública e servidor Model Context Protocol (MCP) que agentes de IA podem chamar diretamente. Este pacote (scholar-feed-mcp) é o servidor MCP de código aberto.
- Site: https://www.scholarfeed.org
- npm: https://www.npmjs.com/package/scholar-feed-mcp
- API REST: https://api.scholarfeed.org/v1
Privacidade
Consulte nossa política de privacidade.