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

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

作者:noahzeidenberg3 星标更新:2025-09-25

项目介绍

NCBI 模型上下文协议 (MCP)

这是一个用于与NCBI数据库交互的Model Context Protocol的Python实现。

安装

  1. 克隆此仓库
  2. 安装依赖项:
    pip install -r requirements.txt
    
  3. 创建一个.env文件并添加您的NCBI API密钥:
    NCBI_API_KEY=your_api_key_here
    NCBI_EMAIL=your_email@example.com
    

运行MCP服务器

python ncbi_mcp.py

使用Cursor/Claude

一旦MCP服务器运行起来,您就可以通过Cursor/Claude中的自然语言与其进行交互。

使用自然语言查询

您可以使用自然语言来执行搜索并检索信息:

tools/call
{
  "name": "nlp-query",
  "arguments": {
    "query": "查找关于BRCA1的研究文章"
  }
}

或者更简单地,直接使用查询:

@ncbi-mcp 查找关于BRCA1的研究文章

自然语言查询示例

这里有一些可以尝试的自然语言查询示例:

  1. 基因功能信息:

    @ncbi-mcp 请总结TNF-alpha的功能
    
  2. 基因组大小和统计信息:

    @ncbi-mcp 酵母菌Saccharomyces cerevisiae的基因组有多大?
    
  3. 组装统计信息:

    @ncbi-mcp 最新的大肠杆菌基因组报告的L50和N50统计数据是什么?
    
  4. 数据集数量:

    @ncbi-mcp 在生物样本数据库中,b16f10小鼠黑色素瘤细胞有多少可用的数据集?
    
  5. 科学文章搜索:

    @ncbi-mcp 查找最新的关于COVID-19疫苗的研究
    
  6. 获取基因信息:

    @ncbi-mcp 告诉我关于BRCA1基因的信息
    
  7. 获取基因组信息:

    @ncbi-mcp 获取人类基因组信息
    

测试

要使用各种查询测试MCP服务器,您可以使用包含的测试文件:

# 测试自然语言查询功能(默认)
.\run_test.bat

# 测试所有工具
.\run_test.bat all

# 测试特定测试文件
.\run_test.bat test_all_tools.jsonl

# 测试高级工具
.\run_test.bat test_high_level_tools.jsonl

测试脚本会:

  1. 在后台启动MCP服务器
  2. 从指定文件发送测试请求
  3. 等待几秒钟以允许处理
  4. 终止服务器并显示输出

这种方法被采用是因为MCP服务器设计为作为服务持续运行。对于手动测试且不自动终止,您可以使用:

# 使用任何测试文件手动运行
type test_nlp_query.jsonl | python ncbi_mcp.py

测试文件包含模拟Cursor/Claude如何与MCP服务器交互的示例JSON-RPC请求。

可用工具

NCBI MCP提供了既能理解自然语言的高级工具,也有用于直接数据库交互的低级工具。

工具使用指南(LLMs)

推荐的工作流程模式

对于大多数生物学查询,从nlp-query开始 —— 它是最智能的工具,能够处理复杂的问题,并自动路由到适当的专用工具。

常见研究工作流程:

  1. 基因分析工作流程:

    • 使用nlp-query回答一般基因问题
    • 使用summarize-gene获取全面的基因信息
    • 使用get_gene_info获取详细的结构化数据
    • 使用ncbi-search + ncbi-fetch进行特定数据库查询
  2. 基因组分析工作流程:

    • 使用genome-stats获取有机体基因组统计信息
    • 使用get_genome_info获取详细的基因组元数据
    • 使用count-datasets探索可用的基因组组装
  3. 文献研究工作流程:

    • 使用nlp-query进行自然语言文献搜索
    • 使用ncbi-search并设置数据库="pubmed"进行精确搜索
  • 使用ncbi-fetch获取完整的出版物详情
  1. 数据集发现工作流程:

    • 使用count-datasets评估数据可用性
    • 使用nlp-query通过自然语言探索数据集
    • 使用ncbi-search进行系统性的数据库探索
  2. E-utilities工作流程(高级):

    • 使用ncbi-info发现可用的数据库
    • 使用ncbi-global-query查看哪些数据库包含您的搜索词
    • 使用ncbi-search在目标数据库中找到特定的UID
    • 使用ncbi-summary获取记录概述信息
    • 使用ncbi-fetch检索完整记录
    • 使用ncbi-link在数据库之间查找相关记录
  3. 跨数据库分析工作流程:

    • 使用ncbi-search查找感兴趣的基因
    • 使用ncbi-link查找相关的蛋白质、结构或文献
    • 使用ncbi-summary获取相关记录的元数据
    • 使用ncbi-fetch检索详细信息

