mcpField
B
Bioportal

Bioportal

远程服务
pipeworx.io健康医疗05 天前更新

关于 Bioportal

Bioportal 是面向生物医学研究与临床术语工作的 MCP 服务,可查询 NCBO BioPortal 的本体及概念。它支持术语检索、类别详情和跨本体映射,并可通过 Pipeworx 网关或本地 stdio 使用。

主要功能

  1. 01跨约 1,300 个生物医学本体搜索术语
  2. 02查看本体目录与类别记录
  3. 03查询跨本体概念映射
  4. 04返回标签、同义词、定义及 CUI

适用场景

  1. 01将自由文本术语匹配为编码概念
  2. 02检查某个本体类别的完整信息
  3. 03查找其他本体中的等价概念

MCP 相关

作为 MCP 服务,它向客户端提供本体搜索、目录查询、类别查询和映射工具。可连接 Pipeworx 网关,也可作为本地 stdio 服务运行。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://gateway.pipeworx.io/bioportal/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

45
参数类型必填说明
qstring否question 的别名。
askstring否question 的别名。
textstring否question 的别名。
inputstring否question 的别名。
packsarray否可选。将路由限制为这些包的 slug(例如 ["sec-form-d","sec-13f"]),路由器随后只会从这些包中的工具进行选择。省略则使用默认的完整目录路由。Slug 可从 list_packs / search_packs / https://pipeworx.io/directory 获取;未列出或未知的 slug 会被忽略,并在 _meta.pack_scope.ignored 中列出。如果没有任何 slug 能匹配问题,则会在整个目录中路由,并设置 _meta.pack_scope.full_catalog:true(绝不会返回空答案)。
querystring否question 的别名。
promptstring否question 的别名。
messagestring否question 的别名。
questionstring是用自然语言表达的问题或请求。支持 query、q、prompt、text、input、ask、message 作为别名。

详细介绍

@pipeworx/bioportal

在 NCBO BioPortal 收录的约 1,300 种生物医学本体中搜索术语、查找类并进行跨本体映射,包括 NCIT、SNOMEDCT、LOINC、RXNORM、MESH、HPO、ICD10CM、GO 等。

属于 Pipeworx — 一个将 AI Agent 连接到 1875+ 个实时数据源的 MCP 网关。这是一个独立的非官方集成,与上游提供方无关联、未获其认可,也不是由其发布。

工具

  • bioportal_search(query, ontologies?, exact_match?, require_definitions?, limit?) — 将自由文本转换为编码概念,并返回首选标签、同义词、定义、CUI 和永久类 IRI。
  • bioportal_ontologies(filter?, limit?) — 本体目录,让你在搜索前查找缩写。
  • bioportal_class(ontology, class_id) — 单个类的完整记录。
  • bioportal_mappings(ontology, class_id, to_ontology?, limit?) — 其他本体中的 等价概念,以及映射方法。

身份验证

