一个用于从多个来源(包括 arXiv、Web of Science、PubMed、Google Scholar、Sci-Hub、ScienceDirect、Springer、Wiley、Scopus 和 13 个学术平台)搜索和下载学术论文的 Node.js Model Context Protocol (MCP) 服务器。
| 平台 | 搜索 | 下载 | 全文 | 引用 | API 密钥 | 特殊功能 |
|---|---|---|---|---|---|---|
| arXiv | ✅ | ✅ | ✅ | ❌ | ❌ | 物理/计算机科学预印本 |
| Web of Science | ✅ | ❌ | ❌ | ✅ | ✅ 必需 | 高质量期刊索引 |
| PubMed | ✅ | ❌ | ❌ | ❌ | 🟡 可选 | 生物医学文献 |
| Google Scholar | ✅ | ❌ | ❌ | ✅ | ❌ | 综合学术搜索 |
| bioRxiv | ✅ | ✅ | ✅ | ❌ | ❌ | 生物学预印本 |
| medRxiv | ✅ | ✅ | ✅ | ❌ | ❌ | 医学预印本 |
| Semantic Scholar | ✅ | ✅ | ❌ | ✅ | 🟡 可选 | AI 语义搜索 |
| IACR ePrint | ✅ | ✅ | ✅ | ❌ | ❌ | 密码学论文 |
| Sci-Hub | ✅ | ✅ | ❌ | ❌ | ❌ | 通过 DOI 访问所有论文 |
| ScienceDirect | ✅ | ❌ | ❌ | ✅ | ✅ 必需 | Elsevier 的全文数据库 |
| Springer Nature | ✅ | ✅* | ❌ | ❌ | ✅ 必需 | 双 API: Meta v2 & OpenAccess |
| Wiley | ✅ | ✅ | ❌ | ❌ | ✅ 必需 | 文本和数据挖掘 API |
| Scopus | ✅ | ❌ | ❌ | ✅ | ✅ 必需 | 最大的引文数据库 |
✅ 支持 | ❌ 不支持 | 🟡 可选 | ✅* 仅开放访问
# 克隆仓库
git clone https://github.com/your-username/paper-search-mcp-nodejs.git
cd paper-search-mcp-nodejs
# 安装依赖
npm install
# 复制环境模板
cp .env.example .env
获取 Web of Science API 密钥
.env 文件中获取 PubMed API 密钥(可选)
配置环境变量
# 编辑 .env 文件
WOS_API_KEY=your_actual_api_key_here
WOS_API_VERSION=v1
# PubMed API 密钥(可选,推荐以获得更好的性能)
PUBMED_API_KEY=your_ncbi_api_key_here
# Semantic Scholar API 密钥(可选,增加速率限制)
SEMANTIC_SCHOLAR_API_KEY=your_semantic_scholar_api_key
# Elsevier API 密钥(ScienceDirect 和 Scopus 必需)
ELSEVIER_API_KEY=your_elsevier_api_key
# Springer Nature API 密钥(Springer 必需)
SPRINGER_API_KEY=your_springer_api_key # 用于 Metadata API v2
# 可选:OpenAccess API 的单独密钥(如果与主密钥不同)
SPRINGER_OPENACCESS_API_KEY=your_openaccess_api_key
# Wiley TDM 令牌(Wiley 必需)
WILEY_TDM_TOKEN=your_wiley_tdm_token
# 使用 npx 直接运行(最常见的 MCP 部署方式)
npx -y paper-search-mcp-nodejs
# 或者全局安装
npm install -g paper-search-mcp-nodejs
paper-search-mcp
# 构建 TypeScript 代码
npm run build
# 启动服务器
npm start
# 或者在开发模式下运行
npm run dev
将以下配置添加到您的 Claude Desktop 配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"paper-search-nodejs": {
"command": "npx",
"args": ["-y", "paper-search-mcp-nodejs"],
"env": {
"WOS_API_KEY": "your_web_of_science_api_key"
}
}
}
}
{
"mcpServers": {
"paper_search_nodejs": {
"command": "node",
"args": ["/path/to/paper-search-mcp-nodejs/dist/server.js"],
"env": {
"WOS_API_KEY": "your_web_of_science_api_key"
}
}
}
}
search_papers跨多个平台搜索学术论文
// 随机选择平台(默认行为)
search_papers({
query: "机器学习",
platform: "all", // 随机选择一个平台以提高效率
maxResults: 10,
year: "2023",
sortBy: "date"
})
// 搜索特定平台
search_papers({
query: "量子计算",
platform: "webofscience", // 针对特定平台
maxResults: 5
})
平台选择行为:
platform: "all" - 随机选择一个平台以高效、聚焦的结果arxiv, webofscience/wos, pubmed, biorxiv, medrxiv, semantic, iacr, googlescholar/scholar, scihub, sciencedirect, springer, wiley, scopussearch_arxiv专门搜索 arXiv 预印本
search_arxiv({
query: "变压器神经网络",
maxResults: 10,
category: "cs.AI",
author: "注意力"
})
search_webofscience专门搜索 Web of Science 数据库
search_webofscience({
query: "CRISPR 基因编辑",
maxResults: 15,
year: "2022",
journal: "Nature"
})
search_pubmed搜索 PubMed/MEDLINE 生物医学文献数据库
search_pubmed({
query: "COVID-19 疫苗效力",
maxResults: 20,
year: "2023",
author: "Smith",
journal: "New England Journal of Medicine",
publicationType: ["Journal Article", "Clinical Trial"]
})
search_google_scholar搜索 Google Scholar 学术数据库
search_google_scholar({
query: "机器学习",
maxResults: 10,
yearLow: 2020,
yearHigh: 2023,
author: "Bengio"
})
search_biorxiv / search_medrxiv搜索生物学和医学预印本
search_biorxiv({
query: "CRISPR",
maxResults: 15,
days: 30
})
search_semantic_scholar搜索 Semantic Scholar AI 语义数据库
search_semantic_scholar({
query: "深度学习",
maxResults: 10,
fieldsOfStudy: ["Computer Science"],
year: "2023"
})
search_iacr搜索 IACR ePrint 密码学档案
search_iacr({
query: "零知识证明",
maxResults: 5,
fetchDetails: true
})
search_scihub使用 DOI 或论文 URL 从 Sci-Hub 搜索和下载论文
search_scihub({
doiOrUrl: "10.1038/nature12373",
downloadPdf: true,
savePath: "./downloads"
})
check_scihub_mirrors检查 Sci-Hub 镜像站点的健康状态
check_scihub_mirrors({
forceCheck: true // 强制进行新的健康检查
})
download_paper下载论文 PDF 文件
download_paper({
paperId: "2106.12345", // 或 Sci-Hub 的 DOI
platform: "arxiv", // 或 "scihub" 用于 Sci-Hub 下载
savePath: "./downloads"
})
get_paper_by_doi通过 DOI 获取论文信息
get_paper_by_doi({
doi: "10.1038/s41586-023-12345-6",
platform: "all"
})
get_platform_status检查平台状态和 API 密钥
get_platform_status({})
所有平台的论文数据都转换为统一格式:
interface Paper {
paperId: string; // 唯一标识符
title: string; // 论文标题
authors: string[]; // 作者列表
abstract: string; // 摘要
doi: string; // DOI
publishedDate: Date; // 发表日期
pdfUrl: string; // PDF 链接
url: string; // 论文页面 URL
source: string; // 来源平台
citationCount?: number; // 引用次数
journal?: string; // 期刊名称
year?: number; // 发表年份
categories?: string[]; // 主题类别
keywords?: string[]; // 关键词
// ... 更多字段
}
src/
├── models/
│ └── Paper.ts # 论文数据模型
├── platforms/
│ ├── PaperSource.ts # 抽象基类
│ ├── ArxivSearcher.ts # arXiv 搜索器
│ ├── WebOfScienceSearcher.ts # Web of Science 搜索器
│ ├── PubMedSearcher.ts # PubMed 搜索器
│ ├── GoogleScholarSearcher.ts # Google Scholar 搜索器
│ ├── BioRxivSearcher.ts # bioRxiv/medRxiv 搜索器
| ├── SemanticScholarSearcher.ts # Semantic Scholar 搜索器
| ├── IACRSearcher.ts # IACR ePrint 搜索器
| ├── SciHubSearcher.ts # Sci-Hub 搜索器,带有镜像管理
| ├── ScienceDirectSearcher.ts # ScienceDirect (Elsevier) 搜索器
│ ├── SpringerSearcher.ts # Springer Nature 搜索器(Meta v2 & OpenAccess APIs)
| ├── WileySearcher.ts # Wiley TDM API 搜索器
| └── ScopusSearcher.ts # Scopus 引文数据库搜索器
├── utils/
│ └── RateLimiter.ts # 令牌桶限速器
└── server.ts # MCP 服务器主文件
PaperSourceserver.ts 中注册新的搜索器# 运行测试
npm test
# 运行代码检查
npm run lint
# 代码格式化
npm run format
Springer Nature 提供两个 API:
Metadata API v2(主 API)
https://api.springernature.com/meta/v2/jsonOpenAccess API(可选)
https://api.springernature.com/openaccess/json// 搜索所有 Springer 内容
search_springer({
query: "机器学习",
maxResults: 10
})
// 搜索仅开放访问的论文
search_springer({
query: "COVID-19",
openAccess: true, // 如果可用则使用 OpenAccess API
maxResults: 5
})
// 使用 Web of Science 查询语法
search_webofscience({
query: 'TS="机器学习" AND PY=2023',
maxResults: 20
})
// 作者搜索
search_webofscience({
query: 'AU="Smith, J*"',
maxResults: 10
})
// 期刊搜索
search_webofscience({
query: 'SO="Nature" AND PY=2022-2023',
maxResults: 15
})
支持的字段:
TS: 主题搜索AU: 作者SO: 来源期刊PY: 发表年份DO: DOITI: 标题MIT 许可证 - 详情请参阅 LICENSE 文件。
欢迎贡献!详见 CONTRIBUTING.md 文件中的指南。
git checkout -b feature/amazing-feature)git commit -m '添加了神奇的功能')git push origin feature/amazing-feature)如果您遇到问题,请在 GitHub Issues 中报告。