学术论文检索下载工具

一个基于Python的MCP服务器,支持从多个学术平台搜索、下载和阅读学术论文,提供统一接口和标准化输出。

  • by LinXueyuanStdio
  • Python
  • 本地部署
  • 47 星标
  • 更新于
在 GitHub 查看 LinXueyuanStdio/academic-mcp

使用说明

📚 学术MCP

英语 | 中文

🔬 academic-mcp 是一个基于Python的MCP服务器,使用户能够搜索、下载和阅读来自各种平台的学术论文。它提供了三个主要工具:

  • 🔎 paper_search:在多个学术数据库中搜索论文
  • 📥 paper_download:下载纸质PDF,下载文件的返回路径
  • 📖 paper_read:从论文中提取和阅读文本内容

📑 目录


✨ 特性

  • 🌐 多源支持:从19多个学术数据库中搜索和下载论文,包括arXiv、PubMed、PubMedCentral、bioRxiv、medRxiv、Google Scholar、IACR ePrint Archive、Semantic Scholar、CrossRef、Science Direct、Springer、IEEE Xplore、Scopus、CORE等。
  • 🎯 统一接口:所有平台都可以通过一致的 paper_search, paper_download,以及 paper_read 工具。
  • 📊 标准化输出:论文将通过以下方式以一致的词典格式返回 Paper 类。
  • ⚡ 异步操作:使用以下工具高效处理并发搜索和下载 httpx 以及async/await。
  • 🔌 MCP集成:与MCP客户端兼容,用于LLM上下文增强。
  • 🧩 可扩展设计:通过扩展,轻松添加新的学术平台 sources 模块。

🎬 截图

📝 支持的学术平台

✅ 完全实施(19个来源)

免费开放获取:

  • [x] arXiv -物理、数学、计算机科学等的预打印存储库
  • [x] PubMed -生物医学文献数据库
  • [x] PubMed Central(PMC) -免费全文生物医学和生命科学文章
  • [x] 生物预印本 -生物预打印服务器
  • [x] 医学预印本 -健康科学预打印服务器
  • [x] 语义学者 -人工智能驱动的研究工具
  • [x] Crossref -DOI注册机构和元数据提供商
  • [x] 谷歌学术 -学术搜索引擎
  • [x] IACR电子打印档案 -密码学预印本
  • [x] 核心 -开放获取研究论文聚合器

需要API密钥:

  • [x] 科学指引 -爱思唯尔的全文科学数据库(需要爱思唯尔neneneba API密钥)
  • [x] 全文电子期刊 -施普林格的科学出版物(需要施普林格API密钥)
  • [x] IEEE Xplore。 -IEEE的数字图书馆(需要IEEE API密钥)
  • [x] 垃圾 -爱思唯尔的摘要和引用数据库(需要Scopus API密钥)

机构准入要求:

  • [x] 美国计算机协会数字图书馆 -ACM的计算文献(没有公开的API)
  • [x] 科学引文索引 -Clarivate的引文数据库(需要订阅)
  • [x] 文献检索系统 -学术期刊数字图书馆(无公共API)
  • [x] 研究之门 -学术社交网络(没有官方API)

退休服务:

  • [x] 微软学术 -服务于2021年12月31日退役(占位符实施)

📦 安装

academic-mcp 可以使用安装 uv 或 pip。以下是不同场景的详细安装指南。

⚡ 快速安装

安装软件包:

pip install academic-mcp

启动MCP服务器:

academic-mcp

🔧 MCP客户端配置

选择您的MCP客户端并按照配置步骤进行操作:

1️⃣ Claude Desktop

地点:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • 窗户: %APPDATA%\Claude\claude_desktop_config.json

配置:

