A Model Context Protocol server for the Human Phenotype Ontology API. Provides tools to search HPO terms, retrieve detailed information, explore hierarchical relationships (ancestors, parents, children, descendants), validate HPO IDs, compare terms, and batch retrieve multiple terms. The HPO contains over 18,000 terms describing human phenotypic abnormalities used in genetic research and clinical diagnostics.
HPO MCP Server demonstrates solid tool definition quality with consistent naming conventions, comprehensive parameter documentation, and proper JSON Schema structure. All 12 tools follow verb_noun naming patterns (search_, get_, validate_, compare_, batch_) and include descriptions. However, output schemas are not documented, error handling lacks recovery guidance, and there is no tool annotation support. The server targets a specialized domain (Human Phenotype Ontology) with well-defined, read-only operations that minimize safety risks but also limit composition complexity.
Retrieve multiple HPO terms in a single request (maximum 20 terms)
Compare two HPO terms and find their relationship and common ancestors
Get a list of all HPO terms with pagination support
Get all ancestor terms for a given HPO term (all terms higher in the hierarchy)
Get direct child terms for a given HPO term (one level down in the hierarchy)
Get all descendant terms for a given HPO term (all terms lower in the hierarchy)
Get direct parent terms for a given HPO term (one level up in the hierarchy)
Output schemas are not documented. Tools define inputs clearly but provide no specification of what fields agents should expect in responses. This forces LLMs to parse responses blindly and prevents planning downstream tool calls.
Error handling lacks recovery guidance. No tool description explains what to do when an invalid HPO ID is passed, when pagination is exhausted, or when the API becomes unavailable. Agents receive errors without actionable next steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 71 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 58 | - | v1 |
Get detailed information about a specific HPO term by its ID
Get the full hierarchical path from root to a specific HPO term
Get comprehensive statistics and analysis for an HPO term including hierarchy counts and properties
Search for HPO terms by keyword, ID, or synonym. Supports pagination and filtering.
Validate if a given string is a valid HPO ID format and check if the term exists
No tool annotations (readOnlyHint, idempotentHint). All 12 tools are read-only, safe to retry, and cannot modify state. Declaring these properties enables clients to optimize retry logic and safety enforcement.
Parameter descriptions for pagination (max, offset) are identical across 9 tools but lack context about expected result counts and iteration patterns. Descriptions should hint at defaults and typical usage.
compare_hpo_terms lacks output documentation. The description mentions 'relationship and common ancestors' but does not specify whether the response is a hierarchy, a distance metric, or a set of ancestor nodes. Agents cannot know what to extract from the result.
get_hpo_term and validate_hpo_id both accept flexible ID formats ('HP:0001234 or just 0001234') but do not document the difference in behavior or when to use each tool. Agents may conflate them.