关于 Ena
Ena 是用于搜索 European Nucleotide Archive 测序记录并查询相关文件的 MCP 服务,面向需要查找公共序列数据的研究人员和数据使用者。它提供 accession 对应的下载链接与校验和。
主要功能
- 01按 ENA 查询语法搜索记录
- 02列出 accession 对应的文件
- 03提供下载链接、大小和 MD5
- 04查询结果类型、字段与记录数
适用场景
- 01按生物或研究项目查找公共测序数据
- 02定位读段文件并核验校验和
MCP 相关
向 MCP 客户端提供 ENA 搜索、文件报告和架构发现工具。可通过 Pipeworx 网关使用,也可作为独立的 stdio MCP 服务运行。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://gateway.pipeworx.io/ena/mcpclaude mcp add --transport http pipeworx-io-ena https://gateway.pipeworx.io/ena/mcp{"mcpServers":{"pipeworx-io-ena":{"type":"http","url":"https://gateway.pipeworx.io/ena/mcp"}}}在 Cursor 中打开{"servers":{"pipeworx-io-ena":{"type":"http","url":"https://gateway.pipeworx.io/ena/mcp"}}}在 VS Code 中打开{"mcpServers":{"pipeworx-io-ena":{"type":"http","url":"https://gateway.pipeworx.io/ena/mcp"}}}{"mcpServers":{"pipeworx-io-ena":{"serverUrl":"https://gateway.pipeworx.io/ena/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
@pipeworx/ena
欧洲核苷酸档案(EMBL-EBI)——公开的原始测序运行、组装和已注释序列记录,可按生物体、研究、平台、采集国家或日期搜索,并为每个运行提供 FASTQ/BAM 下载 URL 和校验和。
属于 Pipeworx——一个将 AI agents 连接到 1879+ 个实时数据源的 MCP 网关。这是独立的非官方集成,与上游提供方没有关联,未获其认可,也非其发布。
工具
ena_search(result?, query?, fields?, sortFields?, limit?)— 使用 ENA 自有的查询语法搜索任意 ENA 结果类型(tax_eq(2697049)、tax_tree(9606) AND library_strategy="WGS"、country="Kenya")。回答“这个生物体/疾病/地点有哪些公开测序数据”。ena_filereport(accession, result?, fields?, limit?)— 获取研究、运行、样本或实验登录号对应的所有数据文件,包括直接下载 URL、字节大小和 MD5。回答“从哪里获取测序读段”。ena_results_types(result?)— 用于发现架构的步骤:列出每种可搜索结果类型及其实时记录数;指定一种类型时,还会列出它接受的所有字段。请在编写查询前调用。
身份验证
无需密钥,也无需注册。
数据源
- https://www.ebi.ac.uk/ena/portal/api/search — 按结果类型进行类型化搜索。
- https://www.ebi.ac.uk/ena/portal/api/filereport — 按登录号列出文件。
- https://www.ebi.ac.uk/ena/portal/api/results — 结果类型及其实时计数。
- https://www.ebi.ac.uk/ena/portal/api/returnFields — 每种结果类型对应的字段。
重新摸索这些问题很费时间(测量日期:2026-09-17)
format=json不是默认格式。 不指定时会返回 TSV,下游会将其读取为单个格式错误的字符串,而不是报错。limit=0表示不设上限,与通常的约定相反。对于read_run,这意味着数千万行。此工具包不会发送 0。- 数值列在线路传输中是字符串(
"read_count":"4547927")。 - 搜索时不指定
fields只会返回登录号列——看起来有效,实际上毫无用处。此工具包会为每种结果类型发送一组默认字段。 filereport遇到不匹配的登录号时会返回 HTTP 200,并在{"message": ...}响应正文中列出可接受的正则表达式。我们会抛出该消息;若返回空列表,则会被误解为“此研究没有任何运行”。
快速开始
添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):
{
"mcpServers": {
"ena": {
"url": "https://gateway.pipeworx.io/ena/mcp"
}
}
}
此端点实际提供的内容
https://gateway.pipeworx.io/ena/mcp 上的 tools/list 会返回上表中的工具,以及 Pipeworx 共享的元工具——ask_pipeworx、discover_tools、search_within、remember/recall 和网关级工具集中的其他工具。因此,你看到的工具数量会多于此表中的数量:目前,单个工具包端点除了列出该工具包自身的工具,还会列出约 30 个共享工具。连接的 initialize 响应会说明其确切范围;对于任意一天的情况,以该响应为准。
这是有意为之,并非意外的多路复用。元工具可让限定范围的连接通过 ask_pipeworx 跨整个目录进行路由,从而回答此工具包未涵盖的问题,而无需添加第二个 MCP 服务。目前无法挂载不包含这些元工具的工具包端点;如果额外的架构信息占用的上下文超出了路由功能带来的价值,不如直接连接完整网关,而不是连接多个工具包端点。
也可以连接完整的 Pipeworx 网关,以直接列出每个工具包的工具,而不只是此工具包的工具:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
两个 URL 都连接到同一个网关和相同的 1879+ 个数据源。唯一的区别是直接列出哪个工具包的工具;从任一端点都可以通过 ask_pipeworx 访问所有工具。
没有 MCP 客户端?通过 HTTP 调用
curl -X POST https://gateway.pipeworx.io/v1/tools/ena_search \
-H 'Content-Type: application/json' \
-d '{"result":"read_run","query":"tax_eq(2697049)","limit":3}'
首次调用无需账户。查看任意工具:GET https://gateway.pipeworx.io/v1/tools/ena_search。查找工具:使用 {"query":"..."} 向 POST https://gateway.pipeworx.io/v1/tools/search_packs 发送请求。
独立运行(无需网关账户)
此软件包也可作为本地 stdio MCP 服务运行,无需 Pipeworx 账户,也无需经由网关往返:
{
"mcpServers": {
"ena": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-ena"]
}
}
}
或者直接运行,确认它能够启动:
npx -y @pipeworx/mcp-ena
它通过 stdin/stdout 使用 MCP,并响应 initialize/tools/list/tools/call,仅提供此软件包的工具,不包含上方网关连接额外提供的共享元工具。相同的源代码,相同的工具,无需 ask_pipeworx 路由。
使用 ask_pipeworx
你也可以用通俗的英语提问,而不是直接调用工具——这既适用于上方的软件包端点,也适用于完整网关:
ask_pipeworx({ question: "your question about Ena data" })
网关会选择合适的工具,并自动填入参数。
更多信息
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。