NCBI文献检索MCP服务器
用于搜索NCBI数据库的模型上下文协议(MCP)服务器,专为所有生命科学和生物医学领域的研究人员设计。该服务器通过自然语言查询提供对PubMed 3500多万篇科学文章的无缝访问,使人工智能助手能够帮助进行文献综述、研究发现和科学分析。
特性
🔬 综合搜索:搜索PubMed在所有生物学学科中的3500多万篇文章 📊 高级查询:支持使用布尔运算符、字段标签和过滤器进行复杂搜索\ 🧬 生命科学研究:涵盖所有生物和生物医学领域,包括遗传学、生态学、医学和生物技术 💻 计算生物学:非常适合寻找生物信息学方法、算法和计算工具 🔬 研究应用:文献综述、假设生成、方法发现和跟上科学进步 📚 完整文章详细信息:获取摘要、作者列表、MeSH术语、DOI和出版信息 🔗 相关文章:通过NCBI的关系算法发现相关研究 📖 MeSH集成:搜索和使用医学主题标题以获取精确的术语
快速开始
先决条件
- Python 3.8或更高版本
- 诗歌(推荐)- 安装诗歌
设置(5分钟)
- 创建并初始化项目
mkdir ncbi-mcp-server && cd ncbi-mcp-server
poetry init在初始化过程中,添加依赖项: mcp, httpx, typing-extensions
- 创建项目结构
mkdir -p src/ncbi_mcp_server
# Save server.py code as src/ncbi_mcp_server/server.py- 安装依赖项
poetry install- 测试服务器
poetry run python src/ncbi_mcp_server/server.py- 配置Claude桌面
编辑您的Claude Desktop配置文件:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 视窗: %APPDATA%/Claude/claude_desktop_config.json - Linux: ~/.config/claude/claude_desktop_config.json
添加此配置:
{
"mcpServers": {
"ncbi-literature": {
"command": "poetry",
"args": ["run", "python", "src/ncbi_mcp_server/server.py"],
"cwd": "/FULL/PATH/TO/YOUR/ncbi-mcp-server"
}
}
}- 重新启动克劳德桌面 开始搜索!
替代设置方法
Click to expand alternative installation methods
康达环境
conda env create -f environment.yml
conda activate ncbi-mcp
python server.py标准pip+venv
python -m venv venv
source venv/bin/activate # Linux/macOS
pip install -r requirements.txt
python server.py使用示例
进化生物学研究
搜索系统发育研究:
"Search for recent phylogenetic analysis papers on mammalian evolution"
→ Uses: search_pubmed with query "phylogenetic analysis[ti] AND mammalian[ti] AND evolution"寻找计算系统发育学方法:
"Find papers about maximum likelihood methods for phylogenetic reconstruction"
→ Uses: search_pubmed with query "maximum likelihood[ti] AND phylogenetic reconstruction"按特定生物体搜索:
"Find recent papers on Drosophila comparative genomics"
→ Uses: search_pubmed with query "Drosophila[ti] AND comparative genomics[ti]"用于计算生物学研究
算法和方法论文:
"Search for machine learning applications in genomics from the last 2 years"
→ Uses: search_pubmed with date_range="730" and query "machine learning AND genomics"软件和数据库论文:
"Find papers about new bioinformatics tools for sequence analysis"
→ Uses: search_pubmed with query "bioinformatics[ti] AND software[ti] AND sequence analysis"高级搜索示例
多条件搜索:
"Find review articles about CRISPR applications in evolutionary studies published in Nature or Science"
→ Uses: advanced_search with terms=["CRISPR", "evolution"], publication_types=["Review"], journals=["Nature", "Science"]特定作者搜索:
"Find recent papers by researchers working on ancient DNA and phylogenomics"
→ Uses: search_pubmed with query "ancient DNA[ti] AND phylogenomics[ti]"工具参考
search_pubmed
PubMed数据库的主要搜索工具
- 怎么翻译:搜索词(支持以下字段标签
[ti]对于标题,[au]对于作者来说,[mh]对于MeSH术语) - max_results:结果数(1-100,默认值:20)
- 排序:按“相关性”、“发布日期”、“作者”或“期刊”排序
- 日期范围:限制为最近的文章(“30”、“90”、“365”、“1095”天)
示例:
"CRISPR[ti] AND evolution"-CRISPR的标题和进化无处不在"phylogenetic analysis[mh]"-使用MeSH术语进行系统发育分析"computational biology AND machine learning"-布尔搜索
get_article_details
获取特定文章的完整信息
- pmids:PubMed ID列表(最多50个)
返回完整摘要、作者列表、MeSH术语、DOI、出版物详细信息
search_mesh_terms
查找标准化的医学主题标题
- 术语:在MeSH数据库中搜索的术语
帮助发现相关概念并提高搜索精度
get_related_articles
发现与特定论文相关的文章
- pmid:参考文献的PubMed ID
- max_results:相关文章数量(1-50,默认值:10)
非常适合文献综述和寻找相关研究
advanced_search
具有多个条件的复杂搜索
- 条款:要组合的搜索词列表
- 操作员:“AND”、“OR”或“NOT”用于组合术语
- 作者们:作者姓名列表
- 期刊:期刊名称列表
- 出版物_类型:“研究文章”、“综述”、“荟萃分析”等。
- date_from/date_to:YYYY/MM/DD格式的日期范围
- max_results:结果数(1-100,默认值:20)
分析和性能监控
NCBI MCP服务器包括全面的分析,可帮助您了解您的研究模式并优化性能。
分析工具
get_analytics_summary
获取全面的分析概述
"Show me my research analytics summary"退货:
- 总请求数和正常运行时间
- 操作分解(搜索、获取等)
- 缓存性能指标
- 最近的活动和错误率
- 系统健康指标
get_detailed_metrics
特定时间段的详细绩效指标
"Get detailed metrics for the last 24 hours"- 小时:要分析的时间段(默认值:24)
- 特定操作性能数据
- 按小时细分的时间线分析
- 每次操作的错误率和响应时间
reset_analytics
重置分析数据(谨慎使用)
"Reset all analytics data"备注:这将永久清除所有收集到的指标。
追踪什么
使用模式:
- 搜索查询和频率
- 最常用的操作
- 独特查询与重复查询
- 高峰使用期
绩效指标:
- 每次操作的响应时间
- 缓存命中率/未命中率
- 错误率和类型
- 限速效率
研究见解:
- 热门搜索词和模式
- 研究工作流程分析
- 文献获取模式
- 访问量最大的期刊和主题
部署
快速开始
- 配置凭据:
cp .env.example .env
# Edit .env with your NCBI email and API key- 选择部署方法:
# Local development
./deploy.sh local
# Docker deployment
./deploy.sh docker
# Production deployment
./deploy.sh production部署选项
1.地方发展
非常适合开发和测试:
poetry install
poetry run python -m src.ncbi_mcp_server.server2.Docker部署
建议大多数用户使用两个选项:
Redis的完整设置(推荐):
# Copy and configure environment
cp .env.example .env
# Edit .env with your NCBI email and API key
# Start all services
docker-compose up -d无Redis的简单设置:
# For basic usage without Redis dependencies
cp .env.example .env
# Edit .env with your NCBI email
docker-compose -f docker-compose.simple.yml up -d完整设置包括:
- NCBI MCP服务器容器
- Redis缓存提高性能
- Redis指挥官UI(http://localhost:8081)
简单的设置包括:
- 仅限NCBI MCP服务器容器
- 内存缓存(无持久性)
3.生产部署
对于生产环境:
# Configure production settings
cp .env.production .env
# Edit with production values
# Deploy
./deploy.sh production监控
Docker日志:
docker-compose logs -f ncbi-mcp-server缓存监控:
- Redis指挥官:http://localhost:8081
- 通过MCP工具缓存统计数据:
cache_stats()
健康检查:
# Test server health
curl http://localhost:8000/health
# Test via MCP
python -c "from src.ncbi_mcp_server.server import cache_stats; import asyncio; print(asyncio.run(cache_stats()))"配置
NCBI API密钥(可选但推荐)
为了获得更高的速率限制和更好的性能:
- 在NCBI注册: https://www.ncbi.nlm.nih.gov/account/
- 获取API密钥: https://www.ncbi.nlm.nih.gov/account/settings/
- 添加到服务器代码 在……里面
src/ncbi_mcp_server/server.py:
# Replace the line: ncbi_client = NCBIClient()
# With:
ncbi_client = NCBIClient(
email="your.email@university.edu",
api_key="your_api_key_here"
)速率限制
- 没有API密钥:3个请求/秒
- 带API键:10个请求/秒
- 使用API密钥+电子邮件:批量请求的限制更高
开发工作流程
诗歌命令
poetry shell # Activate virtual environment
poetry add package # Add new dependency
poetry remove package # Remove dependency
poetry update # Update all dependencies
poetry run python ... # Run commands in environment
poetry build # Create distribution packages代码质量(如果您添加了开发依赖项)
poetry add --group dev black mypy pytest isort flake8
poetry run black . # Format code
poetry run mypy . # Type checking
poetry run pytest # Run tests
poetry run isort . # Sort imports与同事分享
# They just need:
git clone your-repo
cd ncbi-mcp-server
poetry install
# Everything works identically!高级搜索的字段标签
PubMed支持许多字段标签以进行精确搜索:
[ti]-标题[tiab]-标题和摘要[au]作者[mh]-MeSH条款[journal]-期刊名称[pdat]-出版日期[pt]-出版物类型[lang]-语言[sb]-子集(如medline、pubmed)
高级查询示例:
"machine learning"[ti] AND "phylogen*"[tiab] AND "2020"[pdat]:"2024"[pdat]
evolutionary[mh] AND computational[ti] AND (genomics[tiab] OR proteomics[tiab])
"ancient DNA"[ti] AND (paleogenomics[mh] OR phylogenomics[tiab])研究工作流程示例
文献综述工作流程
- 开始广泛:
search_pubmed("computational phylogenetics") - 用MeSH精炼:
search_mesh_terms("phylogenetics") - 查找关键论文:使用发布日期和日志筛选器
- 探索联系:
get_related_articles(pmid="key_paper_id") - 深潜:
get_article_details(pmids=["12345", "67890"])
保持最新状态
- 最近的方法:
search_pubmed("new methods", date_range="90") - 关注主要作者:
search_pubmed("author_name[au]", sort="pub_date") - 跟踪特定主题:
advanced_search使用您的研究关键字
方法发现
- 算法论文:
search_pubmed("algorithm[ti] AND your_field") - 软件工具:
search_pubmed("software[ti] OR tool[ti] AND bioinformatics") - 基准测试:
search_pubmed("comparison[ti] OR benchmark[ti]")
故障排除
常见问题
服务器无法启动:
- 检查Python版本(需要3.8+)
- 安装依赖项:
pip install -r requirements.txt - 验证文件权限
没有搜索结果:
- 检查查询语法(使用正确的字段标记)
- 尝试更广泛的搜索词
- 验证互联网连接
速率限制错误:
- 增加请求之间的延迟
- 获取NCBI API密钥以获得更高的限制
- 考虑每次查询搜索更少的结果
XML分析错误:
- 通常是临时NCBI服务器问题
- 几秒钟后重试
- 检查NCBI状态:https://www.ncbi.nlm.nih.gov/
获取帮助
- NCBI电子公用事业文件: https://www.ncbi.nlm.nih.gov/books/NBK25499/
- PubMed搜索提示: https://pubmed.ncbi.nlm.nih.gov/help/
- MeSH数据库: https://www.ncbi.nlm.nih.gov/mesh/
贡献
此MCP服务器旨在与研究社区一起发展。改进思路:
- 其他数据库:PMC、BioRxiv、NCBI以外的数据库
- 引文分析:跟踪论文影响和引用网络
- 导出格式:BibTeX、EndNote、RIS供参考经理使用
- 保存的搜索:持续搜索配置文件和警报
- 全文集成:通过PMC可用时
许可证
这个项目是开源的。请随时根据您所在机构的政策进行修改和分发。
______________________________________________________________________
非常适合以下领域的研究人员:
- 进化生物学与系统发育学
- 计算生物学与生物信息学
- 分子进化与群体遗传学
- 比较基因组学和蛋白质组学
- 系统生物学与网络分析
- 生物统计学与数理生物学
- 古DNA与古基因组学
- 保护遗传学与生态学
通过强大、精确的搜索开始探索广阔的生物文学世界!
