Skip to main content
Glama
404Simon

research-mcp

by 404Simon

Research MCP

Schreibgeschützter MCP-Server für akademische Forschung. Ermöglicht einem LLM-Agenten, Paper zu suchen, Metadaten zu prüfen, Zitationsgraphen zu verfolgen, BibTeX zu erzeugen und Volltexte von Open-Access-PDFs zu lesen – alles über FastMCP-Tools.

Anforderungen

  • Python 3.13+

  • uv

  • Internetzugang zu den öffentlichen APIs (kein API-Schlüssel erforderlich)

So funktioniert es

API

Rolle

Semantic Scholar

Primäre Suche, Metadaten, TLDRs, Zitationsgraph. Wird zuerst versucht.

OpenAlex

Automatischer Fallback, wenn Semantic Scholar ratenbegrenzt ist, plus Auflösung von Open-Access-PDFs.

arXiv

Dedizierte Preprint-Suche (source="arxiv"), arXiv-ID-Lookups und direkter PDF-Download. Am besten geeignet, um bestimmte aktuelle Paper mit exaktem Namen zu finden.

DBLP

Konferenzband-Übersichten (venue_proceedings) und venuespezifische Suchen. Die kanonische Quelle für „Was akzeptiert diese Konferenz“.

Crossref

BibTeX-Erzeugung (transform/application/x-bibtex).

PyMuPDF

PDF-Text-Extraktion.

Semantic Scholar ist ohne Schlüssel ratenbegrenzt, daher wird jede Anfrage mit exponentiellem Backoff (unter Beachtung von Retry-After) wiederholt, bevor auf OpenAlex zurückgegriffen wird. Die Ergebnisse teilen dem Agenten immer mit, welche Quelle verwendet wurde. Die arXiv-API erzwingt eine Abstandsregel von ~3 s, die der Server einhält; DBLP setzt Verbindungen bei schnellen aufeinanderfolgenden Anfragen zurück, daher werden Venue-Stream-Seiten ebenfalls mit einer Höflichkeitsverzögerung von 3 s abgerufen.

Caching

Alle fragilen API-Antworten, Suchergebnisse, Konferenzband-Korpora und PDFs werden auf der Festplatte unter ~/.cache/research-mcp/ zwischengespeichert (api/ für JSON-Antworten, pdf/ für heruntergeladene PDFs):

  • Frische Cache-Treffer werden sofort ausgeliefert – wiederholte Abfragen berühren das Netzwerk nicht.

  • Venue-Korpora (aus DBLP-Seiten zusammengestellt) werden als Ganzes gecacht, sodass erneute Übersichten über ein Konferenzprogramm sofort verfügbar sind, selbst wenn DBLP eine Seite fallen lässt.

  • Veralteter Fallback: Wenn eine API nicht verfügbar ist oder ratenbegrenzt, wird die letzte gecachte Antwort trotzdem ausgeliefert, sodass der Agent weiterhin eine Antwort erhält.

  • Cache-TTLs: 7 Tage für arXiv und BibTeX (stabile Daten), 24 h für Suche/Metadaten und DBLP. Überschreiben Sie den Speicherort mit RESEARCH_MCP_CACHE_DIR.

Konfiguration

Registrieren Sie den Server in der MCP-Konfiguration Ihres Coding-Agenten. Zum Beispiel in Opencodes opencode.json:

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

Umgebungsvariablen (alle optional)

Variable

Zweck

SEMANTIC_SCHOLAR_API_KEY

Setzen für garantierte 1 RPS und höhere Zuverlässigkeit (sonst Fallback auf OpenAlex).

RESEARCH_MCP_CACHE_DIR

Wo API-Antworten und PDFs zwischengespeichert werden. Standard: ~/.cache/research-mcp/.

Tools

search_papers

Durchsucht akademische Paper nach Stichworten mit optionalen Venue- und Jahresfiltern. Liefert strukturierte Ergebnisse mit Titel, Jahr, Venue, Autoren, DOI, Abstract, Zitationsanzahl und – falls verfügbar – einem Open-Access-PDF-Link.

Argument

Typ

Beschreibung

query

string (erf.)

Suchbegriffe

venue

string (opt.)

