Skip to main content
Glama

Server Details

HLA nomenclature and match checks against a pinned IPD-IMGT/HLA release. No patient identifiers.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
jasonbrelsford/verifiable-science-envs
GitHub Stars
0

TDQS

A4.2/5.0

Scored across 10 tools

Disambiguation4/5

Most tools have distinct purposes, but allele_info and normalize_allele overlap in accepting one allele name and returning normalized/factual information, and donor_compat and match_score both perform donor-recipient HLA analysis. Detailed descriptions help differentiate, so an agent can usually select correctly.

Naming Consistency4/5

All tool names use consistent snake_case, which is the primary convention. However, the grammatical pattern is mixed: some are verb_noun (check_typing, normalize_allele) while others are noun_noun (allele_info, donor_compat), with one single-word name (about). This is a minor deviation from a uniform verb_noun pattern.

Tool Count5/5

Ten tools is well within the ideal range for a focused HLA verification server. Each tool serves a clear purpose, covering core operations plus necessary meta functions like about, beta_signup, and research_access.

Completeness4/5

The surface covers single allele lookup, normalization, GL string validation, text scanning, typing QC, donor compatibility, and match scoring—a comprehensive set for HLA nomenclature and compatibility checking. Minor gaps exist, such as no dedicated tool for listing alleles by locus or retrieving release metadata, but agents can work around these.

Available Tools

10 tools
aboutA
Read-onlyIdempotent
Inspect

What this server is and is not, what to send it, benchmark evidence for why to use it, the beta state, and terms.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
apiNo
whyNo
betaNo
codeNo
demoNo
nameYes
scopeNo
agentsNo
inputsNo
limitsNo
releaseYesIPD-IMGT/HLA release every verdict was computed against.
beta_keyNo
researchNo
commercialNo
disclaimerNo
beta_signupNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint and idempotentHint, so safety is covered. The description adds meaningful behavioral context beyond that: it mentions benchmark evidence, beta state, and terms, which signal maturity, expected usage rationale, and legal constraints. This is useful context an agent cannot derive from annotations or schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single compact sentence with no filler or redundant phrasing. It front-loads the core purpose ('what this server is and is not') and then efficiently lists the remaining content categories. Every phrase earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given there are no inputs and an output schema exists, the description does not need to explain return values. It covers the essential decision-making information: what the server is, what to send, performance evidence, beta status, and terms. It is complete enough for an agent to invoke confidently, though a more explicit 'returns information about...' framing would make it fully unambiguous.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the input schema already provides full coverage. The description's mention of 'what to send it' is contextually relevant but does not need to define any parameter semantics because there are none. Baseline 4 is appropriate for a no-parameter tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies the tool as being about 'this server' and enumerates the content areas it covers: server identity, inputs, benchmark evidence, beta state, and terms. It is not a tautology and clearly distinguishes this informational endpoint from the sibling tools, which are all domain-specific biological operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool should be used when an agent needs to understand what the server does, what to send it, and why it should be used, but it does not explicitly state when to use this tool versus the sibling alternatives. A direct 'use this to get server overview and limitations' statement would strengthen this.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

allele_infoA
Read-onlyIdempotent
Inspect

