学术MCP服务器
🔍 一个统一的模型上下文协议(MCP)服务器,通过单一且一致的接口为人工智能助手提供访问多个学术数据库的权限。
🌟 特点
支持的数据库
- PubMed 🏥 - 生物医学与生命科学文献(NCBI)
- bioRxiv(生物学预印本服务器) 🧬 - 生物学预印本
- medRxiv(医学预印本服务器) 💊 - 医学预印本
- arXiv 🔬 - 物理、数学、计算机科学等
- 语义学者(或学术语义网,根据具体语境可灵活翻译) 🤖 - 跨学科的AI学术搜索
- Sci-Hub(科学之库) 📚 - 全面的学术论文访问与下载
核心能力
- ✅(对号,表示正确、确认或完成) 统一搜索使用单个查询搜索所有数据库
- ✅ 高级过滤按标题、作者、日期、期刊等进行筛选
- ✅ 元数据访问检索详细论文信息
- ✅ PDF下载当有可用时,下载开放获取论文
- ✅ 深入分析生成全面的论文分析提示
- ✅ 本地PDF分析支持本地和在线PDF文件分析
- ✅ 引文网络分析分析论文的引用关系及影响力
- ✅ 表示“正确”或“完成”。 完整的科研工作流程一键检索→分析→阅读→总结
- ✅ 标准化输出所有数据源采用统一的数据格式
🚀 快速入门
先决条件
- Python 3.10及以上版本
- MCP库
- 互联网连接
安装
✅ 已安装! 您的学术MCP服务器已完全配置并准备就绪,可供使用。
如果您需要在另一台机器上进行设置:
- 克隆或下载此仓库:
cd Academic-MCP-Server- 创建一个虚拟环境:
python -m venv venv- 激活虚拟环境:
- Windows: venv\Scripts\activate - Mac/Linux(注:此处为直接音译加意译的结合,但通常“Mac”和“Linux”在中文中直接使用原名,因此翻译为“Mac/(苹果)电脑/系统/Linux”或保持原样“Mac/Linux”均可,根据上下文选择更合适的表达。): source venv/bin/activate
- 安装依赖项:
pip install -r requirements.txt注: 所有PubMed功能均已本地集成。无需外部依赖!
光标配置
这个项目提供 两台MCP服务器 具有互补特性:
academic- 跨6个数据库(PubMed、bioRxiv、medRxiv、arXiv、Semantic Scholar、Sci-Hub)进行基本搜索、元数据检索和PDF下载academic-research- 高级功能包括引文分析、论文影响力评估、本地PDF分析以及完整的科研工作流程
将此配置添加到您的MCP设置文件中(~/.cursor/mcp.json 或者 C:\Users\YOUR_USERNAME\.cursor\mcp.json):
Windows(操作系统):
{
"mcpServers": {
"academic": {
"command": "C:\\Users\\YOUR_USERNAME\\path\\to\\Academic-MCP-Server\\venv\\Scripts\\python.exe",
"args": [
"C:\\Users\\YOUR_USERNAME\\path\\to\\Academic-MCP-Server\\academic_server.py"
],
"env": {},
"disabled": false,
"autoApprove": []
},
"academic-research": {
"command": "C:\\Users\\YOUR_USERNAME\\path\\to\\Academic-MCP-Server\\venv\\Scripts\\python.exe",
"args": [
"C:\\Users\\YOUR_USERNAME\\path\\to\\Academic-MCP-Server\\academic_research_advanced.py"
],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}Mac/Linux:
{
"mcpServers": {
"academic": {
"command": "/path/to/Academic-MCP-Server/venv/bin/python",
"args": [
"/path/to/Academic-MCP-Server/academic_server.py"
],
"env": {},
"disabled": false,
"autoApprove": []
},
"academic-research": {
"command": "/path/to/Academic-MCP-Server/venv/bin/python",
"args": [
"/path/to/Academic-MCP-Server/academic_research_advanced.py"
],
"env": {},
"disabled": false,
"autoApprove": []
}
}
}注: 替换 YOUR_USERNAME 并且 path/to 根据你实际的路径。
📖 使用方法
搜索论文
在所有数据库中搜索:
search_papers(
keywords="UCAR-T",
source="all",
num_results=15
)搜索特定数据库:
search_papers(
keywords="machine learning",
source="arxiv",
num_results=10
)高级搜索
search_papers_advanced(
title="neural networks",
author="Hinton",
start_date="2020-01-01",
end_date="2024-12-31",
source="semantic_scholar",
num_results=10
)PubMed特定高级搜索:
search_papers_advanced(
title="CAR-T",
author="Wang",
journal="Nature",
start_date="2024/01/01", # PubMed uses YYYY/MM/DD
end_date="2025/12/31",
source="pubmed",
num_results=10
)获取论文元数据
# PubMed
get_paper_metadata(identifier="40883768", source="pubmed")
# bioRxiv
get_paper_metadata(identifier="10.1101/2024.01.001", source="biorxiv")
# arXiv
get_paper_metadata(identifier="2301.00001", source="arxiv")
# Semantic Scholar (Paper ID or DOI)
get_paper_metadata(identifier="DOI:10.1038/s41586-020-1234-5", source="semantic_scholar")下载PDF文件
download_paper_pdf(identifier="2301.00001", source="arxiv")列出可用资源
list_available_sources()
# Returns: ["pubmed", "biorxiv", "medrxiv", "arxiv", "semantic_scholar", "scihub"]深入论文分析
deep_paper_analysis(identifier="40883768", source="pubmed")🛠 MCP 工具参考
服务器: academic (基本搜索与检索)
1. search_papers
使用关键词搜索论文。
参数:
keywords(字符串): 搜索查询source(str): "全部", "PubMed", "bioRxiv", "medRxiv", "arXiv", "Semantic Scholar" 或 "Sci-Hub"num_results(int): 每个来源的结果数量(默认:10)
2. search_papers_advanced
使用多个过滤器进行高级搜索。
参数:
title(字符串,可选):在标题中搜索author(字符串,可选):作者姓名journal(str, 可选): 期刊名称start_date(str, 可选): 开始日期end_date(字符串,可选):结束日期term(字符串,可选):通用搜索词source(字符串): 数据库来源num_results(int): 结果数量
3. get_paper_metadata
获取特定论文的详细元数据。
参数:
identifier(字符串): 论文ID(PMID、DOI、arXiv ID等)source(字符串): 数据库来源
4. download_paper_pdf
下载论文的PDF文件。
参数:
identifier(字符串): 论文IDsource(str): 数据库源
5. list_available_sources
列出所有可用的数据库。
6. deep_paper_analysis
生成全面分析提示。
参数:
identifier(字符串): 论文IDsource(str): 数据库来源
服务器: academic-research (高级分析与研究)
1. analyze_citation_network
分析论文的引用网络。
参数:
paper_id(字符串): 论文标识符(DOI、PMID等)source(str): 数据源(默认:“semantic_scholar”)max_depth(int): 网络深度 1-3层(默认:2)
2. evaluate_paper_impact
评估一篇论文的学术影响力。
参数:
paper_id(字符串): 论文标识符source(str): 数据源(默认:“semantic_scholar”)
3. recommend_related_papers
使用多种策略推荐相关论文。
参数:
paper_id(str): 来源论文标识符source(str): 数据源(默认:“semantic_scholar”)num_recommendations(int): 推荐数量(默认:10)strategy(字符串):“全面的”、“引用”、“相似的”或“有影响力的”
4. research_workflow_complete
⭐ 推荐的核心功能 - 完整的研究工作流程:检索→分析→阅读→总结
参数:
topic(字符串): 研究课题(例如,“CRISPR基因编辑”)num_papers(int): 要检索的论文数量(默认:5)include_analysis(布尔值):是否包含深度分析(默认:true)include_summary(布尔值):是否包含自动摘要(默认:true)
5. analyze_local_paper
全面分析本地或在线PDF文档。
参数:
pdf_path(str): PDF文件路径(本地或URL)include_figures(bool): 分析图形(默认:true)include_summary(布尔值): 生成摘要(默认:true)
6. list_all_figures
列出PDF论文中的所有图表。
参数:
pdf_path(字符串): PDF 文件路径(本地路径或 URL)
7. explain_specific_figure
解释PDF中的一个具体图表。
参数:
pdf_path(str): PDF文件路径(本地或URL)figure_number(int): 图片编号(例如,1,2,3)provide_context(布尔值):是否包含上下文段落(默认:true)
8. extract_text_from_pdf
从PDF中提取文本内容(支持本地文件和在线URL)。
参数:
pdf_path(str): PDF路径(本地或URL)extract_sections(布尔值): 是否按部分提取page_range(元组,可选): 页码范围,例如,(1, 10) 表示第1到第10页
9. batch_analyze_local_papers
批量分析文件夹中的所有PDF论文(仅限本地文件夹)。
参数:
folder_path(str): 文件夹路径max_papers(int): 要分析的论文最大数量(默认:10)file_pattern(str): 文件匹配模式(默认: "\*.pdf")
10. compare_papers
比较多篇论文。
参数:
paper_ids(列表):要比较的论文ID列表(2-5篇论文)comparison_aspects(列表,可选):比较维度 - “方法论”、“发现”、“影响”、“时间线”
11. extract_key_information
从论文中提取关键信息。
参数:
paper_id(字符串): 论文标识符source(str): 数据源(默认:“semantic_scholar”)info_types(列表,可选):要提取的信息类型列表
- “methodology”:研究方法 - “findings”:主要发现 - “limitations”:研究局限性 - "datasets": 使用的数据集 - "metrics": 评估指标 - “contributions”:主要贡献
12. generate_paper_summary
自动生成论文摘要。
参数:
paper_id(str): 论文标识符source(str): 数据源(默认:“semantic_scholar”)summary_type(str): 摘要类型
- “brief”:简要概述(100-200字) - “comprehensive”:全面总结(500-800字) - “technical”:技术细节概述 - “layman”:通俗易懂版
13. extract_pdf_fulltext
从PDF中提取全文内容。
参数:
pdf_url(str): PDF文件URLextract_sections(布尔值):是否识别和提取段落(默认:true)
📊 标准化输出格式
所有搜索结果均以这种标准化格式返回论文:
{
"id": "Unique identifier (PMID, DOI, arXiv ID, etc.)",
"title": "Paper title",
"authors": "Author names (comma-separated)",
"abstract": "Paper abstract",
"publication_date": "Publication date",
"journal": "Journal or venue name",
"url": "Link to paper",
"pdf_url": "PDF link (if available)",
"source": "Database source (pubmed/biorxiv/arxiv/etc.)"
}Semantic Scholar 的搜索结果包含额外字段:
citation_count被引用次数reference_count参考文献数量fields_of_study研究领域
🔧 架构
双服务器设计
这个项目提供了 两个互补的MCP服务器:
academic_server.py- 核心搜索和检索功能academic_research_advanced.py- 高级分析与研究工作流程
项目结构
Academic-MCP-Server/
├── academic_server.py # Main MCP server (basic search)
├── academic_research_advanced.py # Advanced research server
├── adapters/ # Database adapters
│ ├── base_adapter.py # Abstract base class
│ ├── pubmed_adapter.py # PubMed wrapper
│ ├── biorxiv_adapter.py # bioRxiv/medRxiv
│ ├── arxiv_adapter.py # arXiv
│ ├── semantic_scholar_adapter.py
│ └── scihub_adapter.py # Sci-Hub
├── utils/ # Helper functions
│ ├── helpers.py # General utilities
│ └── pubmed_utils.py # PubMed-specific utilities
├── requirements.txt # Dependencies
└── README.md / README_CN.md # Documentation适配器模式
每个数据库都被一个适配器所包裹,该适配器实现了一个通用接口:
添加新数据库
添加新数据库:
- 创建一个新的适配器在
adapters/ - 继承自
BaseAdapter - 实现所有必需的方法
- 注册于
academic_server.py
示例:
# adapters/new_database_adapter.py
from .base_adapter import BaseAdapter
class NewDatabaseAdapter(BaseAdapter):
def search_by_keywords(self, keywords, num_results):
# Implementation
pass
# ... implement other methods
# In academic_server.py
from adapters.new_database_adapter import NewDatabaseAdapter
adapters = {
# ... existing adapters
"new_database": NewDatabaseAdapter()
}🎯 应用场景
为研究人员
- 同时在多个预印本服务器上进行搜索
- 按特定作者或主题查找论文
- 自动下载开放获取论文
- 生成文献综述材料
- 分析本地PDF集合
- 进行全面的引文网络分析
- 生成自动化的论文摘要
对于人工智能助手
- 获取全面的学术知识
- 提供最新的研究信息
- 帮助管理引文和参考文献
- 分析研究趋势和成果
- 处理并解释学术论文中的图表
- 自动执行完整的研究工作流程
⚠️ 局限性及注意事项
API速率限制
- PubMed无需API密钥,但有速率限制
- bioRxiv/medRxiv(可译为“生物预印本平台bioRxiv/医学预印本平台medRxiv”或简化为“bioRxiv/medRxiv预印本平台”,具体根据语境选择)无需认证
- arXiv(一个供科研人员分享预印本的开放存取平台)限速(建议每3秒1次请求)
- 语义学者(或语义学术网)免费套餐有速率限制;如需更高限制,请在https://www.semanticscholar.org/product/api获取API密钥
- Sci-Hub(科学直击)无需认证;请负责任地使用
PDF文件可用性
- PubMed仅限PMC开放获取文章
- bioRxiv/medRxiv(生物预印本平台/医学预印本平台)所有文章均为开放获取
- arXiv所有文章均开放获取
- 语义学者(或语义学术)取决于出版商的政策
- Sci-Hub(注:这是一个提供学术论文免费下载服务的网站,但其合法性在不同国家和地区存在争议,使用时需谨慎)学术论文覆盖范围广泛(仅限研究用途)
本地PDF支持
- 全文提取从本地或在线PDF中提取完整文本
- 图形分析列出并解释PDF论文中的图表
- 节解析自动识别并提取论文部分
- 批处理同时分析文件夹中的多个PDF文件
日期格式
- PubMed:
YYYY/MM/DD - 其他:
YYYY-MM-DD
🤝 贡献(或“参与贡献”)
欢迎投稿!请随意:
- 添加新的数据库适配器
- 改进现有功能
- 修复漏洞
- 增强文档记录
📄 许可证
这个项目基于PubMed-MCP-Server构建,并遵循类似的开源原则。
🙏 致谢
- 用于原始PubMed集成的PubMed-MCP-服务器
- NCBI E-utilities(国家生物技术信息中心电子工具)
- bioRxiv/medRxiv API
- arXiv API
- Semantic Scholar API
- Sci-Hub MCP 服务器(JackKuo666/Sci-Hub-MCP-服务器)
- FastMCP框架
⚠️ 免责声明
提供了Sci-Hub的集成功能以供 仅用于研究和教育目的用户有责任遵守其所在管辖区的版权法和机构政策。作者不支持也不鼓励侵犯版权行为。请尽可能通过合法渠道获取论文,以支持出版商和作者。
📊 项目统计
- 支持的数据库6(PubMed、bioRxiv、medRxiv、arXiv、Semantic Scholar、Sci-Hub)
- MCP服务器2(学术,学术研究)
- 基本MCP工具六
- 高级研究工具15岁及以上
- 代码行数约3,000
- 支持的格式PDF、元数据、引用、全文分析
- PDF支持本地文件和在线URL均可
🚀 增强功能
先进的研究能力
- 引文网络分析理解论文之间的关联及影响
- 自动化摘要生成生成多种风格的摘要
- 关键信息提取提取方法、发现、局限性
- 完整的科研工作流程一键式研究,从主题到摘要
PDF处理
- 本地支持与在线支持从本地存储或URL处理PDF文件
- 图表说明基于人工智能的体态分析与解释
- 段落识别纸张段落的自动识别
- 批次分析同时处理多篇论文
智能搜索功能
- 并发数据库搜索同时搜索所有数据库
- 智能结果合并去重并排名结果
- 高级过滤带日期范围的多参数搜索
- 源特定优化为每个数据库定制搜索
📞 支持
对于问题或疑问:
- 查看上面的文档
- 检查日志中的错误信息
- 确保所有依赖项都已安装
- 验证您的MCP配置
______________________________________________________________________
祝你研究顺利! 📚🔬 书籍与科学(或实验室)的象征
