Skip to main content
Glama
academic-mcp

academic-mcp

by dopawei

academic-mcp

Unified academic search MCP server for open literature, CNKI, and Web of Science.

The project combines three workflows:

  • Open literature search through deepxiv-sdk for arXiv, bioRxiv, medRxiv, PMC, and paper reading.

  • Browser-backed CNKI search, detail lookup, and download with persistent Playwright login state.

  • Browser-backed Web of Science advanced search, detail lookup, and export with persistent institutional authentication.

It also adds a local paper library, cross-source deduplication, search cache, named collections, and export to BibTeX, RIS, CSV, JSONL, JSON, or Markdown.

Why MCP First

MCP is the best first interface for this project because CNKI and Web of Science need user authentication, browser sessions, and occasional manual verification. MCP lets an AI assistant call the tools, ask the user to log in only when needed, and reuse the saved browser profile.

The reusable logic is kept outside the MCP tool functions in modules such as schema.py, deepxiv.py, library.py, and unified.py. That keeps the path open for a future Python SDK or web app without rewriting the search and collection logic.

Related MCP server: Scholar MCP

Install

cd C:\Users\WeiZh\academic-mcp
uv sync --extra dev
uv run playwright install chromium

If you already use a separate scientific Conda environment, make sure the environment that runs academic-mcp can import deepxiv_sdk.

Run

uv run academic-mcp

For visible browser login:

$env:ACADEMIC_HEADLESS = "false"
uv run academic-mcp

The browser profile and downloads are stored under:

%USERPROFILE%\.academic-mcp\

Main Tools

search_literature is the unified entry point.

Fast open search:

{
  "query": "structural health monitoring transformer",
  "sources": "open",
  "limit": 10,
  "save_as": "shm-transformer"
}

Full search after CNKI/WoS login:

{
  "query": "structural health monitoring transformer",
  "sources": "all",
  "limit": 20,
  "mode": "balanced",
  "save_as": "shm-transformer-all"
}

Web of Science advanced query:

{
  "query": "structural health monitoring transformer",
  "sources": "wos",
  "wos_query": "TS=(structural health monitoring AND transformer) AND PY=(2020-2026)",
  "limit": 20
}

Collection tools:

  • list_paper_collections

  • get_paper_collection

  • export_paper_collection

  • save_papers_to_collection

DeepXiv tools:

  • search_deepxiv

  • get_deepxiv_paper

  • get_deepxiv_pmc

  • check_deepxiv_status

Existing authenticated tools are still available:

  • CNKI: search_cnki, get_paper_detail, download_paper, login_cnki, check_cnki_status

  • WoS: search_wos, get_wos_detail, export_wos, login_wos, check_wos_status, debug_wos

Source Strategy

For convenience, start with sources="open" because it is fast and does not require browser authentication.

For accuracy, use sources="all" after login. The unified search deduplicates by DOI, arXiv ID, and normalized title. It ranks results with a balanced score that considers source rank, citation count, source authority, and recency.

Suggested workflow:

  1. Use search_literature(..., sources="open") for discovery.

  2. Run login_wos and login_cnki once when authenticated sources are needed.

  3. Use search_literature(..., sources="all", save_as="...").

  4. Export the collection with export_paper_collection.

Local Data

The local SQLite library is stored at:

%USERPROFILE%\.academic-mcp\library.sqlite3

Exports are written to:

%USERPROFILE%\.academic-mcp\exports\

Override paths with:

$env:ACADEMIC_LIBRARY_DB = "D:\papers\academic.sqlite3"
$env:ACADEMIC_EXPORT_DIR = "D:\papers\exports"

Tests

uv run pytest

Available Tools

21 tools
check_academic_sourcesB

Check open-source availability and optionally CNKI/WoS browser auth status.

Inputs: check_authenticated. Returns: result

check_cnki_statusA

检查知网连接状态和登录状态。

Returns: 当前连接状态、登录状态、IP 认证信息

Inputs: no named parameters. Returns: result

check_deepxiv_statusA

Check whether deepxiv-sdk is importable and whether a token is configured.

Inputs: no named parameters. Returns: result

check_wos_statusA

检查 Web of Science 连接和认证状态。

Returns: 连接状态、代理认证状态

Inputs: no named parameters. Returns: result

debug_wosA

调试工具:截图并分析 WoS 页面的 DOM 结构。 用于诊断选择器失效等问题。

Args: target: 要调试的页面 (advanced_search / home / current_url)

Returns: 页面截图路径 + DOM 结构摘要(表单元素、按钮等)

Inputs: target. Returns: result

download_paperA

下载知网论文 PDF/CAJ。需要已登录(机构 IP 认证或账号登录)。

Args: url: 论文详情页 URL save_dir: 保存目录,默认 ~/.academic-mcp/downloads/

Returns: 下载结果(文件路径或错误信息)

Inputs: url (required), save_dir. Returns: result

export_paper_collectionC

Export a collection as bibtex, ris, csv, jsonl, json, or md.

Inputs: name (required), format. Returns: result

export_wosA

导出当前 WoS 搜索结果的引文数据。需要先运行 search_wos。

