Skip to main content
Glama
404Simon

research-mcp

by 404Simon

Research MCP

학술 연구용 읽기 전용 MCP 서버. LLM 에이전트가 논문 검색, 메타데이터 확인, 인용 그래프 추적, BibTeX 생성, 오픈 액세스 PDF 전문 읽기를 모두 FastMCP 도구를 통해 수행할 수 있게 해줍니다.

요구 사항

  • Python 3.13+

  • uv

  • 공개 API에 대한 인터넷 접근(API 키 불필요)

작동 방식

API

역할

Semantic Scholar

기본 검색, 메타데이터, TLDR, 인용 그래프. 먼저 시도됨.

OpenAlex

Semantic Scholar가 속도 제한에 걸렸을 때 자동 대체, 오픈 액세스 PDF 확인.

arXiv

전용 프리프린트 검색(source="arxiv"), arXiv ID 조회, 직접 PDF 다운로드. 정확한 이름으로 특정 최신 논문을 찾는 데 최적.

DBLP

학술대회 프로시딩 조사(venue_proceedings) 및 학술대회 범위 검색. "이 학회가 무엇을 채택하는지"에 대한 표준 출처.

Crossref

BibTeX 생성(transform/application/x-bibtex).

PyMuPDF

PDF 텍스트 추출.

Semantic Scholar는 키 없이 사용하면 속도 제한이 걸리므로 모든 요청은 OpenAlex로 대체되기 전에 지수 백오프로 재시도됩니다(Retry-After 존중). 결과는 항상 에이전트에게 어떤 소스가 사용되었는지 알려줍니다. arXiv API는 ~3 s 간격 규칙을 적용하며 서버는 이를 준수합니다. DBLP는 빠른 연속 요청 시 연결을 재설정하므로 학술대회 스트림 페이지도 3초 대기 시간을 두고 가져옵니다.

캐싱

모든 취약한 API 응답, 검색 결과, 학술대회 프로시딩 코퍼스, PDF는 ~/.cache/research-mcp/ 아래 디스크에 캐시됩니다(api/는 JSON 응답, pdf/는 다운로드된 PDF):

  • 신선한 캐시 적중은 즉시 제공됩니다 — 반복 쿼리는 네트워크에 접촉하지 않습니다.

  • 학술대회 코퍼스(DBLP 페이지에서 조합)는 전체가 캐시되므로 DBLP가 페이지를 놓쳐도 학술대회 프로그램 재조사는 즉시 이루어집니다.

  • 오래된 대체: API가 다운되거나 속도 제한 중이면 마지막 캐시 응답이 제공되므로 에이전트는 여전히 답을 얻습니다.

  • 캐시 TTL: arXiv 및 BibTeX는 7일(안정적인 데이터), 검색/메타데이터 및 DBLP는 24시간. 위치는 RESEARCH_MCP_CACHE_DIR로 재정의할 수 있습니다.

구성

코딩 에이전트의 MCP 구성에 서버를 등록하세요. 예를 들어 Opencode의 opencode.json에서:

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

환경 변수(모두 선택 사항)

Variable

Purpose

SEMANTIC_SCHOLAR_API_KEY

보장된 1 RPS와 더 높은 안정성을 위해 설정(그렇지 않으면 OpenAlex로 대체).

RESEARCH_MCP_CACHE_DIR

API 응답과 PDF가 캐시되는 위치. 기본값: ~/.cache/research-mcp/.

도구

search_papers

선택적 학술대회 및 연도 필터로 키워드를 사용해 학술 논문을 검색합니다. 제목, 연도, 학술대회, 저자, DOI, 초록, 인용 횟수, 가능한 경우 오픈 액세스 PDF 링크가 포함된 구조화된 결과를 반환합니다.

Argument

Type

Description

query

string (필수)

검색어

venue

string (선택)

학술대회로 필터링, 예: e-Energy, VLDB

year_start

int (선택)

가장 이른 출판 연도

year_end

int (선택)

가장 최근 출판 연도

limit

int (선택)

최대 결과 수(기본 20)

source

string (선택)

auto(기본값), semanticscholar, openalex 또는 arxiv

source="arxiv"는 arXiv 프리프린트 API를 검색하며 정확한 이름으로 특정 최신 논문을 찾는 권장 방법입니다(예: query='ti:"carbon intensity" AND abs:forecast' — arXiv 필드 구문은 그대로 전달됨). 모든 결과가 캐시되므로 반복 검색은 즉시 이루어집니다.

venue_proceedings

학술대회의 프로시딩(실제로 게시되는 내용)을 조사합니다. 논문 아이디어가 ACM e-Energy 같은 학회에 맞는지 확인하는 데 사용하세요.

Argument

Type

Description

venue

string (필수)

학술대회 이름(예: e-Energy) 또는 DBLP 스트림 키(예: conf/eenergy)

year

int (선택)

특정 연도의 논문만(예: 2024)

query

string (선택)

주제 필터; 논문은 제목-키워드 중복도로 순위가 매겨짐

limit

int (선택)

최대 결과 수(기본 20)

전체 학술대회 코퍼스는 DBLP에서 가져오고(100건 제한을 넘어 페이지네이션), 클라이언트 측에서 순위가 매겨지며, 전체가 캐시됩니다 — 재조사는 즉시 이루어집니다.

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

논문의 전체 메타데이터. DOI(예: 10.1109/tpwrs.2018.2823641), arXiv ID(예: 2408.03506, arXiv:2408.03506 또는 arxiv.org/abs/... URL) 또는 OpenAlex ID를 허용합니다.

Argument

Type

Description

doi_or_id

string (필수)

DOI, arXiv ID 또는 OpenAlex ID

제목, 저자, 학술대회, 연도, 초록, TLDR, 인용 횟수, DOI 및 오픈 액세스 PDF를 반환합니다:

get_citation_graph

스노우볼 검색을 위해 논문의 인용을 앞뒤로 추적합니다.

Argument

Type

Description

paper_id

string (필수)

DOI, OpenAlex ID(W...) 또는 Semantic Scholar 논문 ID

direction

string (선택)

citing(기본값, 이 논문을 인용한 논문) 또는 referenced(참고문헌)

limit

int (선택)

최대 결과 수(기본 20)

get_bibtex

DOI에 대한 BibTeX 항목을 생성합니다. Crossref의 네이티브 변환을 사용하며 OpenAlex 메타데이터에서의 로컬 생성으로 대체합니다(Crossref가 모르는 arXiv DOI 처리).

Argument

Type

Description

doi

string (필수)

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

오픈 액세스 PDF를 다운로드하고 PyMuPDF로 텍스트를 추출합니다. DOI, arXiv ID(예: 2408.03506) 또는 직접 PDF URL을 전달하세요. PDF는 로컬에 캐시됩니다(~/.cache/research-mcp/pdf/).

Argument

Type

Description

doi_or_pdf_url

string (필수)

DOI, arXiv ID 또는 https://... PDF URL

max_chars

int (선택)

반환 텍스트 잘라내기(기본 50000)

cache

bool (선택)

PDF를 로컬에 캐시할지 여부(기본 true)

추출된 텍스트, 페이지 수, 소스 URL 및 캐시 경로를 반환합니다. 오픈 액세스 사본을 찾을 수 없으면 에이전트는 OA 사본을 검색하거나 PDF URL을 직접 전달하라는 명확한 메시지를 받습니다.

파일 구조

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

API 키가 필요 없습니다. uv sync && uv run research-mcp를 실행하여 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