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 40 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
jasonbrelsford/verifiable-science-envs
GitHub Stars
0

TDQS

A4.1/5.0

Scored across 15 tools

Disambiguation4/5

Most tools have a clearly distinct purpose (normalize_allele vs validate_gl_string vs verify_text vs check_typing operate at different levels). A couple of boundaries are blurry: allele_info and normalize_allele both resolve a single name, and allele_history overlaps with translate_names/release_diff on release-based name tracking. Descriptions help disambiguate, but the overlaps require reading carefully.

Naming Consistency4/5

Everything uses snake_case consistently and is readable, which is the main thing. However the ordering is mixed: verb_noun (normalize_allele, translate_names, validate_gl_string, verify_text, check_typing) alongside noun_noun (allele_history, allele_info, donor_compat, pgx_pair, beta_signup), so there is no single predictable pattern.

Tool Count4/5

15 tools sit squarely in the well-scoped range and most earn their place in an HLA nomenclature/verification workflow. A few (about, beta_signup, research_access) are meta/signup tools that dilute the domain-focused set slightly, but the overall count is reasonable.

Completeness4/5

The surface covers the domain well: single-allele normalization/lookup, name history, cross-release translation and diff, GL string validation, free-text verification, typing QC, match scoring, donor compatibility, and PGx lookups (single and paired). Gaps are minor—no batch/list endpoints and locus or serology enumeration is only indirectly served—but core workflows are covered without dead ends.

Available Tools

15 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.

NameRequiredDescriptionDefault

No parameters

Output 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_historyA
Read-onlyIdempotent
Inspect

Every name the allele behind an HLA name has had, release by release since IPD-IMGT/HLA 1.05.0: its HLA ID, current name, the first and last release that used this name, the full timeline of names, and the deletion note if the name was retired. as_of adds what it was called in that release. Use it to answer when a name appeared, changed or disappeared. An allele string only, no patient identifiers.

NameRequiredDescriptionDefault
nameYesAn allele name as written in any release, like "A*0101".
as_ofNoAn IPD-IMGT/HLA release, like "3.40.0" (1.05.0 to the current one).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/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 without the description's help. The description still adds genuine scope disclosure — the full return contents (timeline, deletion note) and the constraint "an allele string only, no patient identifiers" — but it says nothing about error behavior for unknown names or release bounds beyond the schema's range note.

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-loaded with the resource, then the `as_of` modifier, then the usage sentence, then the input constraint — a sensible order with no filler sentences. The first sentence's field enumeration is long but each item is informative, so it stops just short of being bloated.

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 no further explanation, and the description still summarizes them. Together with the usage trigger, the `as_of` semantics and the no-patient-identifiers constraint, an agent has everything needed to call this correctly on the first attempt.

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%, so the baseline would be 3. The description earns the extra point by explaining the semantic effect of `as_of` — it "adds what it was called in that release" — which is behavior the schema's terse "An IPD-IMGT/HLA release" does not convey.

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 opening sentence states a specific resource (the name history of the allele behind an HLA name) and enumerates the returned fields: HLA ID, current name, first/last release, timeline, deletion note. It is clear what the tool does, but it never names the sibling it displaces (e.g. allele_info, translate_names, release_diff), so an agent must infer the boundary itself.

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?

"Use it to answer when a name appeared, changed or disappeared" gives a concrete triggering question and the `as_of` behavior is framed as an optional mode. There are no explicit exclusions or named alternatives (translate_names and release_diff are obvious candidates for overlap), which keeps it short of a 5.

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, plus resolution: what a name with fewer than four fields does and does not distinguish), 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.

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

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), as published in rel_dna_ser.txt: an antigen number, '?' (undetermined equivalent) or '∅' (no serological equivalent, null). The lab tools report these as 'uncertain' and 'null'.
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).
resolutionNoPresent on a name with fewer than four fields: what this resolution level does and does not distinguish.
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
Behavior5/5

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

