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