Look up one name in the pinned release and return what it is: assigned (G/P group, first release, confirmed status, WMDA serology, null flag), valid_prefix (member count and sample), group (a G or P group name: member count and sample), or deleted (successor). Reported shorthands are accepted as /v1/normalize accepts them — legacy spellings (A0101, Cw0702, Cw07:02), the XX code (A02:XX), two-field A02:01g, an optional HLA- prefix — and answer with the facts of the name they stand for plus resolves_to and a flag (deprecated_name, xx_code, lg_notation); an NMDP multiple allele code (A02:AB) returns mac_code, recognised but not expanded. Not found if the name has never existed in any release.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesAn HLA allele name of any era: exact name, lower-resolution prefix, deleted name, G/P group, legacy colon-less name, XX code or lg notation. An allele string only, never a patient name, medical record number or other identifier.

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNo
noteNomac_code: what a multiple allele code is and why it is not expanded.
flagsNoPresent for a shorthand: deprecated_name (legacy spelling: colon-less A*0101, or the Cw locus label as in Cw*07:02), xx_code, lg_notation, or mac_code. Absent for a plain name.
detailNoPresent only when the name is not assigned in this release (and then no other field is).
statusNoassigned: an exact allele in this release; valid_prefix: a lower-resolution prefix of assigned alleles; group: a G or P group name (see group_type); deleted: withdrawn or renamed (see successor); mac_code: an NMDP multiple allele code (A*02:AB), recognised but not expanded or checked.
g_groupNoassigned: G group, or null.
ligandsNoClass I (A/B/C) ligand facts, aggregated over member alleles: 'ambiguous' when members disagree, 'unknown' when no residue data.
p_groupNoassigned: P group, or null.
releaseNoIPD-IMGT/HLA release every verdict was computed against.
serologyNoassigned: WMDA serologic equivalents by column (non-empty columns only).
confirmedNoassigned: confirmed (vs unconfirmed) allele.
successorNodeleted: the current name, or null if none.
group_typeNogroup: whether the name is a G group (identical exons 2+3 / exon 2) or a P group (identical peptide-binding domain).
attributionNoData attribution (IPD-IMGT/HLA, CC-BY-ND).
null_alleleNoassigned: true for an N (null, not expressed) allele.
resolves_toNoPresent when the name was a reported shorthand (legacy colon-less or Cw spelling, XX code, lg notation): the current-style name it stands for, whose facts this result carries.
first_releaseNoassigned: first release the exact name appeared in.
members_countNovalid_prefix / group: number of assigned alleles under the prefix or in the group.
members_sampleNovalid_prefix / group: up to 10 member alleles.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so safety is covered. The description adds genuine behavioral value on top: the shape of each result branch, the accompanying resolves_to and flag fields (deprecated_name, xx_code, lg_notation), that MAC codes are recognised but not expanded, and the not-found condition.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and the resolution branches are front-loaded, but the body is a single dense run-on packed with nested parentheticals and em-dash asides, which hurts scanability. Most clauses carry information, but the lack of sentence breaks costs it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be enumerated, yet the description still covers the resolution branches, flags, MAC-code caveat and the not-found case. Combined with full parameter coverage and annotations, an agent has everything needed to call this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With one param at 100% schema coverage the baseline is 3, but the description goes beyond the schema by detailing accepted legacy spellings, XX codes, lg notation, HLA- prefixes and MAC codes, and by clarifying what the resolved answer carries. It does not contradict the schema's explicit warning against patient identifiers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and scope ('look up one name in the pinned release and return what it is') and then enumerates the four possible resolutions (assigned, valid_prefix, group, deleted). This is far more specific than the sibling names alone and lets an agent tell it apart from normalize_allele and validate_gl_string.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains which name forms are accepted and ties them to /v1/normalize's behaviour, which implies usage context, but it never states when to choose this tool over siblings like normalize_allele or validate_gl_string, nor any exclusion beyond 'never existed in any release'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

beta_signupA
Idempotent
Inspect

Put a user on the free public beta's notification list for paid API keys. Ask before calling: it records the address they give you. Re-signing the same address is safe (status already_recorded). Someone who needs a higher rate limit today should email hello@hlaverify.com for a beta key instead of waiting.

ParametersJSON Schema
NameRequiredDescriptionDefault
orgNoLab, company or institution (optional).
emailYesThe user's email address.
sourceNoWhere the signup came from, e.g. mcp (optional).
use_caseNoWhat they would use the API for (optional). No patient details.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesAlways true; a rejected signup comes back as an error result.
statusYesalready_recorded: the address was already on the list. Both are success — do not retry.
messageYesWhat to tell the user, including how to get a beta key today.
releaseYesIPD-IMGT/HLA release every verdict was computed against.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark idempotentHint=true, and the description adds useful behavioral detail by confirming re-signing the same address is safe and yields status already_recorded. It also discloses the privacy-relevant behavior that the tool records the address the user provides, which goes beyond the annotation fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each earning its place: purpose, consent/privacy warning, idempotency reassurance, and an alternative path for urgent cases. No filler or redundant restatement of schema content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple signup tool with a full schema, output schema, and idempotency annotation, the description covers purpose, consent, idempotent behavior, and the main exclusion. Optional parameters need no extra prose because the schema already describes them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline of 3 applies. The description adds minimal parameter-specific meaning beyond associating 'email' with 'the address they give you'; the schema already documents all four parameters adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: putting a user on the free public beta's notification list for paid API keys. This clearly distinguishes the tool from all listed siblings, which are about allele/HLA matching and verification rather than signups.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear when-to-use context ('Put a user on the free public beta's notification list') and an explicit when-not-to-use instruction (higher rate limit today -> email hello@hlaverify.com instead). It also adds a mandatory precondition: ask before calling because the address is recorded.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_typingA
Read-onlyIdempotent
Inspect

QC-check one HLA typing (all loci) against the pinned release: resolves every reported allele, flags unresolvable/outdated/locus-mismatched/null alleles, flags too-many/single/homozygous per locus, computes the B-leader (-21 M/T) and KIR-ligand (C1/C2/Bw4) profile, and DRB3/4/5 expected-vs-reported. Nomenclature and internal-consistency checking of the report, not clinical interpretation. typing: {"A": ["A01:01", "A02:01"], "B": [...], "DRB1": [...], ...} (any nomenclature era, G/P group names, A02:XX and two-field A02:01g included; NMDP MAC codes are flagged, not expanded; allele strings only, no patient identifiers).

