NCBI-Datasets-MCP-Server:基于 Model Context Protocol 的生物数据访问服务项目

可用于便捷访问NCBI的基因组、分类学和生物学数据,提供31个专业工具,涵盖基因组、基因、分类学等9大生物数据操作类别,支持URI直接访问,采用TypeScript实现,具备限流和缓存优化。【此简介由AI生成】

Branch1Tags0
FilesLast commitLast update
1 year ago
8 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago

NCBI Datasets MCP Server Logo

非官方 NCBI Datasets MCP 服务器

这是一个模型上下文协议(MCP)服务器,提供对 NCBI Datasets API 的全面访问。该服务器通过 31 个专用工具,实现与 NCBI 海量基因组、分类学和生物学数据的无缝集成。

Augmented Nature 开发

功能特点

  • 31 个综合工具,涵盖 NCBI Datasets 的所有主要功能
  • 9 个组织有序的生物数据操作类别
  • 资源模板,支持基于 URI 的直接数据访问
  • 完整的 TypeScript 实现,带有完善的错误处理
  • 速率限制和缓存机制,确保最佳性能
  • 环境变量配置,用于 API 密钥管理

安装说明

npm install
npm run build

配置

环境变量

  • NCBI_API_KEY(可选):您的NCBI API密钥,用于更高的速率限制和优先访问

MCP配置

添加到您的MCP设置中:

{
  "mcpServers": {
    "ncbi-datasets-server": {
      "command": "node",
      "args": ["/path/to/ncbi-datasets-server/build/index.js"],
      "env": {
        "NCBI_API_KEY": "your_api_key_here"
      }
    }
  }
}

可用工具

🧬 基因组操作

  • search_genomes - 按生物体、关键词或标准搜索基因组组装
  • get_genome_info - 获取特定基因组组装的详细信息
  • get_genome_summary - 获取基因组组装的汇总统计数据

🧬 基因操作

  • search_genes - 按符号、名称、生物体或位置搜索基因
  • get_gene_info - 获取特定基因的详细信息
  • get_gene_sequences - 检索特定基因的序列

🏷️ 分类学操作

  • search_taxonomy - 按生物体名称搜索分类学信息
  • get_taxonomy_info - 获取分类单元的详细分类学信息
  • get_organism_info - 获取生物体特定信息和数据集

🏗️ 组装操作

  • search_assemblies - 通过详细筛选搜索基因组组装
  • get_assembly_info - 获取组装的详细元数据和统计信息
  • get_assembly_reports - 获取组装质量报告和验证信息
  • download_genome_data - 获取基因组数据文件的下载 URL
  • batch_assembly_info - 获取多个组装的信息

🦠 病毒操作

  • search_virus_genomes - 搜索病毒基因组组装
  • get_virus_info - 获取病毒基因组的详细信息

🧪 蛋白质操作

  • search_proteins - 按名称或功能搜索蛋白质序列
  • get_protein_info - 获取特定蛋白质的详细信息

📝 注释操作

  • get_genome_annotation - 获取组装的注释信息
  • search_genome_features - 搜索特定的基因组特征

🔬 比较基因组学

  • compare_genomes - 比较两个或多个基因组组装
  • find_orthologs - 跨生物体查找同源基因

🧬 序列操作

  • get_sequence_data - 检索基因组/基因/蛋白质的序列数据
  • blast_search - 针对 NCBI 数据库执行 BLAST 搜索

🌳 系统发育操作

  • get_phylogenetic_tree - 获取生物体的系统发育树数据
  • get_taxonomic_lineage - 获取完整的分类学谱系

📊 统计操作

  • get_database_stats - 获取 NCBI Datasets 内容的统计信息
  • search_by_bioproject - 通过 BioProject 登录号搜索数据集
  • search_by_biosample - 通过 BioSample 登录号搜索数据集

✅ 质量控制

  • get_assembly_quality - 获取基因组组装的质量指标
  • validate_sequences - 验证序列数据并检查问题

使用示例

基因组分析

// Search for E. coli genomes
{
  "tool": "search_genomes",
  "arguments": {
    "tax_id": 511145,
    "assembly_level": "complete",
    "max_results": 10
  }
}

// Get detailed genome information
{
  "tool": "get_genome_info",
  "arguments": {
    "accession": "GCF_000005845.2",
    "include_annotation": true
  }
}

// Get genome summary statistics
{
  "tool": "get_genome_summary",
  "arguments": {
    "accession": "GCF_000005845.2"
  }
}

基因研究

