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
| Name | Type | Required | Description |
|---|---|---|---|
query | string | yes | Term to search for (e.g. “melanoma”, “metformin”) |
ontologies | string | no | Comma-separated ontology acronyms to restrict to (e.g. “NCIT,DOID,SNOMEDCT”) |
exact_match | boolean | no | Only exact label/synonym matches (default false) |
require_definitions | boolean | no | Only return classes that carry a definition |
limit | number | no | Max 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.