Human Phenotype Ontology Term Search: Find HP Ids by Phenotype Name or Synonym
jaxontologyhp/search-terms
Searches the Human Phenotype Ontology (HPO) by phenotype name, synonym or id and returns the matching terms, each with its HP id, label, definition, editor comment, synonyms, cross-references, descendant count and translations. Paged with a zero-based page number. The query takes letters, digits, spaces and - ' : , only, at least 3 characters. A query that matches nothing returns an empty list. Data from the Human Phenotype Ontology (human-phenotype-ontology.org), the current release served by ontology.jax.org, passed through unaltered and served by Eden Engine; not an official HPO or Jackson Laboratory product.
Price
$0.0026 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.
Data source
Data from the Human Phenotype Ontology (HPO), served by the Jackson Laboratory ontology service at ontology.jax.org (current release; the service reports no version). This service is using the Human Phenotype Ontology. Find out more at http://www.human-phenotype-ontology.org. Please cite: Köhler S, et al. The Human Phenotype Ontology project: linking molecular biology and disease through phenotype data. Nucleic Acids Res. 2014;42(D1):D966-D974, doi:10.1093/nar/gkt1026. Content passed through unaltered. Served by Eden Engine; not an official HPO or Jackson Laboratory product.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "jaxontologyhp/search-terms" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "jaxontologyhp/search-terms" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "jaxontologyhp/search-terms", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "jaxontologyhp/search-terms", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0026 |
- Updated
- Oct 21, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"query"
],
"properties": {
"page": {
"type": "integer",
"minimum": 0,
"description": "Zero-based page number: 0 is the first page. The service default is 0."
},
"query": {
"type": "string",
"pattern": "^[a-zA-Z0-9 '\\-:,]+$",
"maxLength": 250,
"minLength": 3,
"description": "What to find: a phenotype name, synonym or id, 3 to 250 characters, letters, digits, spaces and - ' : , only. For example seizure or short stature."
},
"page_size": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Hits per page, 1 to 100. The service default is 10."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"terms",
"totalCount"
],
"properties": {
"terms": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The HPO term id, HP: and seven digits."
},
"name": {
"type": "string",
"description": "The term's English label."
},
"xrefs": {
"type": "array",
"items": {
"type": "string"
},
"description": "Cross-references to other vocabularies."
},
"comment": {
"type": "string",
"description": "An editor's comment; often empty."
},
"synonyms": {
"type": "array",
"items": {
"type": "string"
}
},
"definition": {
"type": "string",
"description": "The term's definition; empty for a few terms."
},
"translations": {
"type": [
"array",
"null"
],
"items": {
"type": "object",
"additionalProperties": true
},
"description": "Translations of the term's name and definition: `language` (a two-letter code), `name`, `definition` and `status` (OFFICIAL or CANDIDATE). Can be null on search hits."
},
"descendantCount": {
"type": "integer",
"description": "How many terms lie below this one in the hierarchy."
},
"publicationReferences": {
"type": "array",
"items": {
"type": "string"
},
"description": "PubMed references, PMID:..."
}
},
"additionalProperties": true
}
},
"totalCount": {
"type": "integer"
}
},
"description": "The service's search object. `totalCount` appeared capped at 100 in testing, so do not rely on it as a full match count; page until a page comes back short.",
"additionalProperties": true
}