工具选择指南

高级工具(推荐给大多数用户):

  • nlp-query:用于一般的生物学问题、复杂的查询以及当您不确定使用哪个工具时
  • summarize-gene:用于全面的基因分析和理解基因功能
  • genome-stats:用于基因组大小、组装质量及有机体比较
  • count-datasets:用于研究规划和数据可用性评估
  • get_gene_info:用于详细的、结构化的基因信息
  • get_genome_info:用于详细的、结构化的基因组信息

低级E-utilities工具(适用于高级用户):

  • ncbi-search (ESearch):用于具有特定过滤器、布尔运算符和字段限定符的精确数据库搜索
  • ncbi-fetch (EFetch):在搜索后检索完整记录,支持多种格式(GenBank、FASTA、XML)
  • ncbi-summary (ESummary):用于获取文档摘要而不需检索完整记录
  • ncbi-link (ELink):用于在数据库之间查找相关记录(例如,基因到蛋白质,蛋白质到结构)
  • ncbi-info (EInfo):用于发现可用的数据库及其能力
  • ncbi-global-query (EGQuery):用于同时搜索所有数据库
  • ncbi-spell (ESpell):用于搜索词的拼写建议
  • ncbi-citation-match (ECitMatch):用于根据引文信息查找PMID

生物学背景和术语

了解NCBI数据库:

  • Gene:包含基因记录,包括符号、名称、功能和基因组位置
  • Protein:包含蛋白质序列和注释
  • Nucleotide:包含DNA/RNA序列(基因、转录本、基因组区域)
  • PubMed:包含科学文献和出版物
  • BioSample:包含生物样本元数据(组织、细胞系等)
  • BioProject:包含研究项目信息
  • SRA:包含原始测序数据
  • Assembly:包含基因组组装信息

常见的生物学术语:

  • 基因符号:短缩写(如BRCA1、TP53、TNF)
  • 基因ID:唯一的NCBI标识符(如BRCA1的672)
  • 访问号:唯一的序列标识符(如NM_001126114.3)
  • N50/L50:组装质量指标(较大的N50表示更好的组装)
  • 参考基因组:代表物种的高质量基因组
  • 有机体:使用科学名称(Homo sapiens)或通用名称(人类)

搜索策略:

  • 使用具体的基因符号以获得精确的结果
  • 包含有机体名称以避免歧义
  • 使用布尔运算符(AND、OR、NOT)进行复杂搜索
  • 使用字段限定符如[Gene]、[Organism]、[Protein Name]进行有针对性的搜索

高级工具

自然语言查询处理器

tools/call
{
  "name": "nlp-query",
  "arguments": {
    "query": "请总结TNF-alpha的功能"
  }
}

基因汇总器

tools/call
{
  "name": "summarize-gene",
  "arguments": {
    "gene_name": "BRCA1"
  }
}

基因组统计

tools/call
{
  "name": "genome-stats",
  "arguments": {
    "organism": "Escherichia coli"
  }
}

数据集计数器

tools/call
{
  "name": "count-datasets",
  "arguments": {
    "database": "biosample",
    "query": "mouse melanoma b16f10"
  }
}

低级工具

搜索NCBI数据库

tools/call
{
  "name": "ncbi-search",
  "arguments": {
    "database": "pubmed",
    "term": "BRCA1",
    "filters": {
      "organism": "Homo sapiens",
      "date_range": {
        "start": "2020"
      }
    }
  }
}

获取NCBI记录

tools/call
{
  "name": "ncbi-fetch",
  "arguments": {
    "database": "gene",
    "ids": ["70"],
    "rettype": "gb"
  }
}

获取基因信息

tools/call
{
  "name": "get_gene_info",
  "arguments": {
    "gene_id": "672"
  }
}

获取基因组信息

tools/call
{
  "name": "get_genome_info",
  "arguments": {
    "organism": "Homo sapiens",
    "reference": true
  }
}

许可证

Apache-2.0