// Search for BRCA1 gene
{
  "tool": "search_genes",
  "arguments": {
    "gene_symbol": "BRCA1",
    "organism": "Homo sapiens",
    "max_results": 5
  }
}

// Get detailed gene information
{
  "tool": "get_gene_info",
  "arguments": {
    "gene_id": 672,
    "include_sequences": true
  }
}

// Get gene sequences
{
  "tool": "get_gene_sequences",
  "arguments": {
    "gene_id": 672,
    "sequence_type": "transcript"
  }
}

分类学分析

// Search taxonomy by organism name
{
  "tool": "search_taxonomy",
  "arguments": {
    "query": "Escherichia coli",
    "max_results": 10
  }
}

// Get detailed taxonomic information
{
  "tool": "get_taxonomy_info",
  "arguments": {
    "tax_id": 511145,
    "include_lineage": true
  }
}

// Get organism information
{
  "tool": "get_organism_info",
  "arguments": {
    "organism": "Escherichia coli"
  }
}

组装操作

// Search assemblies with filtering
{
  "tool": "search_assemblies",
  "arguments": {
    "query": "human",
    "assembly_level": "chromosome",
    "assembly_source": "refseq",
    "max_results": 20
  }
}

// Get assembly information
{
  "tool": "get_assembly_info",
  "arguments": {
    "assembly_accession": "GCF_000001405.40",
    "include_annotation": true
  }
}

// Batch assembly lookup
{
  "tool": "batch_assembly_info",
  "arguments": {
    "accessions": ["GCF_000001405.40", "GCF_000005825.2", "GCF_000002305.1"]
  }
}

比较基因组学

// Compare multiple genomes
{
  "tool": "compare_genomes",
  "arguments": {
    "accessions": ["GCF_000005845.2", "GCF_000001405.40"],
    "comparison_type": "basic_stats",
    "include_orthologs": true
  }
}

// Find orthologous genes
{
  "tool": "find_orthologs",
  "arguments": {
    "gene_symbol": "BRCA1",
    "source_organism": "Homo sapiens",
    "target_organisms": ["Mus musculus", "Rattus norvegicus"],
    "similarity_threshold": 80
  }
}

病毒研究

// Search viral genomes
{
  "tool": "search_virus_genomes",
  "arguments": {
    "virus_name": "SARS-CoV-2",
    "host": "Homo sapiens",
    "max_results": 50
  }
}

// Get viral genome information
{
  "tool": "get_virus_info",
  "arguments": {
    "accession": "NC_045512.2",
    "include_proteins": true,
    "include_metadata": true
  }
}

资源模板

服务器提供资源模板以实现直接数据访问:

  • ncbi://genome/{accession} - 完整基因组组装信息
  • ncbi://gene/{gene_id} - 带注释的基因信息
  • ncbi://taxonomy/{tax_id} - 分类学分类和谱系
  • ncbi://assembly/{assembly_accession} - 组装元数据和统计信息
  • ncbi://search/{data_type}/{query} - 指定查询的搜索结果

API 速率限制

  • 无 API 密钥:每秒 3 个请求
  • 有 API 密钥:每秒 10 个请求,且享有优先访问权

要获取 API 密钥,请访问:https://www.ncbi.nlm.nih.gov/account/settings/

错误处理

服务器实现了全面的错误处理机制:

  • 网络错误:采用指数退避策略自动重试
  • 速率限制:智能请求排队和流量控制
  • 无效参数:清晰的验证错误消息
  • API 错误:包含上下文的详细错误报告

数据来源

本服务器访问以下来源的数据:

  • NCBI Datasets API v2:主要基因组和组装数据
  • NCBI Taxonomy:分类学分类和谱系
  • NCBI Gene:基因注释和序列
  • NCBI Assembly:组装元数据和质量指标
  • NCBI BioProject/BioSample:项目和样本信息

许可证

MIT 许可证 - 详情参见 LICENSE 文件。

贡献

欢迎贡献!请随时提交问题、功能请求或拉取请求。

支持

有关以下方面的问题:

  • 服务器功能:在本仓库中提交 issue
  • NCBI 数据:参考 NCBI Datasets 文档
  • API 访问:联系 NCBI 支持以咨询 API 相关问题

Introduction

可用于便捷访问NCBI的基因组、分类学和生物学数据,提供31个专业工具,涵盖基因组、基因、分类学等9大生物数据操作类别,支持URI直接访问,采用TypeScript实现,具备限流和缓存优化。【此简介由AI生成】

Customize your domain