ParametersJSON Schema
NameRequiredDescriptionDefault
typingYeslocus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lociYesReported locus key -> one row per reported allele, in input order.
validYestrue when there are no error-severity issues. Gate on this before using the typing.
countsYes
drb345YesDRB3/4/5 expected from DRB1 vs reported; null when DRB1 is not typed.
issuesYes
profileYes
releaseYesIPD-IMGT/HLA release every verdict was computed against.
attributionNoData attribution (IPD-IMGT/HLA, CC-BY-ND).

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare a safe, idempotent, closed-world read, and the description goes well beyond them: it discloses exactly which conditions are flagged, that NMDP MAC codes are flagged rather than expanded, and that it resolves against a pinned release. The no-identifiers constraint is also stated behaviorally.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: the operations come first, then the structural example, then the constraints. The PII warning is repeated from the schema description, which is the one clause that does not fully earn its place, but overall the length is justified by the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with an output schema and rich annotations, the description covers scope, accepted inputs, flagging behavior, and the clinical-interpretation boundary. Given the output schema exists, no return-value explanation is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds real syntax information the schema lacks: accepted nomenclature eras, G/P group names, A*02:XX and two-field A*02:01g forms, the locus->allele map example, and that MAC codes are not expanded. That meaningfully reduces caller ambiguity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource: QC-check one HLA typing across all loci against the pinned release. The enumerated checks (resolution, locus mismatch, B-leader/KIR-ligand computation) make it unmistakably distinct from siblings like validate_gl_string and normalize_allele.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly scopes usage with 'Nomenclature and internal-consistency checking of the report, not clinical interpretation,' which is a clear when-not boundary. However, it never names a sibling tool for the adjacent tasks (single-allele normalization, GL string validation), so routing among alternatives is left to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

donor_compatA
Read-onlyIdempotent
Inspect

Donor/recipient immunogenetic compatibility under two published rule sets: HLA-B leader match (-21 M/T, Petersdorf 2020) for a single HLA-B mismatch, and KIR ligand (C1/C2/Bw4) class comparison, computed over each side's full typing QC. Rule checking against published frameworks; it does not rank or recommend a donor. recipient/donor: {"A": [...], "B": [...], "C": [...], "DRB1": [...], ...} (allele strings only, no patient identifiers). Decision support only; not a medical device.

ParametersJSON Schema
NameRequiredDescriptionDefault
donorYeslocus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers.
recipientYeslocus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers.

Output Schema

ParametersJSON Schema
NameRequiredDescription
issuesYes
releaseYesIPD-IMGT/HLA release every verdict was computed against.
b_leaderYes
attributionNoData attribution (IPD-IMGT/HLA, CC-BY-ND).
donor_validYesDonor typing QC had no errors.
kir_ligandsYes
recipient_validYesRecipient typing QC had no errors.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds meaningful behavioral context: it applies two specific published rule sets, computes over each side's full typing QC, and explicitly states it is decision support only and not a medical device. This goes beyond the annotations and clarifies the tool's limitations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, then details the rule sets, then the input format, then the safety disclaimer. Every sentence earns its place, though the input format sentence is slightly redundant with the schema's parameter descriptions. Still, it's efficient and well-ordered.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return values need not be explained. The description covers the rule sets, input constraints, and safety limitations. It doesn't mention edge cases like what happens with missing loci or multiple mismatches, but for a read-only decision-support tool with a rich schema and output schema, the description is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents both parameters thoroughly, including the 'allele strings only' privacy constraint. The description reinforces the privacy constraint and the structure (locus -> allele arrays), but doesn't add new parameter-level meaning beyond what the schema provides. Baseline 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('compatibility under two published rule sets'), a precise resource (HLA-B leader match and KIR ligand class comparison), and explicitly distinguishes itself from ranking/recommendation tools. It also names the sibling it is not ('does not rank or recommend a donor'), which separates it from match_score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states what it computes and explicitly says it does not rank or recommend, which implies when not to use it. It does not explicitly name alternatives like match_score or check_typing, but the 'does not rank or recommend' exclusion gives clear usage boundaries. A 4 is appropriate because the context is clear but no explicit alternative tool is named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

match_scoreA
Read-onlyIdempotent
Inspect

Count a donor-recipient HLA match by the published counting rules (R1-R6): allele arithmetic over chromosomes, not a donor recommendation. recipient/donor: {"A": ["A01:01","A02:01"], "B": [...], ...} (two reported alleles per locus, any nomenclature era including G/P group names such as A*02:01:01G; allele strings only, no patient identifiers). framework: 6/6, 8/8, 10/10, 12/12, or antigen. Returns count, per-locus verdicts, GvH/HvG mismatch counts, and flags; unresolvable typing yields 'potential', never a confident count.