With annotations already declaring readOnlyHint, openWorldHint=false and idempotentHint, the description still adds rich behavioral detail: it explains accepted shorthand formats, that NMDP multiple allele codes are recognized but not expanded, and that unknown names return 'Not found'. This goes well beyond the annotations and helps an agent predict results.

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 front-loaded with the core action and then enumerates return categories and shorthand rules. It is dense and somewhat long for a two-sentence description, but every clause conveys useful behavioral detail and nothing is repetitive filler.

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 single input parameter, the existence of an output schema, and the tool's read-only annotations, the description covers all the input semantics and result categories an agent needs. It also addresses shorthand acceptance and the not-found case, so no important piece is missing.

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%, so the schema already documents the single 'name' parameter. The description adds meaningful edge-case semantics, including legacy spellings, XX codes, lg notation, optional HLA- prefix, and the NMDP mac_code behavior, which is not fully captured in the schema description.

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 states a specific verb and resource: look up one HLA name in the pinned release and return what kind of name it is (assigned, valid_prefix, group, deleted). The output categories are spelled out, so an agent knows precisely what the tool returns. It does not explicitly name or distinguish itself from sibling tools like allele_history or normalize_allele, keeping it from a 5.

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 usage ('Look up one name in the pinned release') and gives conditions for shorthands and not-found results, but it never says when to choose this over alternatives such as allele_history or normalize_allele. There are no explicit when-not or alternative-routing statements.

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.

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

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).

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

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.

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

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.

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

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).

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

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.

pgx_lookupA
Read-onlyIdempotent
Inspect

Which drugs an HLA typing carries a published pharmacogenomic association for. Looks each allele up in hla-pgx-open (CPIC guidelines + PharmGKB clinical annotations, CC BY-SA, snapshot date in every answer) after normalizing the name first, so any era or shorthand works (A3101, B5701, HLA-B*15:02:01G) and every conversion leaves a flag. Returns per allele the current name, the two-field form, the flags and the associations (source, drug, evidence level, CPIC testing recommendation, implication, recommendation, guideline or annotation URL, PMIDs), plus summary.actionable: the CPIC level-A, allele-positive rows. Guideline lookup over published CPIC and PharmGKB associations, keyed by two-field HLA allele. Decision support only; not a medical device. After an allogeneic transplant the recipient's blood carries the donor's genome, and which genome should drive an HLA-mediated drug alert is an open question (NCT06856226); this lookup reports both and decides nothing. Allele strings only, no patient identifiers.

NameRequiredDescriptionDefault
typingNolocus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers.
allelesNoA flat list of reported allele names instead of a typing. Send exactly one of typing or alleles.

Output Schema

NameRequiredDescription
scopeYes
allelesYes
licenseNo
releaseYes
summaryYes
attributionNo
pgx_snapshotYesThe hla-pgx-open snapshot the answer came from (UTC date and git commit).

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, not open-world), and the description adds substantial context beyond them: normalization with a residual flag, snapshot date in every answer, data sources with license, the decision-support disclaimer, the transplant ambiguity caveat, and the summary.actionable derivation. This is unusually rich behavioral disclosure.

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-loaded with purpose and then the return shape, with the disclaimers and transplant caveat last. It is dense and long, with mild redundancy between the 'decision support only' line and 'decides nothing', but nearly every sentence carries distinguishing information.

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 tool of this complexity, with nested objects and an output schema present, the description is complete: sources, snapshot freshness, normalization behavior, per-allele return contents, and the actionable summary are all covered, so an agent knows what it gets and when it applies.

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 value by explaining input tolerance: any era or shorthand works (A*3101, B*5701, HLA-B*15:02:01G) and every conversion leaves a flag. It reinforces the alleles-vs-typing choice already in the schema rather than adding new syntax detail.

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?

Opens with a specific verb+resource: 'Which drugs an HLA typing carries a published pharmacogenomic association for.' An agent can distinguish this from siblings like allele_info, pgx_pair, and normalize_allele because the description explicitly says it normalizes internally and is keyed by two-field HLA allele for drug associations.

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?