Args: format: 导出格式 (bibtex/ris/csv/excel/plaintext) count: 导出记录数 (1-1000,默认50)

Returns: 下载结果(文件路径或错误信息)

Inputs: format, count. Returns: result

get_deepxiv_paperA

Read an arXiv paper via DeepXiv: brief, metadata, preview, raw, or json.

Inputs: arxiv_id (required), view. Returns: result

get_deepxiv_pmcB

Read PMC metadata or full structured content via DeepXiv.

Inputs: pmc_id (required), full. Returns: result

get_paper_collectionB

Return one local paper collection with normalized records.

Inputs: name (required). Returns: result

get_paper_detailA

获取知网论文的详细信息。

Args: url: 论文详情页 URL(来自 search_cnki 的结果)

Returns: JSON 格式的论文详细信息(标题/作者/摘要/关键词/DOI 等)

Inputs: url (required). Returns: result

get_wos_detailA

获取 Web of Science 论文的完整记录。

Args: url: WoS 论文详情页 URL(来自 search_wos 的结果)

Returns: JSON 格式的论文完整记录(标题/作者/摘要/关键词/DOI/被引/基金等)

Inputs: url (required). Returns: result

list_paper_collectionsB

List local paper collections.

Inputs: no named parameters. Returns: result

login_cnkiA

打开知网登录页面进行手动登录。 首次使用时调用一次,之后登录态会自动持久化。 会打开一个可见的浏览器窗口。

Returns: 登录状态信息

Inputs: no named parameters. Returns: result

login_wosA

打开浏览器通过大学代理登录 Web of Science。 首次使用时调用一次,之后登录态会自动持久化。 会打开一个可见的浏览器窗口。

Returns: 登录状态信息

Inputs: no named parameters. Returns: result

save_papers_to_collectionA

Save normalized papers JSON into a named local collection.

Inputs: name (required), papers_json (required), description. Returns: result

search_cnkiA

搜索中国知网 (CNKI) 学术论文。

Args: keyword: 搜索关键词 search_type: 搜索类型 (主题/篇名/关键词/作者/单位/DOI/摘要/全文) page_count: 搜索页数 (1-5,每页约20条) sort_by: 排序方式 (相关度/被引/下载/发表时间)

Returns: JSON 格式的搜索结果列表

Inputs: keyword (required), search_type, page_count, sort_by. Returns: result

search_deepxivC

Search open literature through DeepXiv and return normalized JSON.

Inputs: query (required), sources, limit, offset, +7 more. Returns: result

search_literatureB

Search literature across open DeepXiv sources and optional CNKI/WoS.

Inputs: query (required), sources, limit, mode, +15 more. Returns: result

search_wosA

在 Web of Science 中进行高级检索。

使用 WoS 字段标签语法,例如: TS=(machine learning AND finance) AU=(Zhang Wei) AND PY=(2020-2025) TI=(neural network) AND SO=(Nature)

常用字段标签: TS=主题, TI=标题, AU=作者, SO=期刊, DO=DOI, PY=年份, AB=摘要, AK=作者关键词, OG=机构, FU=基金

Args: query: WoS 高级检索查询语句 sort_by: 排序 (relevance/date_newest/date_oldest/cited/usage) page_count: 页数 (1-5,每页约10-50条)

Returns: JSON 格式的搜索结果列表

Inputs: query (required), sort_by, page_count. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 21 tools

    Disambiguation4/5

    Most tools have clearly distinct purposes. The main overlap is between search_literature and individual source searches (search_cnki, search_wos, search_deepxiv), but search_literature is described as a unified search across sources, reducing ambiguity. All other tools target specific resources or operations.

    Naming Consistency4/5

    Tool names follow a consistent verb_noun pattern (check_, login_, search_, get_, export_, etc.) with snake_case. Minor inconsistency: check_academic_sources differs from the check_*_status pattern, but overall naming is predictable and clear.

    Tool Count5/5

    21 tools is appropriate for a multi-source academic literature server. Each tool serves a distinct function, covering search, retrieval, status checks, login, export, and local collection management without being excessive.

    Completeness4/5

    The tool set covers the main workflows for CNKI, WoS, and DeepXiv: search, detail retrieval, status, login, and export. Local collection management is present (save, list, get) but lacks explicit update/delete tools. Download is limited to CNKI. Minor gaps exist but do not severely hinder agent operation.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      A
      quality
      C
      maintenance
      Comprehensive MCP server for academic research workflows, enabling paper searching across multiple sources, manuscript processing with citation placeholders, search caching, and citation export.
      11
      MIT
    • F
      license
      A
      quality
      B
      maintenance
      Scholar MCP connects your agent to academic search, citations, primary text and figures, and an optional local research library. Source keys are optional.
      6
      667 PyPI
      8
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      A MCP server for academic literature retrieval, aggregating multiple data sources like arXiv, Crossref, OpenAlex, PubMed, and Semantic Scholar to provide search, details, citations, trends, and recommendations.
      4
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Academic paper search and retrieval MCP server integrating multiple scholarly platforms into a unified interface. Supports search, fetch, trend analysis, and literature review workflows.
      8
      52 npm
      4
      MIT