hpo-link
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HPO_LINK_DATA__AUTO_BOOTSTRAP | No | Set to 'true' to enable automatic building from source if prebuilt DB URL is absent. Default is 'true'. | true |
| HPO_LINK_DATA__PREBUILT_DB_URL | No | URL of a prebuilt SQLite database artifact (optional). If not set, the server builds automatically. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_server_capabilitiesA | Return the hpo-link discovery surface: identity/build/HPO release, the tool list WITH call signatures, response modes, recommended workflows, the xref prefixes, the error taxonomy, and limits. detail='full' adds the full policy notes. Call this first in a cold session, or read hpo://tools / hpo://capabilities. Signature: get_server_capabilities(detail=). |
| get_diagnosticsA | Report the local HPO index status: whether the data is built, the loaded HPO and HPOA release versions, term/obsolete/closure/xref/annotation counts, when it was built, and a runtime block (request/error counts and latency percentiles p50/p95/p99). Use this to confirm freshness or diagnose an upstream_unavailable error (an unbuilt/unavailable local index). Signature: get_diagnostics(). |
| resolve_termA | Resolve a phenotype label, synonym, HP id (HP:0000118), or external cross-reference CURIE (UMLS:C0000737, SNOMEDCT_US:263681008, ...) to the canonical HPO term {hpo_id, name, match_type}. An ambiguous label returns ambiguous_query with candidates (each {hpo_id, name}); an obsolete HP id resolves with success:true, obsolete:true, and its successor in replaced_by. This is the recommended first step — resolve any query to a canonical HP id before calling get_term. Signature: resolve_term(query, response_mode=). |
| search_termsA | Full-text search over HPO phenotype term names, synonyms, and definitions (FTS, relevance-ranked). Returns {hpo_id, name, score} -- compact adds a short definition_snippet; standard/full add the complete definition -- plus a pagination block {total, returned, limit, offset, truncated, next_offset}. When truncated, next_commands carries a forward-page step (offset advanced) and a widen step. Obsolete terms are excluded unless include_obsolete=true. Signature: search_terms(query, limit=, offset=, include_obsolete=, response_mode=). |
| get_termA | Return an HPO phenotype term record: definition, synonyms (exact/related/broad/narrow), alt_ids, subsets, comments, cross-references, direct parents and children, and obsolescence (replaced_by). The term accepts an HP id, a label/synonym, or an external xref CURIE (resolved first). Pass fields=['synonyms', 'definition'] for a sparse projection. Note on synonyms shape: compact (default) returns synonyms as plain strings; standard/full return {text, scope} objects. Signature: get_term(hpo_id, response_mode=, fields=). |
| get_term_ancestorsA | Return all transitive is_a ancestors (broader phenotype terms) of an HPO term via the precomputed closure, with a pagination block {total, returned, limit, offset, truncated, next_offset}. When truncated, next_commands carries a forward-page step (offset) so you can walk a >limit closure without re-sending rows. Use get_term_parents for only the immediate parents. Signature: get_term_ancestors(hpo_id, limit=, offset=, response_mode=). |
| get_term_descendantsA | Return all transitive is_a descendants (more specific phenotype terms) of an HPO term via the precomputed closure, with a pagination block {total, returned, limit, offset, truncated, next_offset}. When truncated, next_commands carries a forward-page step (offset) so you can walk a >limit closure without re-sending rows. Use get_term_children for only the immediate children. Signature: get_term_descendants(hpo_id, limit=, offset=, response_mode=). |
| get_term_parentsA | Return the direct is_a parents (immediate broader phenotype terms) of an HPO term. Use get_term_ancestors for the full transitive set. Signature: get_term_parents(hpo_id, response_mode=). |
| get_term_childrenA | Return the direct is_a children (immediate more-specific phenotype terms) of an HPO term. Use get_term_descendants for the full transitive set. Signature: get_term_children(hpo_id, response_mode=). |
| resolve_xrefA | Resolve an external cross-reference CURIE (UMLS/SNOMEDCT_US/NCIT/MEDDRA/ICD-10/ICD-9/MONDO/DOID/ORPHA) back to the HPO term(s) that cross-reference it. Returns matches[] plus a pagination block {total, returned, limit, offset, truncated, next_offset}; when truncated, next_commands carries a forward-page step (offset). Signature: resolve_xref(xref_id, limit=, offset=, response_mode=). |
| map_cross_ontologyA | List an HPO term's cross-references to other ontologies/vocabularies, grouped by target prefix (UMLS/SNOMEDCT_US/NCIT/MEDDRA/ICD-10/ICD-9/MONDO/DOID/ORPHA/EFO/MSH/MESH). Optionally restrict to a subset of prefixes. Signature: map_cross_ontology(hpo_id, prefixes=, response_mode=, fields=). |
| get_phenotypes_for_geneA | Return the HPO phenotype terms annotated to a gene (symbol or NCBI id). Signature: get_phenotypes_for_gene(gene, limit=, offset=, response_mode=). |
| get_genes_for_phenotypeA | Return the genes annotated to an HPO phenotype term, optionally expanded to include descendants. Signature: get_genes_for_phenotype(hpo_id, include_descendants=, limit=, offset=, response_mode=). |
| get_phenotypes_for_diseaseA | Return the HPO phenotype terms annotated to a disease CURIE (e.g. OMIM:106210, ORPHA:550). Signature: get_phenotypes_for_disease(disease_id, limit=, offset=, response_mode=). |
| get_diseases_for_phenotypeA | Return diseases annotated to an HPO phenotype term, optionally expanded to include descendants. Signature: get_diseases_for_phenotype(hpo_id, include_descendants=, limit=, offset=, response_mode=). |
| get_genes_for_diseaseA | Return genes associated with a disease CURIE (e.g. OMIM:106210, ORPHA:550). Signature: get_genes_for_disease(disease_id, limit=, offset=, response_mode=). |
| get_diseases_for_geneB | Return diseases associated with a gene (symbol or NCBI id). Signature: get_diseases_for_gene(gene, limit=, offset=, response_mode=). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| capabilities | |
| tools_overview | |
| usage | |
| reference | |
| research_use | |
| citation |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/berntpopp/hpo-link'
If you have feedback or need assistance with the MCP directory API, please join our Discord server