ParametersJSON Schema
NameRequiredDescriptionDefault
donorYeslocus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers.
frameworkNo8/8
recipientYeslocus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes'matched/total' over the resolvable loci only, or UNRESOLVABLE when none resolves. Check verdicts for 'potential' loci before quoting it as a confident count.
flagsYese.g. resolution_insufficient, null_allele, null_allele_mismatch.
releaseYesIPD-IMGT/HLA release every verdict was computed against.
verdictsYesFramework locus -> verdict.
frameworkYes
attributionNoData attribution (IPD-IMGT/HLA, CC-BY-ND).
gvh_mismatchesYesGraft-versus-host mismatches over non-potential loci.
hvg_mismatchesYesHost-versus-graft mismatches over non-potential loci.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint=false), so the description earns credit for adding real behavioral context: 'unresolvable typing yields potential, never a confident count' tells the agent how ambiguous input is handled. It also discloses return contents, though an output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core action and the key caveat before detailing input shape and return values. It is dense and slightly run-on across the framework and return sentences, but every clause carries information and nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with nested objects, an output schema, and rich annotations, the description is largely complete: it covers input format, framework choices, the R1-R6 rule basis, and the ambiguous-input fallback. Minor gaps remain around ordering/dominance of rules and what the flags specifically mean, but the essentials for correct invocation are present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 67% schema coverage the schema documents recipient/donor and the framework enum, but the description meaningfully extends this: two reported alleles per locus, tolerance across nomenclature eras including G/P group names, and allele-strings-only constraint. This adds syntax and format detail beyond what the schema states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (count a donor-recipient HLA match) and pins the method to the published R1-R6 rules. Crucially, it distinguishes itself from the sibling donor_compat by declaring it is 'allele arithmetic... not a donor recommendation', so an agent can route correctly without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly frames the use context (counting by published rules, not recommending a donor) and names acceptable framework values, which helps the agent choose this over donor_compat. However, it does not name specific alternatives (e.g., check_typing, validate_gl_string) or state explicit when-not conditions beyond the single scope exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

normalize_alleleA
Read-onlyIdempotent
Inspect

Normalize one reported HLA allele name (any era or reporting shorthand: legacy A0101, Cw0702 or Cw07:02, G/P group names, A02:XX, two-field A02:01g, optional HLA- prefix) to current 2-field form, with G group, P group, serologic equivalent, and flags. NMDP MAC codes (A02:AB) are recognised but not expanded (flag mac_code).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesOne reported HLA allele name, any nomenclature era. An allele string only, never a patient name, medical record number or other identifier.

Output Schema

ParametersJSON Schema
NameRequiredDescription
flagsYese.g. deprecated_name, nonexistent_allele, null_allele, g_group_name, p_group_name, xx_code, lg_notation, mac_code.
g_groupYesG group; NONE (no group), AMBIGUOUS (members differ) or UNRESOLVABLE.
reportedYesThe input, verbatim.
current_nameYesCurrent full name in the pinned release, or UNRESOLVABLE.
allele_2fieldYesCurrent 2-field form, or UNRESOLVABLE. Never present an UNRESOLVABLE name as an allele.

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and closed-world, so the safety profile is covered. The description adds genuine behavioral detail beyond that: MAC codes are recognized but deliberately not expanded and are signalled via a mac_code flag, and the output carries G group, P group, serologic equivalent, and flags.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence that front-loads the verb, the input, and the output form, then qualifies the MAC-code caveat at the end. Every clause carries information, though the parenthetical format list is slightly heavy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, yet the description still summarizes what comes back (2-field form, groups, serologic equivalent, flags). Combined with full param coverage and annotations, an agent has everything needed to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and there is a single parameter, so the baseline is 3. The description nonetheless adds real value over the schema's generic 'any nomenclature era' by listing concrete accepted forms (A*0101, Cw*07:02, A*02:XX, A*02:01g, optional HLA- prefix).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (normalize) and resource (one reported HLA allele name), plus the exact output form (current 2-field form with G/P group and serologic equivalent). This distinguishes it clearly from siblings like allele_info and validate_gl_string, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description scopes usage tightly ('one reported HLA allele name', 'any era or reporting shorthand') and enumerates accepted input styles, which tells an agent when this tool applies. It does not, however, name an alternative or state when another sibling (e.g. allele_info) should be preferred.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

research_accessA
Idempotent
Inspect

