文献搜索服务

一个用于搜索NCBI数据库的模型上下文协议(MCP)服务器,为生命科学和生物医学领域的研究人员提供无缝访问PubMed的3500多万篇科学文章,支持自然语言查询,帮助进行文献综述、研究发现和科学分析。

  • by vitorpavinato
  • Python
  • 本地部署
  • 13 星标
  • 更新于
在 GitHub 查看 vitorpavinato/ncbi-mcp-server

使用说明

NCBI文献检索MCP服务器

用于搜索NCBI数据库的模型上下文协议(MCP)服务器,专为所有生命科学和生物医学领域的研究人员设计。该服务器通过自然语言查询提供对PubMed 3500多万篇科学文章的无缝访问,使人工智能助手能够帮助进行文献综述、研究发现和科学分析。

特性

🔬 综合搜索:搜索PubMed在所有生物学学科中的3500多万篇文章 📊 高级查询:支持使用布尔运算符、字段标签和过滤器进行复杂搜索
🧬 生命科学研究:涵盖所有生物和生物医学领域,包括遗传学、生态学、医学和生物技术 💻 计算生物学:非常适合寻找生物信息学方法、算法和计算工具 🔬 研究应用:文献综述、假设生成、方法发现和跟上科学进步 📚 完整文章详细信息:获取摘要、作者列表、MeSH术语、DOI和出版信息 🔗 相关文章:通过NCBI的关系算法发现相关研究 📖 MeSH集成:搜索和使用医学主题标题以获取精确的术语

快速开始

先决条件

  • Python 3.8或更高版本
  • 诗歌(推荐)- 安装诗歌

设置(5分钟)

  1. 创建并初始化项目

    mkdir ncbi-mcp-server && cd ncbi-mcp-server
    poetry init
    

    在初始化过程中,添加依赖项: mcp, httpx, typing-extensions

  2. 创建项目结构

    mkdir -p src/ncbi_mcp_server
    # Save server.py code as src/ncbi_mcp_server/server.py
    
  3. 安装依赖项

    poetry install
    
  4. 测试服务器

    poetry run python src/ncbi_mcp_server/server.py
    
  5. 配置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"
        }
      }
    }
    
  6. 重新启动克劳德桌面 开始搜索!

替代设置方法

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"

备注:这将永久清除所有收集到的指标。

追踪什么

使用模式:

  • 搜索查询和频率
  • 最常用的操作
  • 独特查询与重复查询
  • 高峰使用期

绩效指标:

  • 每次操作的响应时间
  • 缓存命中率/未命中率
  • 错误率和类型
  • 限速效率

研究见解:

  • 热门搜索词和模式
  • 研究工作流程分析
  • 文献获取模式
  • 访问量最大的期刊和主题

部署

快速开始

  1. 配置凭据:

    cp .env.example .env
    # Edit .env with your NCBI email and API key
    
  2. 选择部署方法:

    # 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.server

2.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密钥(可选但推荐)

为了获得更高的速率限制和更好的性能:

  1. 在NCBI注册: https://www.ncbi.nlm.nih.gov/account/
  2. 获取API密钥: https://www.ncbi.nlm.nih.gov/account/settings/
  3. 添加到服务器代码 在……里面 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])

研究工作流程示例

文献综述工作流程

  1. 开始广泛: search_pubmed("computational phylogenetics")
  2. 用MeSH精炼: search_mesh_terms("phylogenetics")
  3. 查找关键论文:使用发布日期和日志筛选器
  4. 探索联系: get_related_articles(pmid="key_paper_id")
  5. 深潜: get_article_details(pmids=["12345", "67890"])

保持最新状态

  1. 最近的方法: search_pubmed("new methods", date_range="90")
  2. 关注主要作者: search_pubmed("author_name[au]", sort="pub_date")
  3. 跟踪特定主题: advanced_search 使用您的研究关键字

方法发现

  1. 算法论文: search_pubmed("algorithm[ti] AND your_field")
  2. 软件工具: search_pubmed("software[ti] OR tool[ti] AND bioinformatics")
  3. 基准测试: 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与古基因组学
  • 保护遗传学与生态学

通过强大、精确的搜索开始探索广阔的生物文学世界!