bioportal_search

Pack: bioportal · Endpoint: https://gateway.pipeworx.io/bioportal/mcp

No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/bioportal_search for the schema, then POST the same URL with its arguments for the data.

Search ~1,300 biomedical ontologies for a term and get back the matching classes with their preferred label, synonyms, definition, ontology and permanent class IRI. AUTHORITATIVE for mapping free text to a coded clinical concept (NCIT, SNOMEDCT, LOINC, RXNORM, MESH, HPO, ICD10CM) — these are the curated terminologies themselves, not a description of them. Restrict with ontologies when you know which vocabulary you want.

Parameters

NameTypeRequiredDescription
querystringyesTerm to search for (e.g. “melanoma”, “metformin”)
ontologiesstringnoComma-separated ontology acronyms to restrict to (e.g. “NCIT,DOID,SNOMEDCT”)
exact_matchbooleannoOnly exact label/synonym matches (default false)
require_definitionsbooleannoOnly return classes that carry a definition
limitnumbernoMax classes to return, 1-100 (default 25)

Example call

Arguments

{
  "query": "melanoma",
  "ontologies": "NCIT,DOID",
  "limit": 3
}

curl

curl -X POST https://gateway.pipeworx.io/bioportal/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"bioportal_search","arguments":{"query":"melanoma","ontologies":"NCIT,DOID","limit":3}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('bioportal_search', {
  "query": "melanoma",
  "ontologies": "NCIT,DOID",
  "limit": 3
});

Connect

Add this to your MCP client config, or use one-click install buttons:

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

See Getting Started for client-specific install steps.

Regenerated from source · build September 18, 2026