NCBI数据库搜索工具

一个用于通过E-utilities和NCBI数据集API搜索和访问NCBI数据库的模型上下文协议(MCP)服务器,支持基因、基因组、出版物和数据集的查找,以促进生物医学研究和文献综述。

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

使用说明

NCBI MCP服务器

模型上下文协议(MCP)服务器,用于通过电子实用程序和NCBI数据集API搜索和访问NCBI数据库。查找基因、基因组、出版物和数据集,以支持生物医学研究和文献综述。

优化为:基因和基因组查找、PubMed文献搜索、数据集发现和直接电子工具访问。

特性

  • 自然语言查询:通过以下方式将生物学问题发送到专门的工具 nlp-query
  • 基因分析:总结基因功能、元数据和相关出版物
  • 基因组统计:NCBI数据集中的组装尺寸、N50/L50和基因计数
  • 电子公用事业接入:ESearch、EFetch、ESummary、ELink、EInfo、EGQuery、ESpell、ECitMatch
  • 数据集发现:统计BioSample、SRA、BioProject和其他数据库中的记录
  • 速率限制:遵守NCBI API限制(3转/分无键,10转/分有键)
  • 环境配置:通过环境变量自定义API端点、超时和日志记录

可用工具

高级的

  1. nlp查询 --用于生物查询的自然语言路由器
  2. 总结基因 --全面的基因摘要和出版物
  3. 基因组统计 --生物体的基因组组装统计
  4. 计数数据集 --统计NCBI数据库中的数据集
  5. get_gene_info --NCBI数据集基因元数据
  6. 获取基因组信息 --NCBI数据集基因组元数据
  7. get_orthologs --NCBI正射影像数据集(替换HomoloGene)

电子公用事业

  1. ncbi搜索 --在NCBI数据库中搜索(homologene 此 路 不通; genome/assembly 警告)
  2. ncbi获取 --EFetch完整记录
  3. ncbi摘要 --E摘要文件摘要
  4. ncbi链接 --ELink跨数据库关系
  5. ncbi信息 --EInfo数据库元数据
  6. ncbi全局查询 --EGQuery全局点击次数
  7. ncbi拼写 --ESpell拼写建议
  8. ncbi引文匹配 --ECitMatch引用到PMID查找

看 文档/设备状态.md NAR 2025数据集迁移详细信息。

安装

你需要Python 3.11或更高版本。我们建议 紫外线.

1.使用 uvx 立即奔跑

发布到PyPI后:

uvx ncbi-mcp

或者从这个存储库:

uvx --from . ncbi-mcp

2.MCP客户端配置(mcp.json)

{
  "mcpServers": {
    "ncbi-mcp": {
      "command": "uvx",
      "args": ["ncbi-mcp"],
      "env": {
        "NCBI_API_KEY": "your_ncbi_api_key_here",
        "NCBI_EMAIL": "your_email@example.com"
      }
    }
  }
}

对于当地发展:

{
  "mcpServers": {
    "ncbi-mcp": {
      "command": "uv",
      "args": ["run", "--directory", "path/to/ncbi-mcp", "ncbi-mcp"]
    }
  }
}

3.用管道安装

pip install .

4.克隆并在本地运行

git clone https://github.com/noahzeidenberg/ncbi-mcp.git
cd ncbi-mcp
cp .env.example .env
# Edit .env with your NCBI_API_KEY and NCBI_EMAIL
uv sync
uv run ncbi-mcp

配置

复制 .env.example 到 .env 并自定义:

NCBI_API_KEY=your_ncbi_api_key_here
NCBI_EMAIL=your_email@example.com
NCBI_TIMEOUT=30.0
NCBI_SEARCH_LIMIT=20
NCBI_MAX_RPS=10.0
LOG_LEVEL=INFO

在注册NCBI API密钥 NCBI帐户设置。所有电子公用事业请求都需要电子邮件地址 NCBI使用指南.

示例用例

  • 总结BRCA1功能: summarize-gene(gene_name="BRCA1")
  • 人类基因组统计: genome-stats(organism="Homo sapiens")
  • 计算癌症SRA数据集: count-datasets(database="sra", query="breast cancer")
  • 搜索PubMed: ncbi-search(database="pubmed", term="COVID-19 vaccine")
  • 全球数据库概述: ncbi-global-query(term="BRCA1")
  • 修正搜索拼写: ncbi-spell(term="asthmaa", database="pubmed")

测试

uv sync --extra test
uv run pytest

数据引用和归因

在出版物中使用NCBI数据时,请引用原始记录和登录号。对于PubMed文章,包括PMIDs。对于序列和基因数据,请引用相关的NCBI数据库。

例子:

“基因和基因组数据从NCBI数据库中检索(https://www.ncbi.nlm.nih.gov/)使用文中引用的登录号。"

免责声明

该工具提供对NCBI数据库的访问,但与NCBI或国家医学图书馆没有正式联系或认可。数据质量和准确性由原始提交者负责。

许可证

阿帕奇-2.0