Provides clear use context (CPIC/PharmGKB drug-association lookup for an HLA typing, decision support only) and constraints (allele strings only, no patient identifiers). It does not explicitly name alternatives such as normalize_allele or pgx_pair, but by stating normalization is handled internally it implicitly routes the agent away from those.

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

pgx_pairA
Read-onlyIdempotent
Inspect

For a donor-recipient pair, which genome carries each actionable HLA-drug association. Screens both typings as pgx_lookup does and marks every CPIC level-A, allele-positive association in_recipient, in_donor, discordant (present in exactly one) and whose_hla (both / recipient_only / donor_only). Guideline lookup over published CPIC and PharmGKB associations, keyed by two-field HLA allele. Decision support only; not a medical device. After an allogeneic transplant the recipient's blood carries the donor's genome, and which genome should drive an HLA-mediated drug alert is an open question (NCT06856226); this lookup reports both and decides nothing. Allele strings only, no patient identifiers.

NameRequiredDescriptionDefault
donorYesDonor typing: {"typing": {...}} or {"alleles": [...]}.
recipientYesRecipient typing: {"typing": {...}} or {"alleles": [...]}.

Output Schema

NameRequiredDescription
donorYes
scopeYes
licenseNo
releaseYes
summaryYes
recipientYes
actionableYes
attributionNo
pgx_snapshotYesThe hla-pgx-open snapshot the answer came from (UTC date and git commit).

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare the safe read-only, idempotent, closed-world profile; the description goes well beyond that by disclosing the filtering rule (CPIC level-A, allele-positive), the meaning of derived output fields (discordant = present in exactly one; whose_hla = both/recipient_only/donor_only), the source corpus (CPIC/PharmGKB), the keying (two-field HLA allele), and the 'reports both, decides nothing' decision-support caveat. That is rich context an agent cannot get from the structured fields.

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 generative sentence is front-loaded and each subsequent sentence adds a distinct fact (screening parity with pgx_lookup, output field semantics, guideline source, decision-support caveat). It is dense and jargon-heavy with a long parenthetical citation, which costs a point, but little is genuinely 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?

For a nested-schema tool with an output schema present, the description supplies everything the agent still needs: what gets screened, which associations qualify, how each output marker is defined, and the interpretive caveat that both genomes are reported without a recommendation. No material gap remains.

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% and both nested objects are self-described, so the schema carries the parameter burden. The description adds only that lookups are keyed by 'two-field HLA allele' and restates the 'allele strings only, no patient identifiers' constraint already in 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 first sentence names the specific operation (which genome carries each actionable HLA-drug association for a donor-recipient pair) with an explicit verb and resource. It further differentiates itself from the sibling pgx_lookup by stating it 'screens both typings as pgx_lookup does', so an agent can tell the two apart without opening either schema.

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 establishes the triggering context clearly: a donor-recipient pair after an allogeneic transplant, where the recipient's blood carries the donor's genome. It references pgx_lookup as the single-typing analogue, implying the alternative, but never states an explicit when-not-to-use or a hard prerequisite, so it stops short of a 5.

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

release_diffA
Read-onlyIdempotent
Inspect

Which HLA allele names were added, removed (with the deletion reason and successor) and renamed between two IPD-IMGT/HLA releases, optionally for one locus. Counts are complete; each list is cut at limit and truncated says so. Use it to see what a release update changes before re-running or re-reporting typings.