Nach Venue filtern, z. B. e-Energy, VLDB

year_start

int (opt.)

Frühestes Veröffentlichungsjahr

year_end

int (opt.)

Spätestes Veröffentlichungsjahr

limit

int (opt.)

Maximale Ergebnisse (Standard 20)

source

string (opt.)

auto (Standard), semanticscholar, openalex oder arxiv

source="arxiv" durchsucht die arXiv-Preprint-API und ist die empfohlene Methode, um bestimmte aktuelle Paper mit exaktem Namen zu finden, z. B. query='ti:"carbon intensity" AND abs:forecast' (die arXiv-Feldsyntax wird unverändert durchgereicht). Alle Ergebnisse werden zwischengespeichert, sodass wiederholte Suchen sofort erfolgen.

venue_proceedings

Übersicht über die Proceedings eines Venues (was dort tatsächlich veröffentlicht wird). Verwenden Sie dies, um zu prüfen, ob eine Paper-Idee zu einer Konferenz wie ACM e-Energy passt.

Argument

Typ

Beschreibung

venue

string (erf.)

Venue-Name (z. B. e-Energy) oder ein DBLP-Stream-Schlüssel (z. B. conf/eenergy)

year

int (opt.)

Nur Paper aus einem Jahr (z. B. 2024)

query

string (opt.)

Themenfilter; Paper werden nach Titel-Stichwort-Überlappung sortiert

limit

int (opt.)

Maximale Ergebnisse (Standard 20)

Das vollständige Venue-Korpus wird von DBLP abgerufen (paginiert über sein 100-Treffer-Limit hinaus), clientseitig sortiert und als Ganzes zwischengespeichert – erneute Übersichten sind sofort verfügbar.

{"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

Vollständige Metadaten für ein Paper. Akzeptiert eine DOI (z. B. 10.1109/tpwrs.2018.2823641), eine arXiv-ID (z. B. 2408.03506, arXiv:2408.03506 oder eine arxiv.org/abs/...-URL) oder eine OpenAlex-ID.

Argument

Typ

Beschreibung

doi_or_id

string (erf.)

DOI, arXiv-ID oder OpenAlex-ID

Liefert Titel, Autoren, Venue, Jahr, Abstract, TLDR, Zitationsanzahl, DOI und Open-Access-PDF:

get_citation_graph

Verfolgt die Zitationen eines Papers vorwärts oder rückwärts für die Schneeball-Suche.

Argument

Typ

Beschreibung

paper_id

string (erf.)

DOI, OpenAlex-ID (W...) oder Semantic-Scholar-Paper-ID

direction

string (opt.)

citing (Standard, Paper, die dieses zitieren) oder referenced (seine Bibliographie)

limit

int (opt.)

Maximale Ergebnisse (Standard 20)

get_bibtex

Erzeugt einen BibTeX-Eintrag für eine DOI. Verwendet die native Transformation von Crossref; fällt auf lokale Erzeugung aus OpenAlex-Metadaten zurück (behandelt arXiv-DOIs, die Crossref nicht kennt).

Argument

Typ

Beschreibung

doi

string (erf.)

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

Lädt ein Open-Access-PDF herunter und extrahiert dessen Text mit PyMuPDF. Übergeben Sie eine DOI, eine arXiv-ID (z. B. 2408.03506) oder eine direkte PDF-URL. PDFs werden lokal zwischengespeichert (~/.cache/research-mcp/pdf/).

Argument

Typ

Beschreibung

doi_or_pdf_url

string (erf.)

DOI, arXiv-ID oder https://...-PDF-URL

max_chars

int (opt.)

Zurückgegebenen Text kürzen (Standard 50000)

cache

bool (opt.)

PDF lokal zwischenspeichern (Standard true)

Liefert den extrahierten Text, die Seitenanzahl, die Quell-URL und den Cache-Pfad. Wenn keine Open-Access-Kopie gefunden wird, erhält der Agent eine klare Meldung, die ihn auffordert, nach einer OA-Kopie zu suchen oder direkt eine PDF-URL zu übergeben.

Dateistruktur

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

Kein API-Schlüssel erforderlich. Führen Sie uv sync && uv run research-mcp aus, um den Server über stdio zu starten.

-
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