返回市场
国家生物技术信息中心-MCP服务器

国家生物技术信息中心-MCP服务器

作者:vitorpavinato6 星标更新:2025-06-29

项目介绍

NCBI 文献检索 MCP 服务器

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

功能

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

快速开始

先决条件

设置(5分钟)

  1. 创建并初始化项目

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

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

  2. 创建项目结构

    mkdir -p src/ncbi_mcp_server
    # 将 server.py 代码保存为 src/ncbi_mcp_server/server.py
    
  3. 安装依赖项

    poetry install
    
  4. 测试服务器

    poetry run python src/ncbi_mcp_server/server.py
    
  5. 配置 Claude Desktop

    编辑你的 Claude Desktop 配置文件:

    • macOS~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows%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. 重启 Claude Desktop 并开始搜索!

替代设置方法

<details> <summary>点击展开替代安装方法</summary>

Conda 环境

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
</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_pubmed

PubMed 数据库的主要搜索工具

  • query:搜索词(支持如 [ti] 标题、[au] 作者、[mh] MeSH 术语的字段标签)
  • max_results:结果数量(1-100,默认:20)
  • sort:排序方式 "relevance"、"pub_date"、"author" 或 "journal"
  • date_range:限制到最近的文章("30"、"90"、"365"、"1095" 天)

示例:

  • "CRISPR[ti] AND evolution" - CRISPR 在标题中 AND 进化在任何地方
  • "phylogenetic analysis[mh]" - 使用 MeSH 术语进行系统发育分析
  • "computational biology AND machine learning" - 布尔搜索

get_article_details

获取特定文章的完整信息

  • pmids:PubMed ID 列表(最多 50 个)

返回完整的摘要、作者列表、MeSH 术语、DOI 和出版细节

search_mesh_terms

查找标准化的医学主题词表

  • term:在 MeSH 数据库中搜索的术语

有助于发现相关概念并提高搜索精度

get_related_articles

发现与特定论文相关的文章

  • pmid:参考文章的 PubMed ID
  • max_results:相关文章的数量(1-50,默认:1_0)

非常适合文献综述和找到相关研究

advanced_search

具有多个条件的复杂搜索

  • terms:要组合的搜索词列表
  • operator:"AND"、"OR" 或 "NOT" 组合词
  • authors:作者姓名列表
  • journals:期刊名称列表
  • publication_types:"Research Article"、"Review"、"Meta-Analysis" 等
  • date_from/date_to:YYYY/MM/DD 格式的日期范围
  • max_results:结果数量(1-100,默认:20)

分析与性能监控

NCBI MCP 服务器包括全面的分析工具,帮助您理解研究模式并优化性能。

分析工具

get_analytics_summary

获取全面的分析概述

"显示我的研究分析摘要"

返回:

  • 总请求次数和运行时间
  • 操作细分(搜索、获取等)
  • 缓存性能指标
  • 最近活动和错误率
  • 系统健康指标

get_detailed_metrics

特定时间段的详细性能指标

"获取过去 24 小时的详细指标"
  • hours:要分析的时间段(默认:24)
  • 操作特定的性能数据
  • 时间线分析,每小时细分
  • 每个操作的错误率和响应时间

reset_analytics

重置分析数据(谨慎使用)

"重置所有分析数据"

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

跟踪内容

使用模式:

  • 搜索查询及其频率
  • 最常用的操作
  • 唯一与重复查询
  • 高峰使用时段

性能指标:

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

研究洞察:

  • 流行的搜索词和模式
  • 研究工作流程分析
  • 文献访问模式
  • 访问最多的期刊和主题

部署

快速开始

  1. 配置凭据:

    cp .env.example .env
    # 编辑 .env 文件,填写您的 NCBI 邮件和 API 密钥
    
  2. 选择部署方法:

    # 本地开发
    ./deploy.sh local
    
    # Docker 部署
    ./deploy.sh docker
    
    # 生产部署
    ./deploy.sh production
    

部署选项

1. 本地开发

适合开发和测试:

poetry install
poetry run python -m src.ncbi_mcp_server.server

2. Docker 部署

大多数用户推荐,有两个选项:

完整设置(推荐):

# 复制并配置环境
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

完整设置包括:

简单设置包括:

  • 仅 NCBI MCP 服务器容器
  • 内存缓存(无持久性)

3. 生产部署

适用于生产环境:

# 配置生产设置
cp .env.production .env
# 编辑生产值

# 部署
./deploy.sh production

监控

Docker 日志:

docker-compose logs -f ncbi-mcp-server

缓存监控:

健康检查:

# 测试服务器健康状况
curl http://localhost:8000/health

# 通过 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 中:
# 替换这一行:ncbi_client = NCBIClient()
# 用:
ncbi_client = NCBIClient(
    email="your.email@university.edu",
    api_key="your_api_key_here"
)

速率限制

  • 无 API 密钥:3 请求/秒
  • 有 API 密钥:10 请求/秒
  • 有 API 密钥 + 邮件:批量请求的更高限制

开发工作流

Poetry 命令

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])

研究工作流程示例

文献综述工作流程

  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 解析错误:

获取帮助

贡献

此 MCP 服务器旨在随着研究社区的发展而成长。增强的想法:

  • 额外的数据库:PMC、BioRxiv、NCBI 以外的数据库
  • 引文分析:跟踪论文影响和引文网络
  • 导出格式:BibTeX、EndNote、RIS 用于参考管理器
  • 保存搜索:持久搜索配置文件和警报
  • 全文整合:当通过 PMC 提供时

许可

此项目是开源的。根据您的机构政策自由修改和分发。


适用于研究人员:

  • 进化生物学及系统发育
  • 计算生物学及生物信息学
  • 分子进化及群体遗传学
  • 比较基因组学及蛋白质组学
  • 系统生物学及网络分析
  • 生物统计学及数学生物学
  • 古代 DNA 及古基因组学
  • 保护遗传学及生态学

开始探索强大的、精确的生物文献世界!