这是一个用于搜索 NCBI 数据库的模型上下文协议(MCP)服务器,专为生命科学和生物医学领域的研究人员设计。该服务器通过自然语言查询提供对 PubMed 中超过 3500 万篇科学文章的无缝访问,使AI助手能够帮助进行文献综述、研究发现和科学研究分析。
🔬 全面搜索:跨所有生物学学科搜索 PubMed 的 3500 多万篇文章
📊 高级查询:支持使用布尔运算符、字段标签和过滤器的复杂搜索
🧬 生命科学研究:涵盖所有生物学和生物医学领域,包括遗传学、生态学、医学和生物技术
💻 计算生物学:非常适合查找生物信息学方法、算法和计算工具
🔬 研究应用:文献综述、假设生成、方法发现以及了解科学进展
📚 全文本详情:获取摘要、作者列表、MeSH 术语、DOI 和出版信息
🔗 相关文章:通过 NCBI 的关系算法发现相关研究
📖 MeSH 集成:搜索并利用医学主题词表以获得精确术语
创建并初始化项目
mkdir ncbi-mcp-server && cd ncbi-mcp-server
poetry init
在初始化过程中添加依赖项:mcp, httpx, typing-extensions
创建项目结构
mkdir -p src/ncbi_mcp_server
# 将 server.py 代码保存为 src/ncbi_mcp_server/server.py
安装依赖项
poetry install
测试服务器
poetry run python src/ncbi_mcp_server/server.py
配置 Claude Desktop
编辑你的 Claude Desktop 配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%/Claude/claude_desktop_config.json~/.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"
}
}
}
重启 Claude Desktop 并开始搜索!
conda env create -f environment.yml
conda activate ncbi-mcp
python server.py
python -m venv venv
source venv/bin/activate # Linux/macOS
pip install -r requirements.txt
python server.py
</details>
搜索系统发育研究:
"搜索关于哺乳动物进化的最近系统发育分析论文"
→ 使用:search_pubmed 查询 "phylogenetic analysis[ti] AND mammalian[ti] AND evolution"
查找计算系统发育方法:
"查找关于最大似然法在系统发育重建中的论文"
→ 使用:search_pubmed 查询 "maximum likelihood[ti] AND phylogenetic reconstruction"
按特定生物体搜索:
"查找关于果蝇比较基因组学的最新论文"
→ 使用:search_pubmed 查询 "Drosophila[ti] AND comparative genomics[ti]"
算法和方法论文:
"搜索过去两年内基因组学中机器学习的应用"
→ 使用:search_pubmed 日期范围="730" 和查询 "machine learning AND genomics"
软件和数据库论文:
"查找关于新的生物信息学工具用于序列分析的论文"
→ 使用:search_pubmed 查询 "bioinformatics[ti] AND software[ti] AND sequence analysis"
多条件搜索:
"查找关于 CRISPR 在进化研究中的应用并在 Nature 或 Science 发表的综述文章"
→ 使用:advanced_search 条件=["CRISPR", "evolution"],文章类型=["Review"],期刊=["Nature", "Science"]
特定作者搜索:
"查找近期由从事古DNA和系统发育组学的研究人员撰写的论文"
→ 使用:search_pubmed 查询 "ancient DNA[ti] AND phylogenomics[ti]"
search_pubmedPubMed 数据库的主要搜索工具
[ti] 标题、[au] 作者、[mh] MeSH 术语的字段标签)示例:
"CRISPR[ti] AND evolution" - CRISPR 在标题中 AND 进化在任何地方"phylogenetic analysis[mh]" - 使用 MeSH 术语进行系统发育分析"computational biology AND machine learning" - 布尔搜索get_article_details获取特定文章的完整信息
返回完整的摘要、作者列表、MeSH 术语、DOI 和出版细节
search_mesh_terms查找标准化的医学主题词表
有助于发现相关概念并提高搜索精度
get_related_articles发现与特定论文相关的文章
非常适合文献综述和找到相关研究
advanced_search具有多个条件的复杂搜索
NCBI MCP 服务器包括全面的分析工具,帮助您理解研究模式并优化性能。
get_analytics_summary获取全面的分析概述
"显示我的研究分析摘要"
返回:
get_detailed_metrics特定时间段的详细性能指标
"获取过去 24 小时的详细指标"
reset_analytics重置分析数据(谨慎使用)
"重置所有分析数据"
注意:这将永久清除所有收集的指标。
使用模式:
性能指标:
研究洞察:
配置凭据:
cp .env.example .env
# 编辑 .env 文件,填写您的 NCBI 邮件和 API 密钥
选择部署方法:
# 本地开发
./deploy.sh local
# Docker 部署
./deploy.sh docker
# 生产部署
./deploy.sh production
适合开发和测试:
poetry install
poetry run python -m src.ncbi_mcp_server.server
大多数用户推荐,有两个选项:
完整设置(推荐):
# 复制并配置环境
cp .env.example .env
# 编辑 .env 文件,填写您的 NCBI 邮件和 API 密钥
# 启动所有服务
docker-compose up -d
简单设置(无 Redis):
# 无需 Redis 依赖的基本使用
cp .env.example .env
# 编辑 .env 文件,填写您的 NCBI 邮件
docker-compose -f docker-compose.simple.yml up -d
完整设置包括:
简单设置包括:
适用于生产环境:
# 配置生产设置
cp .env.production .env
# 编辑生产值
# 部署
./deploy.sh production
Docker 日志:
docker-compose logs -f ncbi-mcp-server
缓存监控:
cache_stats()健康检查:
# 测试服务器健康状况
curl http://localhost:8000/health
# 通过 MCP 测试
python -c "from src.ncbi_mcp_server.server import cache_stats; import asyncio; print(asyncio.run(cache_stats()))"
为了更高的速率限制和更好的性能:
src/ncbi_mcp_server/server.py 中:# 替换这一行:ncbi_client = NCBIClient()
# 用:
ncbi_client = NCBIClient(
email="your.email@university.edu",
api_key="your_api_key_here"
)
poetry shell # 激活虚拟环境
poetry add package # 添加新依赖项
poetry remove package # 移除依赖项
poetry update # 更新所有依赖项
poetry run python ... # 在环境中运行命令
poetry build # 创建分发包
poetry add --group dev black mypy pytest isort flake8
poetry run black . # 格式化代码
poetry run mypy . # 类型检查
poetry run pytest # 运行测试
poetry run isort . # 排序导入
# 他们只需要:
git clone your-repo
cd ncbi-mcp-server
poetry install
# 所有功能完全一致!
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")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]")服务器无法启动:
pip install -r requirements.txt没有搜索结果:
速率限制错误:
XML 解析错误:
此 MCP 服务器旨在随着研究社区的发展而成长。增强的想法:
此项目是开源的。根据您的机构政策自由修改和分发。
适用于研究人员:
开始探索强大的、精确的生物文献世界!