📚 学术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\] bioRxiv -生物预打印服务器
- \[x\] medRxiv -健康科学预打印服务器
- \[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或使用紫外线(建议更快安装):
uv pip install 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": "",
"ACADEMIC_MCP_DOWNLOAD_PATH": "./downloads"
}
}
}
}与uvx一起使用(替代):
{
"mcpServers": {
"academic-mcp": {
"command": "uvx",
"args": ["academic-mcp"],
"env": {
"SEMANTIC_SCHOLAR_API_KEY": "",
"SCIENCEDIRECT_API_KEY": "",
"SPRINGER_API_KEY": "",
"IEEE_API_KEY": "",
"SCOPUS_API_KEY": "",
"CORE_API_KEY": "",
"ACADEMIC_MCP_DOWNLOAD_PATH": "./downloads"
}
}
}
}2️⃣ Claude Code (CLI)
地点: ~/.config/claude/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": "",
"ACADEMIC_MCP_DOWNLOAD_PATH": "./downloads"
}
}
}
}验证安装:
# Check if academic-mcp is loaded
claude mcp list
# Test the server
claude mcp test academic-mcp3️⃣ Cline (VS Code Extension)
地点: VS代码设置→ 扩展→ 克莱恩→ MCP设置
方法一:通过VS代码设置界面
- 打开VS代码设置(Cmd/Ctrl+,)
- 搜索“临床MCP”
- 点击“在settings.json中编辑”
- 添加配置:
{
"cline.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": "",
"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": "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": "",
"ACADEMIC_MCP_DOWNLOAD_PATH": "./downloads"
}
}
}
}4️⃣ Zed Editor
地点: ~/.config/zed/settings.json
配置:
{
"context_servers": {
"academic-mcp": {
"command": {
"path": "python",
"args": ["-m", "academic_mcp"]
},
"settings": {
"env": {
"SEMANTIC_SCHOLAR_API_KEY": "",
"SCIENCEDIRECT_API_KEY": "",
"SPRINGER_API_KEY": "",
"IEEE_API_KEY": "",
"SCOPUS_API_KEY": "",
"CORE_API_KEY": "",
"ACADEMIC_MCP_DOWNLOAD_PATH": "./downloads"
}
}
}
}
}5️⃣ Custom MCP Client
对于其他MCP客户端,请使用标准MCP服务器配置:
服务器命令:
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密钥ACADEMIC_MCP_DOWNLOAD_PATH:下载目录(默认:./downloads)
服务器功能:
- 工具:
paper_search,paper_download,paper_read - 运输:stdio
- 协议:MCP 1.0
📝 配置说明
API密钥: - 所有API密钥都是可选的-大多数源在没有它们的情况下工作 - API密钥仅用于高级服务(Science Direct、Springer、IEEE、Scopus、Web of Science) - 免费服务(arXiv、PubMed、PMC、bioRxiv等)无需任何API密钥即可立即工作 - 从各个提供商网站获取API密钥: - 语义学者:https://www.semanticscholar.org/product/api - 爱思唯尔(科学指导/Scopus):https://dev.elsevier.com/ - 施普林格·自然:https://dev.springernature.com/ - IEEE:https://developer.ieee.org/ - 核心:https://core.ac.uk/services/api 下载路径: - 使用绝对路径ACADEMIC_MCP_DOWNLOAD_PATH为了避免混淆 - 确保目录存在,否则服务器将创建它 - 例子:/Users/yourusername/Documents/papers或C:\Users\yourusername\papersPython环境: - 确保python命令指向Python 3.10+ - 对于虚拟环境,请使用完整路径:/path/to/venv/bin/python- 对于conda:/path/to/conda/envs/yourenv/bin/python
🎛️ 源代码管理示例
您可以使用环境变量控制启动时启用哪些学术资源:
示例1:仅启用免费资源
{
"mcpServers": {
"academic-mcp": {
"command": "python",
"args": ["-m", "academic_mcp"],
"env": {
"ACADEMIC_MCP_ENABLED_SOURCES": "arxiv,pubmed,pmc,biorxiv,medrxiv,semantic,core,crossref",
"ACADEMIC_MCP_DOWNLOAD_PATH": "./downloads"
}
}
}
}示例2:禁用高级/订阅服务
{
"mcpServers": {
"academic-mcp": {
"command": "python",
"args": ["-m", "academic_mcp"],
"env": {
"ACADEMIC_MCP_DISABLED_SOURCES": "ieee,scopus,springer,sciencedirect,wos,acm,jstor,researchgate",
"ACADEMIC_MCP_DOWNLOAD_PATH": "./downloads"
}
}
}
}示例3:仅启用生物学/医学来源
{
"mcpServers": {
"academic-mcp": {
"command": "python",
"args": ["-m", "academic_mcp"],
"env": {
"ACADEMIC_MCP_ENABLED_SOURCES": "pubmed,pmc,biorxiv,medrxiv",
"ACADEMIC_MCP_DOWNLOAD_PATH": "./downloads"
}
}
}
}示例4:仅启用计算机科学源
{
"mcpServers": {
"academic-mcp": {
"command": "python",
"args": ["-m", "academic_mcp"],
"env": {
"ACADEMIC_MCP_ENABLED_SOURCES": "arxiv,semantic,ieee,acm",
"IEEE_API_KEY": "your-ieee-key-here",
"ACADEMIC_MCP_DOWNLOAD_PATH": "./downloads"
}
}
}
}🛠️ 为了发展
对于想要修改代码或做出贡献的开发人员:
- 设置环境:
# 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- 安装依赖项:
# Install dependencies (recommended)
uv pip install -e .
# Add development dependencies (optional)
uv pip install pytest flake8______________________________________________________________________
🚀 用法
一旦配置, 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")⚙️ 环境变量
可选API密钥 (用于增强功能):
SEMANTIC_SCHOLAR_API_KEY:语义学者API密钥,用于更高的速率限制SCIENCEDIRECT_API_KEY:用于科学直接访问的爱思唯尔API密钥SPRINGER_API_KEY:用于访问Springer Link的Springer Nature API密钥IEEE_API_KEY:用于IEEE Xplore访问的IEEE API密钥SCOPUS_API_KEY:用于Scopus访问的Elsevier API密钥CORE_API_KEY:用于开放获取论文的CORE API密钥WOS_API_KEY:Web of Science API密钥(需要机构订阅)
常规设置:
ACADEMIC_MCP_DOWNLOAD_PATH:下载PDF的目录(默认:./downloads)
源代码管理(启用/禁用源代码):
控制哪些学术资源可供搜索和下载:
ACADEMIC_MCP_ENABLED_SOURCES:要启用的以逗号分隔的源列表
- 行为:如果设置,则仅启用指定的源(白名单模式) - 示例: "arxiv,pubmed,pmc,semantic,core" 仅启用免费资源 - 用例:仅限于您需要或可以访问的特定平台
ACADEMIC_MCP_DISABLED_SOURCES:要禁用的以逗号分隔的源列表
- 行为:如果设置,将启用除指定源之外的所有源(黑名单模式) - 示例: "ieee,scopus,springer,sciencedirect,wos,acm,jstor,researchgate" 禁用高级资源 - 用例:排除需要订阅或有费率限制的平台
优先级规则:
- 如果两个变量都被设置,
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社交网络 |
笔记:
- 免费来源 在没有任何API密钥的情况下工作
- 优质来源 可能需要机构访问权限或API密钥才能实现全部功能
- 带有的API密钥 (可选) 可以在没有钥匙的情况下工作,但速率限制较低
- 标有“-”的源不需要或支持API密钥
常见用例:
# Enable only open access sources
export ACADEMIC_MCP_ENABLED_SOURCES="arxiv,pubmed,pmc,biorxiv,medrxiv,semantic,core,crossref"
# Disable premium sources requiring subscriptions
export ACADEMIC_MCP_DISABLED_SOURCES="ieee,scopus,springer,sciencedirect,wos,acm,jstor"
# Enable only biomedical sources
export ACADEMIC_MCP_ENABLED_SOURCES="pubmed,pmc,biorxiv,medrxiv"
# Enable only computer science sources
export ACADEMIC_MCP_ENABLED_SOURCES="arxiv,semantic,ieee,acm"注: 大多数源在没有API密钥的情况下工作。API密钥仅用于特定的高级服务或更高的费率限制。
______________________________________________________________________
🤝 贡献
我们欢迎捐款!以下是如何开始:
- 分叉存储库:
在GitHub上点击“分叉”。
- 克隆和设置:
git clone https://github.com/yourusername/academic-mcp.git
cd academic-mcp
uv pip install -e . # Install in development mode- 进行更改:
- 在中添加新平台 academic_mcp/sources/. - 更新测试 tests/.
- 提交拉取请求:
在GitHub上推送更改并创建PR。
📄 许可证
该项目根据MIT许可证获得许可。有关详细信息,请参阅LICENSE文件。
______________________________________________________________________
快乐的研究 academic-mcp!如果您遇到问题,请打开GitHub问题。