Apply for free HLA-Verify access for an academic or nonprofit lab. Ask before calling: it records the address, institution and use case you give it. Approval is manual: a person reads every application, so it is not instant and not guaranteed. If it is approved the applicant is emailed a single-use code that takes 100% off a subscription for 12 months at self-serve checkout, with no card and no contract. Re-applying with the same address is safe (status already_recorded) and never overwrites an application that has already been decided. Commercial labs should buy a tier at https://api.hlaverify.com/pricing instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesThe applicant's email address. The approval code is sent here.
sourceNoWhere the application came from, e.g. mcp (optional).
use_caseYesWhat the research or teaching is, and what the API would be used for. This is what the decision is made on, so be specific. No patient details.
institutionYesUniversity, hospital, institute or nonprofit the work is done at.
expected_volumeNoRough call or typing volume, e.g. 'about 20,000 typings a month' (optional).

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYesAlways true; a rejected application comes back as an error result.
statusYesalready_recorded: this address already has an application on file. Both are success; do not retry.
messageYesWhat to tell the user, including that approval is by hand and not instant.
releaseYesIPD-IMGT/HLA release every verdict was computed against.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations (readOnlyHint=false, idempotentHint=true) by disclosing that it records submitted details, that approval involves a human reviewer, that successful applicants receive a single-use 100% discount code, and that re-applying with the same address is safe and never overwrites decided applications. This fully aligns with the idempotentHint and adds rich behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is slightly verbose but every sentence provides necessary context: purpose, privacy warning, manual process, outcome, idempotency, and commercial exclusion. It is front-loaded with the main purpose and then covers critical caveats, though some sentences could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 params, manual approval, side effects), the description is complete for an agent to decide whether and how to call it. It explains the flow, safety of re-application, and expected outcomes; the existence of an output schema covers return values, so no major gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema fully documents each parameter. The description adds only that the address, institution and use case are recorded, which is behavioral rather than semantic. It does not enhance understanding of the optional source or expected_volume parameters beyond the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Apply for free HLA-Verify access') and narrows the audience to academic or nonprofit labs, clearly distinguishing it from commercial purchase. It also differentiates itself from siblings like beta_signup by focusing on free research access with manual review.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly instructs the agent to 'Ask before calling' because the tool records personal information, sets expectations that approval is manual, non-instant, and not guaranteed, and directs commercial labs to an alternative pricing page. This gives clear when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_gl_stringA
Read-onlyIdempotent
Inspect

Validate and normalize a GL String (Genotype List, ^ | + ~ / grammar): resolves every allele token, flags outdated/unresolvable names and structural problems (mixed loci within a slash-list, a repeated locus within a haplotype or across ^ blocks, more than two haplotypes, differing loci across a genotype or genotype list, empty elements), and returns the normalized string. Grammar and nomenclature checking only; send allele names, not patient identifiers.

ParametersJSON Schema
NameRequiredDescriptionDefault
glYesGL String to validate and normalize. Allele names and GL grammar only, never patient identifiers.

Output Schema

ParametersJSON Schema
NameRequiredDescription
lociYes
validYestrue when there are no error-severity issues.
countsYes
issuesYes
allelesYesEach distinct allele token, in first-seen order.
changedYesnormalized_gl differs from the trimmed input.
releaseYesIPD-IMGT/HLA release every verdict was computed against.
attributionNoData attribution (IPD-IMGT/HLA, CC-BY-ND).
normalized_glYesThe GL String with outdated names replaced by current ones.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly and idempotent safety. The description adds behavioral specifics: it flags outdated/unresolvable names and structural issues, normalizes the string, and reiterates it only checks grammar/nomenclature, not patient data. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but front-loaded with the purpose. The enumeration of specific structural problems is valuable but somewhat lengthy; still, every sentence contributes necessary detail. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and comprehensive parameter documentation, the description covers all essential behavior: what is validated, what is returned, and the constraint on input. Slightly more detail on error handling could be added, but the tool is well-specified overall.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with a clear description of the 'gl' parameter. The underlying tool description further enriches meaning by explaining the GL grammar and the validation behavior, surpassing what the schema alone provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Validate and normalize'), a precise resource ('GL String'), and explains the grammar ('Genotype List, ^ | + ~ / grammar'). It enumerates exactly what is checked (unresolvable names, structural problems) and distinguishes itself from siblings like 'normalize_allele' by focusing on list-level validation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: it is for grammar and nomenclature checking only, and explicitly tells the agent to send allele names, not patient identifiers. However, it does not name alternative tools or state when NOT to use this tool, leaving some ambiguity relative to siblings like 'verify_text'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_textA
Read-onlyIdempotent
Inspect

Scan HLA typing report text, or model output about HLA, for allele-shaped tokens and classify each one: valid / legacy spelling such as A0201 or Cw0702 (valid, with modern form and flag deprecated_name) / G-P group / deleted (with successor) / fabricated / NMDP MAC code (seen, not expanded) / KIR name (out of scope, not checked). Nomenclature checking against a pinned IPD-IMGT/HLA release, not interpretation of a case. Use on any AI-generated or transcribed content mentioning HLA. Send the HLA content only, with patient identifiers removed first.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesHLA typing report text, or model output about HLA typing, to scan for allele names. Send the HLA content only: strip patient names, medical record numbers, dates of birth, accession and case identifiers, and any other patient details before sending. The caller is responsible for de-identifying the text; this service neither needs nor wants identifiers and does not store request bodies.

Output Schema

