Skip to main content
Glama
404Simon

research-mcp

by 404Simon

Research MCP

Servidor MCP de solo lectura para investigación académica. Permite que un agente LLM busque artículos, inspeccione metadatos, siga grafos de citas, genere BibTeX y lea textos completos de PDF de acceso abierto, todo mediante herramientas FastMCP.

Requisitos

  • Python 3.13+

  • uv

  • Acceso a Internet para las API públicas (no se requiere clave API)

Cómo funciona

API

Rol

Semantic Scholar

Búsqueda principal, metadatos, TLDR, grafo de citas. Se intenta primero.

OpenAlex

Respaldo automático cuando Semantic Scholar está limitado por tasa, además de resolución de PDF de acceso abierto.

arXiv

Búsqueda dedicada de preprints (source="arxiv"), consultas por ID de arXiv y descarga directa de PDF. Ideal para encontrar artículos recientes específicos por nombre exacto.

DBLP

Encuestas de actas de congresos (venue_proceedings) y búsquedas por sede. La fuente canónica para "qué acepta esta conferencia".

Crossref

Generación de BibTeX (transform/application/x-bibtex).

PyMuPDF

Extracción de texto de PDF.

Semantic Scholar está limitado por tasa cuando se usa sin clave, por lo que cada solicitud se reintenta con retroceso exponencial (respetando Retry-After) antes de recurrir a OpenAlex. Los resultados siempre indican al agente qué fuente se usó. La API de arXiv impone una regla de espaciado de ~3 s, que el servidor respeta; DBLP restablece las conexiones en solicitudes rápidas y secuenciales, por lo que las páginas de flujo de sedes se obtienen con un retraso de cortesía de 3 s también.

Caché

Todas las respuestas frágiles de API, resultados de búsqueda, corpus de actas de congresos y PDF se almacenan en caché en disco bajo ~/.cache/research-mcp/ (api/ para respuestas JSON, pdf/ para PDF descargados):

  • Aciertos de caché frescos se sirven al instante: las consultas repetidas no tocan la red.

  • Corpus de sedes (ensamblados desde páginas de DBLP) se almacenan en caché como un todo, por lo que re-encuestar un programa de conferencia es instantáneo incluso si DBLP pierde una página.

  • Respaldo obsoleto: si una API está caída o limitando la tasa, se sirve la última respuesta en caché de todos modos, para que el agente aún obtenga una respuesta.

  • TTL de caché: 7 días para arXiv y BibTeX (datos estables), 24 h para búsqueda/metadatos y DBLP. Sobrescribe la ubicación con RESEARCH_MCP_CACHE_DIR.

Configuración

Registra el servidor en la configuración MCP de tu agente de codificación. Por ejemplo, en opencode.json de Opencode:

{
  "mcp": {
    "research-mcp": {
      "command": [
        "uvx",
        "--from",
        "git+https://github.com/404Simon/research-mcp",
        "research-mcp"
      ],
      "enabled": true,
      "type": "local"
    }
  }
}

Variables de entorno (todas opcionales)

Variable

Propósito

SEMANTIC_SCHOLAR_API_KEY

Configúrala para garantizar 1 RPS y mayor fiabilidad (de lo contrario, recurre a OpenAlex).

RESEARCH_MCP_CACHE_DIR

Dónde se almacenan en caché las respuestas de API y los PDF. Predeterminado: ~/.cache/research-mcp/.

Herramientas

search_papers

Busca artículos académicos por palabra clave con filtros opcionales de sede y año. Devuelve resultados estructurados con título, año, sede, autores, DOI, resumen, recuento de citas y un enlace a PDF de acceso abierto cuando está disponible.

Argumento

Tipo

Descripción

query

string (req.)

Términos de búsqueda

venue

string (opt.)

Filtrar por sede, p. ej. e-Energy, VLDB

year_start

int (opt.)

Año de publicación más temprano

year_end

int (opt.)

Año de publicación más reciente

limit

int (opt.)

Máximo de resultados (predeterminado 20)

source

string (opt.)

auto (predeterminado), semanticscholar, openalex o arxiv

source="arxiv" busca en la API de preprints de arXiv y es la forma recomendada de encontrar artículos recientes específicos por nombre exacto, p. ej. query='ti:"carbon intensity" AND abs:forecast' (la sintaxis de campos de arXiv se pasa tal cual). Todos los resultados se almacenan en caché, por lo que las búsquedas repetidas son instantáneas.

venue_proceedings

Encuesta las actas de una sede (lo que realmente se publica allí). Úsalo para comprobar si una idea de artículo encaja en una conferencia como ACM e-Energy.

Argumento

Tipo

Descripción

venue