NameRequiredDescriptionDefault
toYesAn IPD-IMGT/HLA release, like "3.40.0" (1.05.0 to the current one).
fromYesAn IPD-IMGT/HLA release, like "3.40.0" (1.05.0 to the current one).
limitNoMaximum items per list (default 500).
locusNoOne locus, like "A" or "DRB1".

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations establish read-only, idempotent, closed-world behavior, and the description adds non-obvious behavior beyond them: counts are always complete while each list is capped by `limit`, and `truncated` signals that cap. It also discloses that deletions carry a reason and successor, which shapes how results should be interpreted. No permission or rate-limit detail, so not a 5.

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 sentences, front-loaded with what is diffed, then the truncation contract, then the motivating use case. No filler and no repetition of the tool name or title.

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 no prose. The description supplies the operational facts an agent needs: scope of the diff, truncation semantics, and the purpose that selects this tool over siblings.

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 the schema already documents release format, locus, and the limit default, so the baseline is 3. The description goes further by explaining the interaction between `limit` and the `truncated` flag and clarifying that counts are unaffected by truncation, which the schema does not say.

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 set (added, removed, renamed) on a specific resource (HLA allele names) across two named releases, with an optional locus scope. It is immediately distinguishable from siblings like allele_history or allele_info, which deal with individual alleles rather than a release-to-release diff.

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?

Gives a concrete use case ('see what a release update changes before re-running or re-reporting typings'), which tells the agent when this tool belongs in a workflow. It stops short of naming an explicit alternative or stating when not to use it, so it lands at 4 rather than 5.

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.

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

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.

translate_namesA
Read-onlyIdempotent
Inspect

Translate HLA allele names from one IPD-IMGT/HLA release to another, through each allele's HLA ID, using the official Allelelist_history.txt (every release since 1.05.0). Give the names as they were written in release from (omit from to accept a name used in any release); to defaults to the current release. Each row says unchanged, renamed (to_name), deleted (reason, successor and its name in to), not_yet_named, not_in_from_release, ambiguous (each allele listed) or unknown. Use it when data typed under an older release has to be compared with or reported under a newer one. Lab shorthand (B1501, A02:XX) belongs in normalize_allele first. Allele strings only, no patient identifiers.

NameRequiredDescriptionDefault
toNoAn IPD-IMGT/HLA release, like "3.40.0" (1.05.0 to the current one).
fromNoAn IPD-IMGT/HLA release, like "3.40.0" (1.05.0 to the current one).
namesYesAllele names exactly as written in the `from` release.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only cover readOnly/idempotent/no-open-world; the description adds real substance beyond them: the underlying source (official Allelelist_history.txt, every release since 1.05.0), the default resolutions ('to' defaults to current release; omitting 'from' accepts a name from any release), and the full set of outcome states including deleted with successor and ambiguous alleles. That is exactly the operational context an agent needs for this domain.

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-loaded with the core action and input/output contract, then the usage trigger. Dense but every clause carries weight; the enumeration of row statuses is long and partly overlaps the output schema, which slightly costs it a point.

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 annotations covering safety, a 100%-covered schema, and an output schema, the description fills the remaining gaps: input constraints, defaults, sibling routing, and the meaning of every outcome state. Nothing an agent needs to call it correctly is missing.

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 the baseline is 3, but the description adds semantics the schema does not: what omitting 'from' means (accept any release) and that 'to' defaults to the current release. It does not, however, add format guidance beyond the schema's own examples.

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?

Specific verb+resource with scope: translates HLA allele names between IPD-IMGT/HLA releases via HLA ID. It distinguishes itself from siblings by naming the routing alternative (normalize_allele for lab shorthand) and by being about cross-release name mapping rather than lookup (allele_info) or release comparison (release_diff).

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?

Explicit trigger: 'Use it when data typed under an older release has to be compared with or reported under a newer one.' It also routes the wrong-input case to a named sibling ('Lab shorthand (B*1501, A*02:XX) belongs in normalize_allele first') and states the input restriction ('Allele strings only, no patient identifiers').

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.

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

Output 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); a valid token with fewer than four fields carries resolution, what that field count does and does not distinguish. 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.

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

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/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, closed-world safety, but the description adds real context: checking is pinned to a specific IPD-IMGT/HLA release, MAC codes are 'seen, not expanded,' KIR is out of scope and unchecked, deleted tokens carry a successor, and request bodies are not stored. These are behavioral facts an agent could not derive from the 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.

Conciseness3/5

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