ParametersJSON Schema
NameRequiredDescription
cleanYesThe guardrail: true only when no token is hallucinated, fabricated_group or deleted. Gate on this before presenting the text. NMDP multiple allele codes (counts.mac_code) and KIR allele names (counts.out_of_scope) are not checked — treat them as unverified.
countsYesNumber of distinct tokens per status.
tokensYesEach distinct allele-shaped token found, sorted by token.
releaseYesIPD-IMGT/HLA release every verdict was computed against.
attributionNoData attribution (IPD-IMGT/HLA, CC-BY-ND).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-open-world), and the description adds real context on top: the check is against a pinned IPD-IMGT/HLA release, KIR names are out of scope and left unchecked, MAC codes are recognized but not expanded, and patient identifiers are neither needed nor wanted. It stops short of describing rate limits, error behavior, or how results map to the classification buckets.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action is front-loaded and every sentence carries information: the classification taxonomy, the 'not interpretation' scope boundary, the usage trigger, and the de-identification requirement. The slash-delimited classification list is dense and slightly hard to parse, but nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be explained, and the description still covers everything an agent needs before calling: what is scanned, what the categories mean, the reference-release pinning, the KIR/MAC edge cases, and the de-identification obligation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage, so the schema already carries the semantics. The description restates the de-identification instruction rather than adding format, size, or content-shape detail beyond what the schema says, which is the baseline case for a fully documented parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb (scan/classify) and a specific resource (free-text HLA typing report or model output), then enumerates the exact output classes (valid, legacy, G-P group, deleted, fabricated, MAC, KIR). It also implicitly separates itself from structured-input siblings like validate_gl_string or normalize_allele by scoping itself to raw text, and states the boundary 'not interpretation of a case.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states when to reach for it ('Use on any AI-generated or transcribed content mentioning HLA') and the precondition for sending input ('Send the HLA content only, with patient identifiers removed first'). It does not name an alternative sibling or an explicit when-not condition, so it falls short of a full routing rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Changedallele_info2 fields changed
      • changedOutput schema / properties / flags / description
        Previous value: -"Present for a shorthand: deprecated_name (legacy colon-less name), xx_code, lg_notation, or mac_code. Absent for a plain name."New value: +"Present for a shorthand: deprecated_name (legacy spelling: colon-less A*0101, or the Cw locus label as in Cw*07:02), xx_code, lg_notation, or mac_code. Absent for a plain name."
      • changedOutput schema / properties / resolves_to / description
        Previous value: -"Present when the name was a reported shorthand (legacy colon-less, XX code, lg notation): the current-style name it stands for, whose facts this result carries."New value: +"Present when the name was a reported shorthand (legacy colon-less or Cw spelling, XX code, lg notation): the current-style name it stands for, whose facts this result carries."
    • Changedverify_text1 field changed
      • changedOutput schema / properties / tokens / items / properties / status / description
        Previous value: -"valid: assigned (or a valid prefix; A*02:XX and two-field A*02:01g are checked by the name they abbreviate); group: a real G/P group; deleted: no longer current (see successor); fabricated_group: G/P-shaped but no such group; hallucinated: never existed in any release; mac_code: an NMDP multiple allele code, reporting shorthand this service does not expand; out_of_scope: a KIR allele name (IPD-KIR), outside IPD-IMGT/HLA and not checked."New value: +"valid: assigned (or a valid prefix; A*02:XX and two-field A*02:01g are checked by the name they abbreviate, and a legacy spelling such as A*0201, Cw*0702 or Cw*07:02 by the current name it stands for, with flag deprecated_name); group: a real G/P group; deleted: no longer current (see successor); fabricated_group: G/P-shaped but no such group; hallucinated: never existed in any release; mac_code: an NMDP multiple allele code, reporting shorthand this service does not expand; out_of_scope: a KIR allele name (IPD-KIR), outside IPD-IMGT/HLA and not checked."
  2. 2 tool updates
    • Changedallele_info6 fields changed
      • changedInput schema / properties / name / description
        Previous value: -"Exact HLA allele name, a lower-resolution prefix, or a deleted name. An allele string only, never a patient name, medical record number or other identifier."New value: +"An HLA allele name of any era: exact name, lower-resolution prefix, deleted name, G/P group, legacy colon-less name, XX code or lg notation. An allele string only, never a patient name, medical record number or other identifier."
      • addedOutput schema / properties / flags
        Added value: +{
        +  "description": "Present for a shorthand: deprecated_name (legacy colon-less name), xx_code, lg_notation, or mac_code. Absent for a plain name.",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / note
        Added value: +{
        +  "description": "mac_code: what a multiple allele code is and why it is not expanded.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / resolves_to
        Added value: +{
        +  "description": "Present when the name was a reported shorthand (legacy colon-less, XX code, lg notation): the current-style name it stands for, whose facts this result carries.",
        +  "type": "string"
        +}
      • changedOutput schema / properties / status / description
        Previous value: -"assigned: an exact allele in this release; valid_prefix: a lower-resolution prefix of assigned alleles; group: a G or P group name (see group_type); deleted: withdrawn or renamed (see successor)."New value: +"assigned: an exact allele in this release; valid_prefix: a lower-resolution prefix of assigned alleles; group: a G or P group name (see group_type); deleted: withdrawn or renamed (see successor); mac_code: an NMDP multiple allele code (A*02:AB), recognised but not expanded or checked."
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "assigned",
        -  "valid_prefix",
        -  "group",
        -  "deleted"
        -]New value: +[
        +  "assigned",
        +  "valid_prefix",
        +  "group",
        +  "deleted",
        +  "mac_code"
        +]
    • Changedverify_text5 fields changed
      • changedOutput schema / properties / clean / description
        Previous value: -"The guardrail: true only when no token is hallucinated, fabricated_group or deleted. Gate on this before presenting the text. NMDP multiple allele codes (counts.mac_code) are not checked — treat them as unverified."New value: +"The guardrail: true only when no token is hallucinated, fabricated_group or deleted. Gate on this before presenting the text. NMDP multiple allele codes (counts.mac_code) and KIR allele names (counts.out_of_scope) are not checked — treat them as unverified."
      • addedOutput schema / properties / counts / properties / out_of_scope
        Added value: +{
        +  "description": "KIR allele names (KIR3DL1*001) seen; a gene family outside IPD-IMGT/HLA, not checked.",
        +  "type": "integer"
        +}
      • changedOutput schema / properties / counts / required
        Previous value: -[
        -  "valid",
        -  "deleted",
        -  "group",
        -  "fabricated_group",
        -  "hallucinated",
        -  "mac_code"
        -]New value: +[
        +  "valid",
        +  "deleted",
        +  "group",
        +  "fabricated_group",
        +  "hallucinated",
        +  "mac_code",
        +  "out_of_scope"
        +]
      • changedOutput schema / properties / tokens / items / properties / status / description
        Previous value: -"valid: assigned (or a valid prefix; A*02:XX and two-field A*02:01g are checked by the name they abbreviate); group: a real G/P group; deleted: no longer current (see successor); fabricated_group: G/P-shaped but no such group; hallucinated: never existed in any release; mac_code: an NMDP multiple allele code, reporting shorthand this service does not expand."New value: +"valid: assigned (or a valid prefix; A*02:XX and two-field A*02:01g are checked by the name they abbreviate); group: a real G/P group; deleted: no longer current (see successor); fabricated_group: G/P-shaped but no such group; hallucinated: never existed in any release; mac_code: an NMDP multiple allele code, reporting shorthand this service does not expand; out_of_scope: a KIR allele name (IPD-KIR), outside IPD-IMGT/HLA and not checked."
      • changedOutput schema / properties / tokens / items / properties / status / enum
        Previous value: -[
        -  "valid",
        -  "group",
        -  "deleted",
        -  "fabricated_group",
        -  "hallucinated",
        -  "mac_code"
        -]New value: +[
        +  "valid",
        +  "group",
        +  "deleted",
        +  "fabricated_group",
        +  "hallucinated",
        +  "mac_code",
        +  "out_of_scope"
        +]
  3. 3 tool updates
    • Changedallele_info5 fields changed
      • addedOutput schema / properties / group_type
        Added value: +{
        +  "description": "group: whether the name is a G group (identical exons 2+3 / exon 2) or a P group (identical peptide-binding domain).",
        +  "enum": [
        +    "G",
        +    "P"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / properties / members_count / description
        Previous value: -"valid_prefix: number of assigned alleles under the prefix."New value: +"valid_prefix / group: number of assigned alleles under the prefix or in the group."
      • changedOutput schema / properties / members_sample / description
        Previous value: -"valid_prefix: up to 10 member alleles."New value: +"valid_prefix / group: up to 10 member alleles."
      • changedOutput schema / properties / status / description
        Previous value: -"assigned: an exact allele in this release; valid_prefix: a lower-resolution prefix of assigned alleles; deleted: withdrawn or renamed (see successor)."New value: +"assigned: an exact allele in this release; valid_prefix: a lower-resolution prefix of assigned alleles; group: a G or P group name (see group_type); deleted: withdrawn or renamed (see successor)."
      • changedOutput schema / properties / status / enum
        Previous value: -[
        -  "assigned",
        -  "valid_prefix",
        -  "deleted"
        -]New value: +[
        +  "assigned",
        +  "valid_prefix",
        +  "group",
        +  "deleted"
        +]
    • Changednormalize_allele1 field changed
      • changedOutput schema / properties / flags / description
        Previous value: -"e.g. deprecated_name, nonexistent_allele, null_allele."New value: +"e.g. deprecated_name, nonexistent_allele, null_allele, g_group_name, p_group_name, xx_code, lg_notation, mac_code."
    • Changedverify_text5 fields changed
      • changedOutput schema / properties / clean / description
        Previous value: -"The guardrail: true only when no token is hallucinated, fabricated_group or deleted. Gate on this before presenting the text."New value: +"The guardrail: true only when no token is hallucinated, fabricated_group or deleted. Gate on this before presenting the text. NMDP multiple allele codes (counts.mac_code) are not checked — treat them as unverified."
      • addedOutput schema / properties / counts / properties / mac_code
        Added value: +{
        +  "description": "NMDP multiple allele codes (A*02:AB) seen but not expanded.",
        +  "type": "integer"
        +}
      • changedOutput schema / properties / counts / required
        Previous value: -[
        -  "valid",
        -  "deleted",
        -  "group",
        -  "fabricated_group",
        -  "hallucinated"
        -]New value: +[
        +  "valid",
        +  "deleted",
        +  "group",
        +  "fabricated_group",
        +  "hallucinated",
        +  "mac_code"
        +]
      • changedOutput schema / properties / tokens / items / properties / status / description
        Previous value: -"valid: assigned (or a valid prefix); group: a real G/P group; deleted: no longer current (see successor); fabricated_group: G/P-shaped but no such group; hallucinated: never existed in any release."New value: +"valid: assigned (or a valid prefix; A*02:XX and two-field A*02:01g are checked by the name they abbreviate); group: a real G/P group; deleted: no longer current (see successor); fabricated_group: G/P-shaped but no such group; hallucinated: never existed in any release; mac_code: an NMDP multiple allele code, reporting shorthand this service does not expand."
      • changedOutput schema / properties / tokens / items / properties / status / enum
        Previous value: -[
        -  "valid",
        -  "group",
        -  "deleted",
        -  "fabricated_group",
        -  "hallucinated"
        -]New value: +[
        +  "valid",
        +  "group",
        +  "deleted",
        +  "fabricated_group",
        +  "hallucinated",
        +  "mac_code"
        +]
  4. 2 tool updates
    • Changedabout1 field changed
      • addedOutput schema / properties / research
        Added value: +{
        +  "type": "string"
        +}
    • Addedresearch_access
  5. 1 tool update
    • Changedabout1 field changed
      • addedOutput schema / properties / limits
        Added value: +{
        +  "type": "string"
        +}
  6. 9 tool updates
    • Changedabout2 fields changed
      • addedOutput schema / properties / inputs
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / scope
        Added value: +{
        +  "type": "string"
        +}
    • Changedallele_info1 field changed
      • changedInput schema / properties / name / description
        Previous value: -"Exact allele, prefix, or deleted name."New value: +"Exact HLA allele name, a lower-resolution prefix, or a deleted name. An allele string only, never a patient name, medical record number or other identifier."
    • Changedbeta_signup1 field changed
      • changedInput schema / properties / use_case / description
        Previous value: -"What they would use the API for (optional)."New value: +"What they would use the API for (optional). No patient details."
    • Changedcheck_typing1 field changed
      • changedInput schema / properties / typing / description
        Previous value: -"locus -> up to 4 reported alleles"New value: +"locus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers."
    • Changeddonor_compat2 fields changed
      • changedInput schema / properties / donor / description
        Previous value: -"locus -> up to 4 reported alleles"New value: +"locus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers."
      • changedInput schema / properties / recipient / description
        Previous value: -"locus -> up to 4 reported alleles"New value: +"locus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers."
    • Changedmatch_score2 fields changed
      • changedInput schema / properties / donor / description
        Previous value: -"locus -> up to 4 reported alleles"New value: +"locus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers."
      • changedInput schema / properties / recipient / description
        Previous value: -"locus -> up to 4 reported alleles"New value: +"locus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers."
    • Changednormalize_allele1 field changed
      • changedInput schema / properties / name / description
        Previous value: -"Reported allele name, any nomenclature era."New value: +"One reported HLA allele name, any nomenclature era. An allele string only, never a patient name, medical record number or other identifier."
    • Changedvalidate_gl_string1 field changed
      • changedInput schema / properties / gl / description
        Previous value: -"GL String to validate and normalize."New value: +"GL String to validate and normalize. Allele names and GL grammar only, never patient identifiers."
    • Changedverify_text1 field changed
      • changedInput schema / properties / text / description
        Previous value: -"Free text to scan."New value: +"HLA typing report text, or model output about HLA typing, to scan for allele names. Send the HLA content only: strip patient names, medical record numbers, dates of birth, accession and case identifiers, and any other patient details before sending. The caller is responsible for de-identifying the text; this service neither needs nor wants identifiers and does not store request bodies."
  7. 2 tool updates
    • Changedabout3 fields changed
      • addedOutput schema / properties / beta
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / beta_key
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / beta_signup
        Added value: +{
        +  "type": "string"
        +}
    • Addedbeta_signup
  8. 8 tool updates
    • First observedabout
    • First observedallele_info
    • First observedcheck_typing
    • First observeddonor_compat
    • First observedmatch_score
    • First observednormalize_allele
    • First observedvalidate_gl_string
    • First observedverify_text

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables real-time pharmacogenomics analysis, including variant clinical significance, drug-gene interactions, and dosing guidelines, by connecting to ClinVar, PharmGKB, gnomAD, and other databases.
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Grounds gene-nomenclature work in the HUGO Gene Nomenclature Committee (HGNC) dataset, enabling resolution of gene symbols and IDs to canonical HGNC identifiers, plus cross-references and batch operations.
    9
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables resolving genetic variant identifiers (HGVS, dbSNP, ClinVar, gnomAD) to stable ClinGen Allele Registry IDs (CA#) and cross-references, providing a canonical allele identity across genome builds.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.