HGNC (HUGO Gene Nomenclature Committee) MCP. Authoritative human gene symbols, approved names, and cross-references from the HGNC REST API. Resolve an approved symbol to its full record, fuzzy-search names/aliases, or reverse-map an external database id to the canonical HGNC gene.
Three well-named, read-only tools with clear descriptions and complete input schemas. Tool names follow verb_noun pattern (get_gene, search_genes, resolve_xref). Descriptions are detailed (150 - 250 chars) and explain WHEN to use each tool. All parameters have type definitions and descriptions. However, output schemas are not documented, LLMs cannot predict response structure. Error handling returns helpful messages but lacks recovery guidance. No tool annotations (readOnlyHint) despite all being read-only. Missing pagination guidance for search_genes despite returning ranked results.
Exact lookup of an approved human gene by its official HGNC symbol — returns the full authoritative record: approved name, locus type, chromosomal location, alias/previous symbols, gene groups, and cross-references (Entrez, Ensembl, UniProt, OMIM, RefSeq, UCSC, CCDS). Use search_genes first if you only have a name fragment or aren't sure of the exact symbol. Keyless.
Reverse-lookup: map an external database id to its canonical HGNC gene. "What gene is Entrez 672?" -> BRCA1. Accepts entrez_id, ensembl_gene_id, uniprot_ids, omim_id, refseq_accession, or ucsc_id and returns the same full record as get_gene. Keyless.
Fuzzy search across approved symbols, names, and aliases — e.g. "breast cancer", "p53", "tumor protein". Returns lightweight matches (hgnc_id, symbol, relevance score) ranked by score; call get_gene with a returned symbol for the full record. Keyless.
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting). mapGene() returns ~15 fields but no schema is visible to callers.
search_genes accepts 'limit' parameter but no pagination guidance. Docs say 'default 10, max 25' but don't explain what happens if total > limit or how to fetch next page. No next_cursor or offset returned.
No tool annotations. All three tools are read-only and idempotent, but readOnlyHint and idempotentHint are absent. Agents cannot infer safety without explicit hints.
Error messages suggest alternatives (e.g. 'try search_genes') but lack structured recovery guidance. Errors are free-text strings, not categorized as retryable/user-fixable/fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
resolve_xref id_type enum uses XREF_FIELDS constant but description lists values inline. If enum changes, description becomes stale. Single source of truth violated.