{
  "mcpServers": {
    "academic-mcp": {
      "command": "python",
      "args": ["-m", "academic_mcp"],
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "",
        "SCIENCEDIRECT_API_KEY": "",
        "SPRINGER_API_KEY": "",
        "IEEE_API_KEY": "",
        "SCOPUS_API_KEY": "",
        "CORE_API_KEY": "",
        "WOS_API_KEY": "",
        "ACADEMIC_MCP_ENABLED_SOURCES": "arxiv,pubmed,pmc,biorxiv,medrxiv,semantic,core,crossref,google_scholar,iacr",
        "ACADEMIC_MCP_DISABLED_SOURCES": "ieee,scopus,springer,sciencedirect,wos,acm,jstor",
        "ACADEMIC_MCP_DOWNLOAD_PATH": "./downloads"
      }
    }
  }
}
2️⃣ Claude Code (CLI)

地点:

  • 用户级别: ~/.claude/settings.json
  • 项目级别: .mcp.json

配置:

{
  "mcpServers": {
    "academic-mcp": {
      "command": "academic-mcp",
      "args": [],
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "",
        "SCIENCEDIRECT_API_KEY": "",
        "SPRINGER_API_KEY": "",
        "IEEE_API_KEY": "",
        "SCOPUS_API_KEY": "",
        "CORE_API_KEY": "",
        "WOS_API_KEY": "",
        "ACADEMIC_MCP_ENABLED_SOURCES": "arxiv,pubmed,pmc,biorxiv,medrxiv,semantic,core,crossref,google_scholar,iacr",
        "ACADEMIC_MCP_DISABLED_SOURCES": "ieee,scopus,springer,sciencedirect,wos,acm,jstor",
        "ACADEMIC_MCP_DOWNLOAD_PATH": "./downloads"
      }
    }
  }
}

注: 您还可以使用 "command": "python" 随着 "args": ["-m", "academic_mcp"] 如果你更喜欢通过Python模块运行。

验证安装:

# Check if academic-mcp is loaded
claude mcp list

# Test the server
claude mcp test academic-mcp
3️⃣ Cline (VS Code Extension)

地点: VS代码设置→ 扩展→ 克莱恩→ MCP设置

方法一:通过VS代码设置界面

  1. 打开VS代码设置(Cmd/Ctrl+,)
  2. 搜索“临床MCP”
  3. 点击“在settings.json中编辑”
  4. 添加配置:
{
  "cline.mcpServers": {
    "academic-mcp": {
      "command": "academic-mcp",
      "args": [],
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "",
        "SCIENCEDIRECT_API_KEY": "",
        "SPRINGER_API_KEY": "",
        "IEEE_API_KEY": "",
        "SCOPUS_API_KEY": "",
        "CORE_API_KEY": "",
        "WOS_API_KEY": "",
        "ACADEMIC_MCP_ENABLED_SOURCES": "arxiv,pubmed,pmc,biorxiv,medrxiv,semantic,core,crossref,google_scholar,iacr",
        "ACADEMIC_MCP_DISABLED_SOURCES": "ieee,scopus,springer,sciencedirect,wos,acm,jstor",
        "ACADEMIC_MCP_DOWNLOAD_PATH": "./downloads"
      }
    }
  }
}

方法2:直接设置.json编辑

编辑 ~/.config/Code/User/settings.json (Linux/macOS)或 %APPDATA%\Code\User\settings.json (Windows):

{
  "cline.mcpServers": {
    "academic-mcp": {
      "command": "academic-mcp",
      "args": [],
      "env": {
        "SEMANTIC_SCHOLAR_API_KEY": "",
        "SCIENCEDIRECT_API_KEY": "",
        "SPRINGER_API_KEY": "",
        "IEEE_API_KEY": "",
        "SCOPUS_API_KEY": "",
        "CORE_API_KEY": "",
        "WOS_API_KEY": "",
        "ACADEMIC_MCP_ENABLED_SOURCES": "arxiv,pubmed,pmc,biorxiv,medrxiv,semantic,core,crossref,google_scholar,iacr",
        "ACADEMIC_MCP_DISABLED_SOURCES": "ieee,scopus,springer,sciencedirect,wos,acm,jstor",
        "ACADEMIC_MCP_DOWNLOAD_PATH": "./downloads"
      }
    }
  }
}
4️⃣ Zed Editor

地点: ~/.config/zed/settings.json

配置:

{
  "context_servers": {
    "academic-mcp": {
      "command": {
        "path": "academic-mcp",
        "args": []
      },
      "settings": {
        "env": {
          "SEMANTIC_SCHOLAR_API_KEY": "",
          "SCIENCEDIRECT_API_KEY": "",
          "SPRINGER_API_KEY": "",
          "IEEE_API_KEY": "",
          "SCOPUS_API_KEY": "",
          "CORE_API_KEY": "",
          "WOS_API_KEY": "",
          "ACADEMIC_MCP_ENABLED_SOURCES": "arxiv,pubmed,pmc,biorxiv,medrxiv,semantic,core,crossref,google_scholar,iacr",
          "ACADEMIC_MCP_DISABLED_SOURCES": "ieee,scopus,springer,sciencedirect,wos,acm,jstor",
          "ACADEMIC_MCP_DOWNLOAD_PATH": "./downloads"
        }
      }
    }
  }
}
5️⃣ Custom MCP Client

对于其他MCP客户端,请使用标准MCP服务器配置:

服务器命令:

academic-mcp
# or
python -m academic_mcp

环境变量:

  • SEMANTIC_SCHOLAR_API_KEY:语义学者的可选API密钥
  • SCIENCEDIRECT_API_KEY:Science Direct的可选API密钥
  • SPRINGER_API_KEY:Springer Link的可选API密钥
  • IEEE_API_KEY:用于IEEE Xplore的可选API密钥
  • SCOPUS_API_KEY:Scopus的可选API密钥
  • CORE_API_KEY:CORE的可选API密钥
  • WOS_API_KEY:Web of Science的可选API密钥
  • ACADEMIC_MCP_DOWNLOAD_PATH:下载目录(默认: ./downloads)
  • ACADEMIC_MCP_ENABLED_SOURCES:已启用源的逗号分隔列表
  • ACADEMIC_MCP_DISABLED_SOURCES:禁用源的逗号分隔列表

服务器功能:

  • 工具: paper_search, paper_download, paper_read
  • 运输:stdio
  • 协议:MCP 1.0

⚙️ 环境变量

API密钥 (可选-仅适用于高级服务):

常规设置:

  • ACADEMIC_MCP_DOWNLOAD_PATH:下载PDF的目录(默认: ./downloads)

源代码管理:

  • ACADEMIC_MCP_ENABLED_SOURCES:逗号分隔的列表,用于启用特定源(白名单)
  • ACADEMIC_MCP_DISABLED_SOURCES:逗号分隔的列表可禁用特定源(黑名单)
  • 如果两者都被设置, ACADEMIC_MCP_ENABLED_SOURCES 优先
  • 如果两者都没有设置,则默认情况下启用所有18个源

可用源名称(共18个):

源名称 类型 需要API密钥 说明
arxiv 免费 - 物理、数学、计算机科学预印本库
pubmed 免费 - MEDLINE生物医学文献
pmc 免费 - PubMed Central全文存档
biorxiv 免费 - 生物预印本服务器
medrxiv 免费 - 健康科学预印本服务器
google_scholar 免费 - 谷歌学者搜索
iacr 免费 - 国际密码学研究协会
semantic 免费 SEMANTIC_SCHOLAR_API_KEY (可选)
获取API密钥
语义学者AI搜索(API密钥的更高费率限制)
crossref 免费 - 交叉引用DOI元数据
core 免费 CORE_API_KEY
获取API密钥
CORE开放获取论文聚合器
ieee 保费 IEEE_API_KEY
获取API密钥
IEEE Xplore数字图书馆
scopus 保费 SCOPUS_API_KEY
获取API密钥
爱思唯尔Scopus数据库
springer 保费 SPRINGER_API_KEY
获取API密钥
施普林格出版物
sciencedirect 保费 SCIENCEDIRECT_API_KEY
获取API密钥
爱思唯尔科学直接
wos 保费 WOS_API_KEY
机构准入
Web of Science(需要机构订阅)
acm 高级 - ACM数字图书馆
jstor 高级 - JSTOR存档
researchgate 免费 - ResearchGate社交网络

🚀 用法

一旦配置, academic-mcp 提供了三个主要工具,可通过Claude Desktop或任何兼容MCP的客户端访问。