string (req.)

Nombre de la sede (p. ej. e-Energy) o una clave de flujo de DBLP (p. ej. conf/eenergy)

year

int (opt.)

Solo artículos de un año (p. ej. 2024)

query

string (opt.)

Filtro de tema; los artículos se clasifican por solapamiento de palabras clave en el título

limit

int (opt.)

Máximo de resultados (predeterminado 20)

El corpus completo de la sede se obtiene de DBLP (paginado más allá de su límite de 100 resultados), se clasifica en el lado del cliente y se almacena en caché como un todo: las re-encuestas son instantáneas.

{"results": [
  {"title": "Reinforcement Learning Approach for Optimal Distributed Energy Management in a Microgrid",
   "year": 2018, "venue": "IEEE Transactions on Power Systems",
   "authors": ["Elham Foruzan", "Leen-Kiat Soh", "S. Asgarpoor"],
   "doi": "10.1109/tpwrs.2018.2823641",
   "abstract": "In this paper, a multiagent-based model is used ...",
   "citation_count": 297, "open_access_pdf": null,
   "source": "openalex"}],
 "note": "(Semantic Scholar unavailable — used OpenAlex instead: RequestFailed)",
 "count": 1}

paper_details

Metadatos completos de un artículo. Acepta un DOI (p. ej. 10.1109/tpwrs.2018.2823641), un ID de arXiv (p. ej. 2408.03506, arXiv:2408.03506 o una URL arxiv.org/abs/...) o un ID de OpenAlex.

Argumento

Tipo

Descripción

doi_or_id

string (req.)

DOI, ID de arXiv o ID de OpenAlex

Devuelve título, autores, sede, año, resumen, TLDR, recuento de citas, DOI y PDF de acceso abierto:

get_citation_graph

Sigue las citas de un artículo hacia adelante o hacia atrás para búsqueda en bola de nieve.

Argumento

Tipo

Descripción

paper_id

string (req.)

DOI, ID de OpenAlex (W...) o ID de artículo de Semantic Scholar

direction

string (opt.)

citing (predeterminado, artículos que citan este) o referenced (su bibliografía)

limit

int (opt.)

Máximo de resultados (predeterminado 20)

get_bibtex

Genera una entrada BibTeX para un DOI. Usa la transformación nativa de Crossref; recurre a la generación local a partir de metadatos de OpenAlex (maneja DOIs de arXiv que Crossref no conoce).

Argumento

Tipo

Descripción

doi

string (req.)

DOI

@article{Foruzan_2018, title={Reinforcement Learning Approach for Optimal Distributed Energy Management in a Microgrid}, volume={33}, ..., author={Foruzan, Elham and Soh, Leen-Kiat and Asgarpoor, Sohrab}, year={2018} }

read_paper_full_text

Descarga un PDF de acceso abierto y extrae su texto con PyMuPDF. Pasa un DOI, un ID de arXiv (p. ej. 2408.03506) o una URL directa de PDF. Los PDF se almacenan en caché localmente (~/.cache/research-mcp/pdf/).

Argumento

Tipo

Descripción

doi_or_pdf_url

string (req.)

DOI, ID de arXiv o URL de PDF https://...

max_chars

int (opt.)

Trunca el texto devuelto (predeterminado 50000)

cache

bool (opt.)

Almacena el PDF en caché localmente (predeterminado true)

Devuelve el texto extraído, el recuento de páginas, la URL de origen y la ruta en caché. Si no se encuentra una copia de acceso abierto, el agente recibe un mensaje claro que le indica buscar una copia OA o pasar una URL de PDF directamente.

Estructura de archivos

src/
  main.py              # FastMCP server, tool definitions, fallback orchestration
  client.py            # HTTP client with retry/backoff (429/5xx, Retry-After)
  cache.py             # Disk cache (~/.cache/research-mcp/) with stale fallback
  semanticscholar.py   # Semantic Scholar: search, details, citations (optional API key)
  openalex.py          # OpenAlex: search, details, citation graph, OA-PDF resolution
  arxiv.py             # arXiv API: search, ID lookups (3 s politeness, 7-day cache)
  dblp.py              # DBLP: venue proceedings + venue-scoped search (paged corpus cache)
  crossref.py          # Crossref: BibTeX transform + local fallback generator
  pdf.py               # PDF download/validation/caching + PyMuPDF text extraction

No se requiere clave API. Ejecuta uv sync && uv run research-mcp para iniciar el servidor sobre stdio.

-
license - not tested
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Academic research MCP server for paper search, citation checks, graphs, and deep research.

  • Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.

  • Read-only MCP over an agentic SLR workspace with per-claim citation verification

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/404Simon/research-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server