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

会議 proceedings 調査(venue_proceedings)と会場スコープの検索。「このカンファレンスが何を採択するか」の正規ソース。

Crossref

BibTeX 生成(transform/application/x-bibtex)。

PyMuPDF

PDF テキスト抽出。

Semantic Scholar はキーなしで使用するとレート制限されるため、すべてのリクエストは指数バックオフ(Retry-After を尊重)で再試行し、その後 OpenAlex にフォールバックします。結果は常にエージェントにどのソースが使用されたかを伝えます。arXiv API は約 3 秒の間隔ルールを強制しており、サーバーはこれを尊重します。DBLP は高速な連続リクエストで接続をリセットするため、venue ストリームページも 3 秒のポライトネス遅延で取得されます。

キャッシュ

壊れやすい API レスポンス、検索結果、venue proceedings コーパス、PDF はすべて ~/.cache/research-mcp/ のディスクにキャッシュされます(api/ は JSON レスポンス、pdf/ はダウンロードした PDF)。

  • 新鮮なキャッシュヒット は即座に提供されます。繰り返しのクエリはネットワークに触れません。

  • Venue コーパス(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"
    }
  }
}

環境変数(すべてオプション)

変数

目的

SEMANTIC_SCHOLAR_API_KEY

保証された 1 RPS と高い信頼性のために設定します(それ以外は OpenAlex にフォールバック)。

RESEARCH_MCP_CACHE_DIR

API レスポンスと PDF がキャッシュされる場所。デフォルト: ~/.cache/research-mcp/

ツール

search_papers

キーワードで学術論文を検索し、オプションで venue と年でフィルタリングします。タイトル、年、venue、著者、DOI、要約、引用数、利用可能な場合はオープンアクセス PDF リンクを含む構造化結果を返します。

引数

説明

query

string (必須)

検索語

venue

string (任意)

venue でフィルタリング、例: e-Energy, VLDB

year_start

int (任意)

最も早い出版年

year_end

int (任意)

最も遅い出版年

limit

int (任意)

最大結果数(デフォルト 20)

source

string (任意)

auto(デフォルト)、semanticscholaropenalex、または arxiv

source="arxiv" は arXiv プレプリント API を検索し、正確な名前で特定の最近の論文を見つける推奨方法です。例: query='ti:"carbon intensity" AND abs:forecast'(arXiv フィールド構文はそのまま渡されます)。すべての結果はキャッシュされるため、繰り返しの検索は即座に行えます。

venue_proceedings

venue の proceedings(実際にそこで出版されるもの)を調査します。論文のアイデアが ACM e-Energy のようなカンファレンスに合うかどうかを確認するために使用します。

引数

説明

venue

string (必須)

venue 名(例: e-Energy)または DBLP ストリームキー(例: conf/eenergy

year

int (任意)

1 年分の論文のみ(例: 2024

query

string (任意)

トピックフィルター。論文はタイトルとキーワードの重複でランク付けされます

limit

int (任意)

最大結果数(デフォルト 20)

完全な venue コーパスは 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.03506arXiv:2408.03506、または arxiv.org/abs/... URL)、または OpenAlex ID を受け付けます。

引数

説明

doi_or_id

string (必須)

DOI、arXiv ID、または OpenAlex ID

タイトル、著者、venue、年、要約、TLDR、引用数、DOI、オープンアクセス PDF を返します:

get_citation_graph

論文の引用を前方または後方にたどってスノーボール検索を行います。

引数

説明

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 を処理します)。

引数

説明

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/)。

引数

説明

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