Scholar Feed
Servidor MCP para buscar más de 600,000 artículos de investigación en CS/AI con gráficos de citas, texto completo, embeddings y BibTeX.
Documentación
Servidor MCP de Scholar Feed
Búsqueda de artículos de investigación con ranking y seguimiento de citas, para ingeniería de LLM e investigación académica, sin salir de Claude Code, Cursor ni ningún cliente MCP.
La mayoría de las herramientas de artículos devuelven una lista plana. Scholar Feed la clasifica: ordena por relevancia, por número de citas comprobado o por impacto creciente, y luego rastrea el linaje de citas de cualquier artículo hacia adelante y hacia atrás a través de más de 22 millones de aristas. Más de 600 mil artículos de CS/IA/ML, actualizados diariamente, cada uno con un resumen generado por LLM y una puntuación de novedad.
Scholar Feed indexa artículos de arXiv diariamente y los clasifica según actualidad, velocidad de citación, reputación institucional y disponibilidad de código.
Inicio rápido
npx scholar-feed-mcp@latest init
Este asistente interactivo:
- Opcionalmente solicita una clave de API (u omítela para acceso anónimo)
- Detecta tu cliente MCP (Claude Code, Cursor o Claude Desktop)
- Escribe la configuración y verifica la conexión
No se requiere clave de API. El acceso anónimo te da 200 llamadas/mes, suficiente para una sesión de investigación típica. Para una cuota mayor (500/mes por cuenta) más tu biblioteca (colecciones, artículos guardados y seguimientos), obtén una clave gratuita en scholarfeed.org/settings.
Prueba preguntando: "Busca artículos recientes sobre escalado de cómputo en tiempo de prueba"
Lo que puedes hacer
Exploración tecnológica: "¿Qué investigación novedosa sobre generación aumentada por recuperación se publicó este mes?"
Revisión de literatura: "Encuentra artículos similares a 2401.04088 y exporta su BibTeX"
Monitoreo de tendencias: "¿Qué está en tendencia en cs.CV esta semana? Resume los 3 principales."
Descubrimiento de autores: "¿Quiénes son los principales investigadores en inferencia eficiente de LLM?"
Orientación de campo: "Dame un informe de orientación sobre arquitecturas dispersas de mezcla de expertos."
Instalación
El camino más rápido es npx scholar-feed-mcp@latest init, que detecta automáticamente tu cliente y escribe la configuración. Para configurarlo manualmente, cada cliente lanza el mismo servidor stdio (npx -y scholar-feed-mcp@latest); solo difieren la ubicación del archivo de configuración y la clave contenedora.
Claude Desktop (un clic) se instala sin editar ninguna configuración: descarga el paquete .mcpb desde la última versión y ábrelo (o arrástralo a Configuración > Extensiones). El instalador muestra un campo opcional para la clave de API de Scholar Feed (sf_...): déjalo en blanco para modo anónimo (200 llamadas/mes) o pega una clave gratuita de scholarfeed.org/settings para 500/mes.
Claude Code requiere un comando de una línea:
# 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
Cualquier otro cliente usa este bloque JSON estándar:
{
"mcpServers": {
"scholar-feed": {
"command": "npx",
"args": ["-y", "scholar-feed-mcp@latest"]
}
}
}
Para aumentar la cuota a 500 llamadas/mes, agrega "env": { "SF_API_KEY": "sf_your_key_here" } a la entrada del servidor. Obtén una clave gratuita en scholarfeed.org/settings.
Coloca ese bloque en el archivo de configuración correcto:
| Cliente | Archivo de configuración | Notas |
|---|---|---|
| Cursor | .cursor/mcp.json (proyecto) o ~/.cursor/mcp.json (global) | Reinicia Cursor. |
| Claude Desktop | macOS: ~/Library/Application Support/Claude/claude_desktop_config.json; Windows: %APPDATA%\Claude\claude_desktop_config.json | Configuración → Desarrollador → Editar configuración, luego reinicia. |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | Cascade → ícono MCP → Configurar, luego actualiza. |
| Cline / Roo Code | cline_mcp_settings.json | Ícono de la barra lateral Servidores MCP → Configurar. Cline y Roo Code comparten este formato. |
| Gemini CLI | ~/.gemini/settings.json (o proyecto .gemini/settings.json) | |
| LM Studio | ~/.lmstudio/mcp.json | Pestaña Programa → Instalar → Editar mcp.json. Sigue la notación de Cursor. |
| JetBrains (PyCharm / IntelliJ) | AI Assistant → MCP → Agregar → Como JSON | Requiere AI Assistant 2025.1+. |
Algunos clientes necesitan una clave contenedora o formato de archivo diferente:
OpenAI Codex, VS Code (GitHub Copilot), Zed, Continue y configuraciones a nivel de proyecto
OpenAI Codex (~/.codex/config.toml, o $CODEX_HOME/config.toml si lo configuras) usa TOML, no JSON — el bloque anterior no funcionará. Un solo archivo sirve tanto para la CLI de Codex como para la extensión del IDE.
[mcp_servers.scholar-feed]
command = "npx"
args = ["-y", "scholar-feed-mcp@latest"]
env = { SF_API_KEY = "sf_your_key_here" }
Elimina la línea env para ejecutar sin clave a 200 llamadas/mes. En Windows, si Codex no puede lanzar el servidor, usa command = "cmd" con args = ["/c", "npx", "-y", "scholar-feed-mcp@latest"].
VS Code: GitHub Copilot (.vscode/mcp.json) usa una clave servers y un type explícito, y necesita el modo agente de Copilot. También puedes ejecutar MCP: Add Server desde la Paleta de comandos.
{
"servers": {
"scholar-feed": {
"type": "stdio",
"command": "npx",
"args": ["-y", "scholar-feed-mcp@latest"]
}
}
}
Zed (settings.json) usa una clave context_servers, y la línea "source": "custom" es obligatoria (sin ella, Zed omite silenciosamente la entrada).
{
"context_servers": {
"scholar-feed": {
"source": "custom",
"command": "npx",
"args": ["-y", "scholar-feed-mcp@latest"]
}
}
}
Continue usa YAML, con mcpServers como lista, en ~/.continue/config.yaml (global) o .continue/config.yaml (espacio de trabajo).
mcpServers:
- name: scholar-feed
type: stdio
command: npx
args:
- "-y"
- scholar-feed-mcp@latest
A nivel de proyecto (.mcp.json), para compartir el servidor en un repositorio:
{
"mcpServers": {
"scholar-feed": {
"command": "npx",
"args": ["-y", "scholar-feed-mcp@latest"],
"env": { "SF_API_KEY": "${SF_API_KEY}" }
}
}
}
Windows: para cualquier configuración JSON anterior, usa "command": "cmd" y "args": ["/c", "npx", "-y", "scholar-feed-mcp@latest"].
Scholar Feed es un servidor MCP stdio estándar, por lo que cualquier otro cliente compatible con MCP también funciona con el bloque estándar.
Herramientas disponibles (27)
Búsqueda y descubrimiento principales
| Herramienta | Descripción | Parámetros clave |
|---|---|---|
search_papers | Búsqueda semántica + por palabras clave con filtros. También permite descubrimiento de artículos similares, búsqueda limitada por citas y tendencias. | 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én detalles completos de un artículo por ID de arXiv. También maneja consultas por lotes y exportación BibTeX. | arxiv_ids, format, fields, verbose |
get_citations | Grafo de citas (referencias salientes o citas entrantes) | arxiv_id, direction, limit, fields |
fetch_fulltext | Lee el texto de un artículo por sección (resumen, introducción, trabajo_relacionado, método, resultados, conclusión o all). Pasa arxiv_ids para leer hasta 8 artículos en una sola llamada; un artículo que no se pueda extraer regresa como entrada fallida, no como llamada fallida. | arxiv_id, arxiv_ids, sections |
Autores
| Herramienta | Descripción | Parámetros clave |
|---|---|---|
find_author | Encuentra investigadores por consulta de tema/nombre, u obtén un perfil por ID. | q, id, field, limit |
co_author_graph | Vecindario de coautoría para un autor | author_ids, window_years |
Incrustaciones (Embeddings)
| Herramienta | Descripción | Parámetros clave |
|---|---|---|
embed_text | Obtén una incrustación Gemini de 768 dimensiones para texto (para HyDE y similitud personalizada). Solo Pro, por lo que los usuarios anónimos/gratuitos reciben un 403 pro_required. | text, task_type |
Investigación
| Herramienta | Descripción | Parámetros clave |
|---|---|---|
get_field_orientation | Orientación de recuperación económica para un área de investigación: artículos principales, subcampos, problemas abiertos. Sin cuota Pro. | topic, limit |
get_foundational_lineage | Trabajo fundacional para el nicho de un artículo mediante el grafo de citas (consenso-luego-elevación): raíces_del_nicho → nivel_de_campo → disciplina, con evidencia cited_by_in_niche. Superficies anclas canónicas que la búsqueda semántica pasa por alto. Sin cuota Pro. | anchor_paper_id, scope, generality_ceiling, limit |
check_drift | "¿El método que uso está superado — y por qué?" Recibos de crítica + aristas de dominancia de benchmarks en ~10 familias de problemas de constructores de LLM. Sin cuota Pro. | family, method, limit |
Biblioteca, colecciones, seguimientos y análisis de brechas (requieren SF_API_KEY)
Estas MUTAN o leen la cuenta autenticada del usuario. Las herramientas principales de lectura/búsqueda anteriores funcionan de forma anónima; estas necesitan una clave.
| Herramienta | Descripción | Parámetros clave |
|---|---|---|
save_paper | Marca un artículo en tu biblioteca (idempotente; alimenta la personalización). | arxiv_id |
unsave_paper | Elimina un artículo de tu biblioteca (idempotente). | arxiv_id |
like_paper | Señal de calibración "más como esto" para el feed Para ti (solo inserción). | arxiv_id |
list_library | Lista tus artículos guardados, más recientes primero (incluye tus notas). | limit, page |
annotate_paper | Registra tu veredicto sobre un artículo — por qué importa, cuándo usarlo, por qué lo descartaste. Se actualiza; lo devuelve list_library, por lo que es lo que una sesión posterior lee en lugar de volver a derivarlo. | arxiv_id, note_text, action |
list_collections | Lista colecciones con recuentos de artículos. | (ninguno) |
create_collection | Crea una colección con nombre (obtener-o-crear; sin error en duplicados). | name |
add_to_collection | Agrega un artículo a una colección por nombre o ID (también guarda automáticamente). | arxiv_id, collection_name, collection_id |
remove_from_collection | Elimina un artículo de una colección (permanece guardado). | arxiv_id, collection_name, collection_id |
create_watch | Búsqueda guardada evaluada diariamente; obtener-o-crear por nombre. Defínela con un filtro estructurado criteria (recomendado) o un selector semilla único. | name, novelty_min, criteria, recency_days, q, collection_name, collection_id, anchor_paper_id, scope_to_citations_of, author_id, category |
list_watches | Lista seguimientos con resumen, last_evaluated_at y pending_hits. | (ninguno) |
check_watches | Obtén nuevas coincidencias desde el último resumen (solo lectura, idempotente). | watch_name, watch_id, limit |
update_watch | Edita un seguimiento en su lugar: renombra, cambia novelty_min o redirige su criteria estructurado (borra coincidencias pendientes). Dirígete por nombre o ID. | name, watch_id, new_name, novelty_min, criteria, recency_days |
preview_watch | Prueba un filtro estructurado criteria sobre artículos recientes sin crear un seguimiento; devuelve match_count y un sample para ajustar antes de guardar. Solo lectura. | criteria, recency_days |
delete_watch | Elimina un seguimiento por nombre o ID (idempotente). | name, watch_id |
find_gaps | "¿Qué me estoy perdiendo?" para una colección o tema: trabajo fundacional + de frontera que no has guardado (solo lectura, Pro). | collection_name, collection_id, topic, scope, limit |
ask_library | "Responde desde mi conjunto guardado": una síntesis citada sobre tu biblioteca o una colección, basada únicamente en artículos que has guardado (solo lectura). Lo inverso de find_gaps. Gratis 20/mes, luego Pro 200/día. | question, collection_name, collection_id, limit |
Puntuación de novedad
Cada artículo tiene un llm_novelty_score de 0.0 a 1.0:
| Rango | Significado | Ejemplo |
|---|---|---|
| 0.7+ | Cambio de paradigma o SOTA amplio | Nueva arquitectura que cambia el campo |
| 0.5-0.7 | Método novedoso con resultados sólidos | Nueva técnica de entrenamiento con mejoras claras |
| 0.3-0.5 | Mejora incremental | Aplicar un método conocido a un nuevo dominio |
| <0.3 | Encuesta, conjunto de datos o extensión menor | Revisión de literatura, lanzamiento de benchmark |
Usa novelty_min: 0.5 en search_papers para filtrar trabajo genuinamente novedoso.
Límites de tasa
| Endpoint | Límite |
|---|---|
search_papers | 30/min |
get_paper | 30/min |
get_citations | 30/min |
fetch_fulltext (artículo individual) | 10/min |
fetch_fulltext (lote, 2-8 artículos) | 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 |
Las respuestas incluyen los encabezados X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset.
Cuota de volumen mensual (separada de los límites por minuto anteriores, contada por cuenta en todas tus claves): 200 llamadas/mes anónimo (por IP), 500/mes con una clave gratuita, 10,000/mes en Pro. Un límite diario más pequeño (100 / 200 / 2,000) se encuentra debajo como protección contra ráfagas para que un bucle descontrolado no pueda gastar un mes en una hora; alcanzarlo devuelve un 429 con scope: "burst" y deja tu cuota mensual intacta. Consulta tu mes restante desde GET /v1/health (monthly_limit / usage_this_month) antes de un lote.
Las herramientas de síntesis de IA tienen sus propios límites: ask_library es 20/mes gratis, luego 200/día en Pro; find_gaps es solo Pro (un 403 pro_required de lo contrario). embed_text necesita una cuenta de cualquier nivel — los llamadores anónimos reciben un 403 account_required.
Ejemplo de Respuesta
search_papers con q: "attention mechanism" devuelve:
{
"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=="
}
Pasa next_cursor de vuelta para obtener la siguiente página (paginación por conjunto de claves, que es más estable que los números de página para conjuntos de resultados grandes).
Variables de Entorno
| Variable | Requerida | Predeterminado | Descripción |
|---|---|---|---|
SF_API_KEY | No | (ninguna) | Tu clave de API de Scholar Feed (comienza con sf_). Sin ella, se ejecuta en modo anónimo (200 llamadas/mes). |
SF_API_BASE_URL | No | URL de producción | Anula la URL base de la API |
Desarrollo
npm install
npm run build # Build to build/
npm run dev # Watch mode
npm run typecheck # Type check without emitting
npm test # Run tests
Contribuciones
Consulta CONTRIBUTING.md para las pautas.
Solución de Problemas
"Authentication failed: your SF_API_KEY is invalid" La clave puede haber sido revocada. Genera una nueva en scholarfeed.org/settings. O elimina la clave para usar el modo anónimo.
"Rate limit exceeded" o "Anonymous daily limit exceeded" El modo anónimo permite 200 llamadas/mes. Obtén una clave de API gratuita en scholarfeed.org/settings para 500 llamadas/mes por cuenta, además de tu biblioteca.
El servidor se muestra como "failed" sin error — especialmente justo después de una actualización
El primer lanzamiento (y el primer lanzamiento después de cada nueva versión) hace que npx descargue el paquete. El binario publicado es un único archivo autocontenido sin árbol de dependencias que resolver, por lo que esto es rápido — pero en un enlace lento aún puede superar el tiempo de espera de inicio de tu cliente, y el servidor se muestra como "failed" sin detalle. Soluciones: (1) calienta la caché ejecutándolo una vez en una terminal — npx -y scholar-feed-mcp@latest --version — luego reinicia tu cliente; (2) aumenta el tiempo de espera de inicio de MCP si tu cliente lo admite (Claude Code: MCP_TIMEOUT=60000). Para los lanzamientos más rápidos y sin conexión, instala una vez globalmente y apunta la configuración a él en lugar de npx:
npm install -g scholar-feed-mcp
# then in your MCP config: "command": "scholar-feed-mcp", "args": []
Las llamadas a herramientas se agotan o fallan silenciosamente
Asegúrate de que Node.js 18+ esté instalado (node --version). Las versiones anteriores carecen de la API nativa fetch.
Caché de npx obsoleta
Las configuraciones de bloque anteriores fijan scholar-feed-mcp@latest, que vuelve a resolver la versión más reciente en cada lanzamiento. Si anteriormente usaste un scholar-feed-mcp sin fijar y estás atascado en una versión antigua: npx --yes scholar-feed-mcp@latest.
Windows: "command not found"
Usa "command": "cmd" con "args": ["/c", "npx", "-y", "scholar-feed-mcp@latest"] en tu configuración de MCP.
Acerca de Scholar Feed
Scholar Feed es un motor de descubrimiento de investigación para ciencias de la computación y artículos de IA/ML, fundado en 2025. Indexa más de 600,000 artículos de arXiv — clasificados por novedad, velocidad de citas y relevancia — con resúmenes generados por LLM, un grafo de citas, perfiles de autores y extracción de texto completo. Está disponible como sitio web, API REST pública y servidor de Protocolo de Contexto de Modelo (MCP) que los agentes de IA pueden llamar directamente. Este paquete (scholar-feed-mcp) es el servidor MCP de código abierto.
- Sitio web: https://www.scholarfeed.org
- npm: https://www.npmjs.com/package/scholar-feed-mcp
- API REST: https://api.scholarfeed.org/v1
Privacidad
Consulta nuestra política de privacidad.