The action is front-loaded, but the body is a single dense run-on held together by slashes, semicolons, and nested parentheticals, which makes the classification list hard to parse at a glance. The content is largely necessary, but structure and brevity suffer.

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, return values need not be described, and the description covers scope, classification categories, versioning, de-identification, and out-of-scope handling. Only minor gaps remain, such as what happens on malformed or oversized input, so it is nearly complete for this tool's complexity.

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?

Single parameter with 100% schema description coverage, so the baseline is 3. The description's 'send the HLA content only, with patient identifiers removed first' largely restates the schema's own de-identification instruction rather than adding new semantics such as format or size expectations.

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 (scan/classify) and resource (allele-shaped tokens in HLA report or model text), and enumerates the exact output classes (valid, legacy, G-P group, deleted, fabricated, MAC code, KIR). It also draws the boundary against interpretation tools with 'Nomenclature checking against a pinned IPD-IMGT/HLA release, not interpretation of a case,' separating it from siblings like check_typing and donor_compat.

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?

Gives a clear when-to-use ('Use on any AI-generated or transcribed content mentioning HLA') and a when-not ('not interpretation of a case'), plus a prerequisite (de-identify first). It does not name specific sibling tools as alternatives, so it stops short of a full 5.

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. 3 tool updates
    • Addedallele_history
    • Addedrelease_diff
    • Addedtranslate_names
  2. 1 tool update
    • Changedallele_info1 field changed
      • changedOutput schema / properties / serology / description
        Previous value: -"assigned: WMDA serologic equivalents by column (non-empty columns only)."New value: +"assigned: WMDA serologic equivalents by column (non-empty columns only), as published in rel_dna_ser.txt: an antigen number, '?' (undetermined equivalent) or '∅' (no serological equivalent, null). The lab tools report these as 'uncertain' and 'null'."
  3. 2 tool updates
    • Changedallele_info1 field changed
      • addedOutput schema / properties / resolution
        Added value: +{
        +  "description": "Present on a name with fewer than four fields: what this resolution level does and does not distinguish.",
        +  "properties": {
        +    "distinguishes": {
        +      "description": "What finer typing at the next field would add.",
        +      "type": "string"
        +    },
        +    "fields": {
        +      "description": "Number of colon-separated fields in the name.",
        +      "enum": [
        +        1,
        +        2,
        +        3
        +      ],
        +      "type": "integer"
        +    },
        +    "level": {
        +      "description": "1 field: allele_group; 2: protein; 3: coding_sequence.",
        +      "enum": [
        +        "allele_group",
        +        "protein",
        +        "coding_sequence"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "fields",
        +    "level",
        +    "distinguishes"
        +  ],
        +  "type": "object"
        +}
    • Changedverify_text1 field changed
      • addedOutput schema / properties / tokens / items / properties / resolution
        Added value: +{
        +  "description": "Present on a name with fewer than four fields: what this resolution level does and does not distinguish.",
        +  "properties": {
        +    "distinguishes": {
        +      "description": "What finer typing at the next field would add.",
        +      "type": "string"
        +    },
        +    "fields": {
        +      "description": "Number of colon-separated fields in the name.",
        +      "enum": [
        +        1,
        +        2,
        +        3
        +      ],
        +      "type": "integer"
        +    },
        +    "level": {
        +      "description": "1 field: allele_group; 2: protein; 3: coding_sequence.",
        +      "enum": [
        +        "allele_group",
        +        "protein",
        +        "coding_sequence"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "fields",
        +    "level",
        +    "distinguishes"
        +  ],
        +  "type": "object"
        +}
  4. 2 tool updates
    • Addedpgx_lookup
    • Addedpgx_pair
  5. 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."
  6. 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"
        +]
  7. 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"
        +]
  8. 2 tool updates
    • Changedabout1 field changed
      • addedOutput schema / properties / research
        Added value: +{
        +  "type": "string"
        +}
    • Addedresearch_access
  9. 1 tool update
    • Changedabout1 field changed
      • addedOutput schema / properties / limits
        Added value: +{
        +  "type": "string"
        +}
  10. 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."
  11. 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
  12. 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
    D
    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.