1.搜索论文(paper_search)

跨多个来源搜索学术论文:

基本搜索示例:

# Search arXiv for machine learning papers
paper_search([
    {"searcher": "arxiv", "query": "machine learning", "max_results": 5}
])

# Search PubMed Central for biomedical papers
paper_search([
    {"searcher": "pmc", "query": "cancer treatment", "max_results": 5}
])

# Search CORE for open access papers
paper_search([
    {"searcher": "core", "query": "climate change", "max_results": 5}
])

多平台搜索:

# Search multiple platforms simultaneously
paper_search([
    {"searcher": "arxiv", "query": "deep learning", "max_results": 5},
    {"searcher": "pubmed", "query": "cancer immunotherapy", "max_results": 3},
    {"searcher": "pmc", "query": "diabetes treatment", "max_results": 3},
    {"searcher": "semantic", "query": "climate change", "max_results": 4, "year": "2020-2023"}
])

高级资源(需要API密钥):

# Search IEEE Xplore (requires IEEE_API_KEY)
paper_search([
    {"searcher": "ieee", "query": "neural networks", "max_results": 5}
])

# Search Springer Link (requires SPRINGER_API_KEY)
paper_search([
    {"searcher": "springer", "query": "quantum computing", "max_results": 5}
])

# Search Scopus (requires SCOPUS_API_KEY)
paper_search([
    {"searcher": "scopus", "query": "artificial intelligence", "max_results": 5}
])

搜索所有平台:

# Search all platforms (omit "searcher" parameter)
paper_search([
    {"query": "quantum computing", "max_results": 10}
])

2.下载论文(paper_download)

使用标识符下载纸质PDF:

# Download from free sources
paper_download([
    {"searcher": "arxiv", "paper_id": "2106.12345"},
    {"searcher": "pubmed", "paper_id": "32790614"},
    {"searcher": "pmc", "paper_id": "PMC7419405"},
    {"searcher": "biorxiv", "paper_id": "10.1101/2020.01.01.123456"},
    {"searcher": "semantic", "paper_id": "DOI:10.18653/v1/N18-3011"}
])

# Download from CORE (open access)
paper_download([
    {"searcher": "core", "paper_id": "123456789"}
])

注: 高级来源(IEEE、Springer、Science Direct、Scopus)需要机构访问或订阅PDF下载。

3.阅读论文(paper_read)

从论文中提取并阅读文本内容:

# Read papers from free sources
paper_read(searcher="arxiv", paper_id="2106.12345")
paper_read(searcher="pubmed", paper_id="32790614")
paper_read(searcher="pmc", paper_id="PMC7419405")
paper_read(searcher="biorxiv", paper_id="10.1101/2020.01.01.123456")
paper_read(searcher="semantic", paper_id="DOI:10.18653/v1/N18-3011")
paper_read(searcher="core", paper_id="123456789")

🛠️ 为了发展

对于想要修改代码或做出贡献的开发人员:

  1. 设置环境:

    # Install uv if not installed
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    # Clone repository
    git clone https://github.com/LinXueyuanStdio/academic-mcp.git
    cd academic-mcp
    
    # Create and activate virtual environment
    uv venv
    source .venv/bin/activate  # On Windows: .venv\Scripts\activate
    
  2. 再进行:

    # Install dependencies (recommended)
    uv pip install -e .
    
    # Add development dependencies (optional)
    uv pip install pytest flake8
    

🤝 贡献

我们欢迎捐款!以下是如何开始:

  1. 分叉存储库: 在GitHub上点击“分叉”。

  2. 克隆和设置:

    git clone https://github.com/yourusername/academic-mcp.git
    cd academic-mcp
    uv pip install -e .  # Install in development mode
    
  3. 进行更改:

    • 在中添加新平台 academic_mcp/sources/.
    • 更新测试 tests/.
  4. 提交拉取请求: 在GitHub上推送更改并创建PR。

📄 许可证

该项目根据MIT许可证获得许可。有关详细信息,请参阅LICENSE文件。


快乐的研究 academic-mcp!如果您遇到问题,请打开GitHub问题。