ENA MCP服务器

一个模型上下文协议(MCP)服务器,将欧洲核苷酸档案(ENA)的REST API暴露为可调用的工具,供AI代理使用,以防止AI幻觉并实时获取验证数据。

  • by isalawal
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 isalawal/ena-mcp-gscos

使用说明

ENA MCP服务器

一个模型上下文协议(MCP)服务器,它将欧洲核苷酸档案(ENA)REST API作为AI代理的可调用工具公开。

作为EMBL-EBI的GSoC 2026概念验证而构建。

现场演示

在这里试试:https://isalawal.github.io/ena-mcp-gscos/demo.html

它的作用

通过强制AI代理在响应之前从ENA获取真实的验证数据来防止AI幻觉。该试剂无法发明基因组记录,因为每个反应都是实时从ENA中提取的。

特性

  • 涵盖核心ENA端点的7个工作MCP工具
  • 所有工具的输入验证
  • 缓存层重复查询从内存返回5分钟
  • 速率限制每秒最多5个请求,以避免达到ENA限制
  • 处理网络故障时出错,返回干净的消息,而不是崩溃
  • 用时间戳记录每个工具调用和ENA请求
  • Docker支持只需一个命令即可在任何地方运行
  • 7项pytest测试全部通过
  • Web演示任何人都可以从浏览器查询ENA

工具

工具 端点 描述
search_ena /search 在ena中搜索基因组记录
count_ena /count 计数与查询匹配的记录
get_searchable_fields /searchFields 获取可以筛选的字段
get_turn_fields /returnFields 获取可以检索的字段
get_result_types /results 列出ENA中的所有数据类型
get_access_types /accessTypes 获取有效的登录格式
get_controlled vocab /controlled vocab 获取字段的有效值

设置

pip安装-r要求.txt python服务器.py

使用Docker运行

docker build-t ena mcp服务器。 docker运行ena mcp服务器

运行测试

pytest test_server.py-v

查询示例

搜索人类样本:tax_eq(9606),result_type:样本 计数小鼠测序运行:tax_eq(10090),result_type:read_run 获取有效的仪器平台:字段:instrument_platform

项目结构

ena_search.py概念验证ena API客户端 带有7个工具的server.py生产MCP服务器 test_server.py pytest测试套件 基于demo.html浏览器的演示,适用于所有7个工具 Dockerfile容器设置 requirements.txt依赖项

专为

谷歌代码之夏2026-EMBL-EBI 项目:将ENA REST服务子集作为MCP公开 导师:Senthilnathan Vijayaraja github:https://github.com/isalawal/ena-mcp-gscos