BioPortal 要求每个请求都携带 apikey。此工具包中的解析顺序如下:

  1. 调用方提供的 _apiKey(免费密钥,https://bioportal.bioontology.org/accounts/new),
  2. 否则使用 NCBO 在其 REST 文档中发布的演示密钥,该密钥由所有用户共享,并受相应的速率限制。

每个响应都包含 key_source,以便调用方查看使用了哪个密钥。

配置平台密钥时(PLATFORM_BIOPORTAL_KEY),只需一行更改:在 workers/gateway/src/pack-manifest.json 中此工具包对应的条目添加 "platformKeyEnv": "PLATFORM_BIOPORTAL_KEY",然后重新运行 node scripts/sync-pack-manifest.mjs。网关随后会将其注入为 _apiKey, 并且不再使用演示密钥回退方案。目前特意没有声明此项:网关中的 keyBlockedTools() 会将声明了未设置的 platformKeyEnv 的工具包中的每个工具标记为密钥受阻,这会导致目前对所有人都可用的工具包无法使用。

数据源

以下细节可能会让你白白花上一个下午:

  • **display_links=false 会让 /ontologies 的响应大小从 4.4 MB 降至 312 KB。**在此处使用它。
  • 但不要在 /search 上设置它:搜索结果中的本体缩写只能从 links.ontology 推导得出。其 @id 是一个 purl (http://purl.bioontology.org/ontology/MESH/D008545),其路径段并不总是缩写。
  • 类 IRI 必须作为单个路径段进行 URL 编码 — 包括 # 和 /,例如: /ontologies/NCIT/classes/http%3A%2F%2Fncicb.nci.nih.gov%2Fxml%2Fowl%2FEVS%2FThesaurus.owl%23C3224。
  • 映射记录会在 classes 中列出两端,包括你查询的类。请选择本体不是源本体的一端,否则每个映射看起来都会像是自映射。
  • **并非每个概念都能映射到大型术语体系。**NCIT 中的“Melanoma”(C3224)有 114 个映射,但没有一个映射到 SNOMEDCT — 目标本体包括 CADSR-VS、RH-MESH、MESH、MEDDRA、LOINC 以及许多其他本体。to_ontology 筛选结果为空是有效结果,并非失败。

范围说明,避免重复构建

ols 工具包涵盖 EBI 的 Ontology Lookup Service — 这是一个不同的仓库,收录了另一组偏向 OBO 的本体。BioPortal 收录的是美国临床术语体系。cbioportal 与癌症基因组学有关,尽管名称相似,但两者并无关联。

快速开始

添加到你的 MCP 客户端(Claude Desktop、Cursor、Windsurf 等):

{
  "mcpServers": {
    "bioportal": {
      "url": "https://gateway.pipeworx.io/bioportal/mcp"
    }
  }
}
此端点实际提供的内容

tools/list 在 https://gateway.pipeworx.io/bioportal/mcp 返回上表中的工具,以及共享的 Pipeworx 元工具——ask_pipeworx、 discover_tools、search_within、remember/recall 和网关范围内的其他工具。因此,你看到的工具数量会多于此表:单个工具包端点目前会列出约 30 个共享工具,以及该工具包自己的工具。连接的 initialize 响应会说明确切范围,是当天最权威的答案。

这是有意为之,并非意外的多路复用。元工具可让范围受限的连接回答此工具包无法涵盖的问题——通过 ask_pipeworx 跨整个目录进行路由——无需添加第二个 MCP 服务。目前无法挂载不包含这些元工具的工具包端点;如果额外的架构占用的上下文比路由带来的价值更大,请连接一次完整网关,而不是连接多个工具包端点。

或者连接完整的 Pipeworx 网关,直接列出每个工具包的工具,而不只是此工具包的工具:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

两个 URL 都连接到同一个网关和相同的 1875+ 个数据源。唯一的区别在于哪些工具包的工具会被直接列出;从任一端点都可以通过 ask_pipeworx 访问所有工具。

没有 MCP 客户端?通过 HTTP 调用

curl -X POST https://gateway.pipeworx.io/v1/tools/bioportal_search \
  -H 'Content-Type: application/json' \
  -d '{"query":"melanoma","ontologies":"NCIT,DOID","limit":3}'

首次调用无需账户。检查任意工具:GET https://gateway.pipeworx.io/v1/tools/bioportal_search。查找工具包:使用 {"query":"..."} 向 https://gateway.pipeworx.io/v1/tools/search_packs 发送 POST 请求。

独立运行(无需网关账户)

此软件包也可作为本地 stdio MCP 服务运行——无需 Pipeworx 账户,也无需经过网关往返:

{
  "mcpServers": {
    "bioportal": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-bioportal"]
    }
  }
}

或者直接运行以确认它能启动:

npx -y @pipeworx/mcp-bioportal

它通过 stdin/stdout 使用 MCP,并仅针对此工具包的工具响应 initialize/tools/list/tools/call——不包含上述网关连接所添加的任何共享元工具。使用相同的源代码和工具,但没有 ask_pipeworx 路由。

使用 ask_pipeworx

你可以不用直接调用工具,而是用通俗英语提问——在上述工具包端点和完整网关上都可以使用:

ask_pipeworx({ question: "your question about Bioportal data" })

网关会自动选择合适的工具并填入参数。

更多信息

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。