Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,547Letters: 14Defects: 1,324counted 4 min ago
teppi

Server definition

Hash
sha256:66c29cfbd9c80ef9a4532c6a4ba15cc44110a043b9daa1f00b32c91bccb1bb93
What it is
What a remote MCP server returned when asked what it offers: 10 tools

The blob, as servednamed by its sha256

{ "instructions": "Nomenclature and reference-release validation for HLA: allele names, typing-report consistency and match arithmetic, checked against a pinned IPD-IMGT/HLA release. No LLM inside: every verdict is a table lookup. This is not a diagnostic aid and not clinical decision support; it does not interpret a case or recommend a donor. What to send: allele names, typing strings, GL strings and report text about HLA typing. What never to send: patient identifiers of any kind, including names, medical record numbers, dates of birth, accession or case identifiers, and other patient details. The service does not need them and does not store request bodies; removing them before sending is the caller's responsibility. Call verify_text on any AI-generated or transcribed content that mentions HLA alleles before presenting it; call normalize_allele or allele_info before asserting an allele name is valid or current; call match_score instead of computing a donor-recipient match count yourself. LLMs (including you) fabricate allele names and miscount matches — verify HLA names before presenting them. The service is in free public beta: call beta_signup to put your user on the list for paid keys, or point them at [email protected] for a beta key now. If your user works at an academic or nonprofit lab, call research_access to apply for free access; a person reviews each application by hand. Accredited universities, hospitals' research units, registries and non-profits can also get a durable academic-tier key (Lab's limits, free, no Stripe involved) just by emailing [email protected] from an institutional address.", "tools": [ { "description": "What this server is and is not, what to send it, benchmark evidence for why to use it, the beta state, and terms.", "inputSchema": { "additionalProperties": false, "properties": {}, "type": "object" }, "name": "about", "outputSchema": { "properties": { "agents": { "type": "string" }, "api": { "type": "string" }, "beta": { "type": "string" }, "beta_key": { "type": "string" }, "beta_signup": { "type": "string" }, "code": { "type": "string" }, "commercial": { "type": "string" }, "demo": { "type": "string" }, "disclaimer": { "type": "string" }, "inputs": { "type": "string" }, "limits": { "type": "string" }, "name": { "type": "string" }, "release": { "description": "IPD-IMGT/HLA release every verdict was computed against.", "type": "string" }, "research": { "type": "string" }, "scope": { "type": "string" }, "why": { "type": "string" } }, "required": [ "name", "release" ], "type": "object" } }, { "description": "Look up one exact 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), or deleted (successor). Not found if the name has never existed in any release.", "inputSchema": { "additionalProperties": false, "properties": { "name": { "description": "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.", "maxLength": 64, "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "allele_info", "outputSchema": { "description": "Found: release, name, status and the status-specific fields. Never assigned: only `detail`.", "properties": { "attribution": { "description": "Data attribution (IPD-IMGT/HLA, CC-BY-ND).", "type": "string" }, "confirmed": { "description": "assigned: confirmed (vs unconfirmed) allele.", "type": "boolean" }, "detail": { "description": "Present only when the name is not assigned in this release (and then no other field is).", "type": "string" }, "first_release": { "description": "assigned: first release the exact name appeared in.", "type": [ "string", "null" ] }, "g_group": { "description": "assigned: G group, or null.", "type": [ "string", "null" ] }, "ligands": { "description": "Class I (A/B/C) ligand facts, aggregated over member alleles: 'ambiguous' when members disagree, 'unknown' when no residue data.", "properties": { "ambiguities": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "description": "For each ambiguous field, the distinct member values.", "type": "object" }, "bw": { "description": "Bw4 / Bw6 / non-Bw4 / unclassified / ambiguous / unknown / not_expressed; null for HLA-C.", "type": [ "string", "null" ] }, "c_group": { "description": "C1 / C2 / unclassified / ambiguous / unknown; null when not applicable.", "type": [ "string", "null" ] }, "expressed": { "description": "false when every member allele is null (not expressed).", "type": "boolean" }, "kir_ligand": { "description": "C1 / C2 / Bw4 / Bw4-80I / Bw4-80T / none / ambiguous / unknown.", "type": "string" }, "leader_21": { "description": "Residue at leader position -21 (M or T; another letter is possible), ambiguous, unknown or not_expressed.", "type": "string" }, "residue_80": { "description": "Residue at position 80 (amino-acid letter), ambiguous, unknown or not_expressed.", "type": "string" } }, "required": [ "expressed", "leader_21", "residue_80", "bw", "c_group", "kir_ligand" ], "type": "object" }, "members_count": { "description": "valid_prefix: number of assigned alleles under the prefix.", "type": "integer" }, "members_sample": { "description": "valid_prefix: up to 10 member alleles.", "items": { "type": "string" }, "type": "array" }, "name": { "type": "string" }, "null_allele": { "description": "assigned: true for an N (null, not expressed) allele.", "type": "boolean" }, "p_group": { "description": "assigned: P group, or null.", "type": [ "string", "null" ] }, "release": { "description": "IPD-IMGT/HLA release every verdict was computed against.", "type": "string" }, "serology": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "description": "assigned: WMDA serologic equivalents by column (non-empty columns only).", "properties": { "assumed": { "items": { "type": "string" }, "type": "array" }, "expert": { "items": { "type": "string" }, "type": "array" }, "possible": { "items": { "type": "string" }, "type": "array" }, "unambiguous": { "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "status": { "description": "assigned: an exact allele in this release; valid_prefix: a lower-resolution prefix of assigned alleles; deleted: withdrawn or renamed (see successor).", "enum": [ "assigned", "valid_prefix", "deleted" ], "type": "string" }, "successor": { "description": "deleted: the current name, or null if none.", "type": [ "string", "null" ] } }, "type": "object" } }, { "description": "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 [email protected] for a beta key instead of waiting.", "inputSchema": { "additionalProperties": false, "properties": { "email": { "description": "The user's email address.", "maxLength": 254, "type": "string" }, "org": { "description": "Lab, company or institution (optional).", "maxLength": 120, "type": "string" }, "source": { "description": "Where the signup came from, e.g. mcp (optional).", "maxLength": 120, "type": "string" }, "use_case": { "description": "What they would use the API for (optional). No patient details.", "maxLength": 500, "type": "string" } }, "required": [ "email" ], "type": "object" }, "name": "beta_signup", "outputSchema": { "properties": { "message": { "description": "What to tell the user, including how to get a beta key today.", "type": "string" }, "ok": { "description": "Always true; a rejected signup comes back as an error result.", "type": "boolean" }, "release": { "description": "IPD-IMGT/HLA release every verdict was computed against.", "type": "string" }, "status": { "description": "already_recorded: the address was already on the list. Both are success — do not retry.", "enum": [ "recorded", "already_recorded" ], "type": "string" } }, "required": [ "ok", "status", "message", "release" ], "type": "object" } }, { "description": "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\": [\"A*01:01\", \"A*02:01\"], \"B\": [...], \"DRB1\": [...], ...} (any nomenclature era; allele strings only, no patient identifiers).", "inputSchema": { "additionalProperties": false, "properties": { "typing": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "description": "locus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers.", "type": "object" } }, "required": [ "typing" ], "type": "object" }, "name": "check_typing", "outputSchema": { "properties": { "attribution": { "description": "Data attribution (IPD-IMGT/HLA, CC-BY-ND).", "type": "string" }, "counts": { "properties": { "error": { "type": "integer" }, "info": { "type": "integer" }, "warning": { "type": "integer" } }, "required": [ "error", "warning", "info" ], "type": "object" }, "drb345": { "description": "DRB3/4/5 expected from DRB1 vs reported; null when DRB1 is not typed.", "properties": { "determinate": { "type": "boolean" }, "expected": { "items": { "type": "string" }, "type": "array" }, "reported": { "items": { "type": "string" }, "type": "array" } }, "required": [ "expected", "reported", "determinate" ], "type": [ "object", "null" ] }, "issues": { "items": { "properties": { "code": { "description": "unresolvable, deprecated_name, locus_mismatch, null_allele, too_many_alleles, single_allele, homozygous, drb345_unexpected or drb345_not_reported.", "type": "string" }, "detail": { "type": "string" }, "locus": { "description": "The locus key as reported.", "type": "string" }, "severity": { "description": "Any error makes the typing invalid.", "enum": [ "error", "warning", "info" ], "type": "string" } }, "required": [ "severity", "locus", "code", "detail" ], "type": "object" }, "type": "array" }, "loci": { "additionalProperties": { "items": { "properties": { "allele_2field": { "description": "Current 2-field form, or UNRESOLVABLE.", "type": "string" }, "antigen": { "description": "WMDA serologic antigen, or 'null' (not expressed) / 'uncertain'.", "type": "string" }, "current_name": { "description": "Current name, or UNRESOLVABLE.", "type": "string" }, "flags": { "items": { "type": "string" }, "type": "array" }, "g_group": { "description": "G group; NONE, AMBIGUOUS or UNRESOLVABLE.", "type": "string" }, "ligands": { "description": "Class I (A/B/C) ligand facts, aggregated over member alleles: 'ambiguous' when members disagree, 'unknown' when no residue data.", "properties": { "ambiguities": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "description": "For each ambiguous field, the distinct member values.", "type": "object" }, "bw": { "description": "Bw4 / Bw6 / non-Bw4 / unclassified / ambiguous / unknown / not_expressed; null for HLA-C.", "type": [ "string", "null" ] }, "c_group": { "description": "C1 / C2 / unclassified / ambiguous / unknown; null when not applicable.", "type": [ "string", "null" ] }, "expressed": { "description": "false when every member allele is null (not expressed).", "type": "boolean" }, "kir_ligand": { "description": "C1 / C2 / Bw4 / Bw4-80I / Bw4-80T / none / ambiguous / unknown.", "type": "string" }, "leader_21": { "description": "Residue at leader position -21 (M or T; another letter is possible), ambiguous, unknown or not_expressed.", "type": "string" }, "residue_80": { "description": "Residue at position 80 (amino-acid letter), ambiguous, unknown or not_expressed.", "type": "string" } }, "required": [ "expressed", "leader_21", "residue_80", "bw", "c_group", "kir_ligand" ], "type": "object" }, "reported": { "type": "string" }, "status": { "enum": [ "ok", "renamed", "unresolvable" ], "type": "string" } }, "required": [ "reported", "status", "current_name", "allele_2field", "g_group", "flags", "antigen" ], "type": "object" }, "type": "array" }, "description": "Reported locus key -> one row per reported allele, in input order.", "type": "object" }, "profile": { "properties": { "b_leader_genotype": { "description": "HLA-B -21 leader genotype such as M/T ('?' unknown); null when B is not typed.", "type": [ "string", "null" ] }, "c_kir_ligand_genotype": { "description": "HLA-C KIR ligand genotype such as C1/C2 ('none', '?'); null when C is not typed.", "type": [ "string", "null" ] }, "kir_ligand_status": { "description": "complete only with two classified alleles at each of A, B and C.", "enum": [ "complete", "incomplete" ], "type": "string" }, "kir_ligands_present": { "description": "Sorted subset of C1, C2, Bw4, Bw4-80I, Bw4-80T.", "items": { "type": "string" }, "type": "array" } }, "required": [ "b_leader_genotype", "c_kir_ligand_genotype", "kir_ligands_present", "kir_ligand_status" ], "type": "object" }, "release": { "description": "IPD-IMGT/HLA release every verdict was computed against.", "type": "string" }, "valid": { "description": "true when there are no error-severity issues. Gate on this before using the typing.", "type": "boolean" } }, "required": [ "release", "valid", "loci", "issues", "counts", "profile", "drb345" ], "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "donor": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "description": "locus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers.", "type": "object" }, "recipient": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "description": "locus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers.", "type": "object" } }, "required": [ "recipient", "donor" ], "type": "object" }, "name": "donor_compat", "outputSchema": { "properties": { "attribution": { "description": "Data attribution (IPD-IMGT/HLA, CC-BY-ND).", "type": "string" }, "b_leader": { "properties": { "b_mismatches": { "description": "HLA-B mismatch count; null when B is missing, over-typed or unresolvable on either side.", "type": [ "integer", "null" ] }, "donor": { "description": "Donor HLA-B leader genotype; null when B is not typed.", "type": [ "string", "null" ] }, "leader_match": { "description": "Set only for exactly one HLA-B mismatch with a known M/T leader on both mismatched alleles; otherwise null (not assessable).", "type": [ "boolean", "null" ] }, "recipient": { "description": "Recipient HLA-B leader genotype, e.g. M/T; null when B is not typed.", "type": [ "string", "null" ] }, "rule": { "type": "string" } }, "required": [ "recipient", "donor", "b_mismatches", "leader_match", "rule" ], "type": "object" }, "donor_valid": { "description": "Donor typing QC had no errors.", "type": "boolean" }, "issues": { "properties": { "donor": { "items": { "properties": { "code": { "description": "unresolvable, deprecated_name, locus_mismatch, null_allele, too_many_alleles, single_allele, homozygous, drb345_unexpected or drb345_not_reported.", "type": "string" }, "detail": { "type": "string" }, "locus": { "description": "The locus key as reported.", "type": "string" }, "severity": { "description": "Any error makes the typing invalid.", "enum": [ "error", "warning", "info" ], "type": "string" } }, "required": [ "severity", "locus", "code", "detail" ], "type": "object" }, "type": "array" }, "recipient": { "items": { "properties": { "code": { "description": "unresolvable, deprecated_name, locus_mismatch, null_allele, too_many_alleles, single_allele, homozygous, drb345_unexpected or drb345_not_reported.", "type": "string" }, "detail": { "type": "string" }, "locus": { "description": "The locus key as reported.", "type": "string" }, "severity": { "description": "Any error makes the typing invalid.", "enum": [ "error", "warning", "info" ], "type": "string" } }, "required": [ "severity", "locus", "code", "detail" ], "type": "object" }, "type": "array" } }, "required": [ "recipient", "donor" ], "type": "object" }, "kir_ligands": { "properties": { "donor": { "items": { "type": "string" }, "type": "array" }, "missing_in_donor": { "items": { "type": "string" }, "type": "array" }, "missing_in_recipient": { "items": { "type": "string" }, "type": "array" }, "recipient": { "description": "KIR ligand classes present (C1, C2, Bw4).", "items": { "type": "string" }, "type": "array" }, "rule": { "type": "string" }, "status": { "description": "Treat missing_in_* as provisional unless complete.", "enum": [ "complete", "incomplete" ], "type": "string" } }, "required": [ "recipient", "donor", "missing_in_recipient", "missing_in_donor", "status", "rule" ], "type": "object" }, "recipient_valid": { "description": "Recipient typing QC had no errors.", "type": "boolean" }, "release": { "description": "IPD-IMGT/HLA release every verdict was computed against.", "type": "string" } }, "required": [ "release", "b_leader", "kir_ligands", "recipient_valid", "donor_valid", "issues" ], "type": "object" } }, { "description": "Count a donor-recipient HLA match by the published counting rules (R1-R6): allele arithmetic over chromosomes, not a donor recommendation. recipient/donor: {\"A\": [\"A*01:01\",\"A*02:01\"], \"B\": [...], ...} (two reported alleles per locus, any nomenclature era; 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.", "inputSchema": { "additionalProperties": false, "properties": { "donor": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "description": "locus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers.", "type": "object" }, "framework": { "default": "8/8", "enum": [ "6/6", "8/8", "10/10", "12/12", "antigen" ], "type": "string" }, "recipient": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "description": "locus -> up to 4 reported allele names. Allele strings only: never patient names, medical record numbers, dates of birth, or accession or case identifiers.", "type": "object" } }, "required": [ "recipient", "donor" ], "type": "object" }, "name": "match_score", "outputSchema": { "properties": { "attribution": { "description": "Data attribution (IPD-IMGT/HLA, CC-BY-ND).", "type": "string" }, "count": { "description": "'matched/total' over the resolvable loci only, or UNRESOLVABLE when none resolves. Check verdicts for 'potential' loci before quoting it as a confident count.", "type": "string" }, "flags": { "description": "e.g. resolution_insufficient, null_allele, null_allele_mismatch.", "items": { "type": "string" }, "type": "array" }, "framework": { "enum": [ "6/6", "8/8", "10/10", "12/12", "antigen" ], "type": "string" }, "gvh_mismatches": { "description": "Graft-versus-host mismatches over non-potential loci.", "type": "integer" }, "hvg_mismatches": { "description": "Host-versus-graft mismatches over non-potential loci.", "type": "integer" }, "release": { "description": "IPD-IMGT/HLA release every verdict was computed against.", "type": "string" }, "verdicts": { "additionalProperties": { "description": "potential: typing missing or not resolvable at the framework's level; excluded from count.", "enum": [ "match", "mismatch", "potential" ], "type": "string" }, "description": "Framework locus -> verdict.", "type": "object" } }, "required": [ "release", "framework", "count", "verdicts", "hvg_mismatches", "gvh_mismatches", "flags" ], "type": "object" } }, { "description": "Normalize one reported HLA allele name (any era) to current 2-field form, with G group, P group, serologic equivalent, and flags.", "inputSchema": { "additionalProperties": false, "properties": { "name": { "description": "One reported HLA allele name, any nomenclature era. An allele string only, never a patient name, medical record number or other identifier.", "maxLength": 64, "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "normalize_allele", "outputSchema": { "properties": { "allele_2field": { "description": "Current 2-field form, or UNRESOLVABLE. Never present an UNRESOLVABLE name as an allele.", "type": "string" }, "current_name": { "description": "Current full name in the pinned release, or UNRESOLVABLE.", "type": "string" }, "flags": { "description": "e.g. deprecated_name, nonexistent_allele, null_allele.", "items": { "type": "string" }, "type": "array" }, "g_group": { "description": "G group; NONE (no group), AMBIGUOUS (members differ) or UNRESOLVABLE.", "type": "string" }, "reported": { "description": "The input, verbatim.", "type": "string" } }, "required": [ "reported", "current_name", "allele_2field", "g_group", "flags" ], "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "email": { "description": "The applicant's email address. The approval code is sent here.", "maxLength": 254, "type": "string" }, "expected_volume": { "description": "Rough call or typing volume, e.g. 'about 20,000 typings a month' (optional).", "maxLength": 120, "type": "string" }, "institution": { "description": "University, hospital, institute or nonprofit the work is done at.", "maxLength": 200, "type": "string" }, "source": { "description": "Where the application came from, e.g. mcp (optional).", "maxLength": 120, "type": "string" }, "use_case": { "description": "What 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.", "maxLength": 1000, "type": "string" } }, "required": [ "email", "institution", "use_case" ], "type": "object" }, "name": "research_access", "outputSchema": { "properties": { "message": { "description": "What to tell the user, including that approval is by hand and not instant.", "type": "string" }, "ok": { "description": "Always true; a rejected application comes back as an error result.", "type": "boolean" }, "release": { "description": "IPD-IMGT/HLA release every verdict was computed against.", "type": "string" }, "status": { "description": "already_recorded: this address already has an application on file. Both are success; do not retry.", "enum": [ "recorded", "already_recorded" ], "type": "string" } }, "required": [ "ok", "status", "message", "release" ], "type": "object" } }, { "description": "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.", "inputSchema": { "additionalProperties": false, "properties": { "gl": { "description": "GL String to validate and normalize. Allele names and GL grammar only, never patient identifiers.", "maxLength": 100000, "type": "string" } }, "required": [ "gl" ], "type": "object" }, "name": "validate_gl_string", "outputSchema": { "properties": { "alleles": { "description": "Each distinct allele token, in first-seen order.", "items": { "properties": { "current_name": { "description": "null when unresolvable.", "type": [ "string", "null" ] }, "locus": { "type": [ "string", "null" ] }, "status": { "enum": [ "valid", "renamed", "group", "unresolvable" ], "type": "string" }, "token": { "type": "string" } }, "required": [ "token", "status", "current_name", "locus" ], "type": "object" }, "type": "array" }, "attribution": { "description": "Data attribution (IPD-IMGT/HLA, CC-BY-ND).", "type": "string" }, "changed": { "description": "normalized_gl differs from the trimmed input.", "type": "boolean" }, "counts": { "properties": { "error": { "type": "integer" }, "warning": { "type": "integer" } }, "required": [ "error", "warning" ], "type": "object" }, "issues": { "items": { "properties": { "code": { "description": "unresolvable_allele, renamed_allele, whitespace_in_name, empty_element, mixed_locus_allele_list, haplotype_repeats_locus, genotype_loci_differ, more_than_two_haplotypes, genotype_list_loci_differ or locus_repeated_across_blocks.", "type": "string" }, "detail": { "type": "string" }, "severity": { "enum": [ "error", "warning" ], "type": "string" } }, "required": [ "severity", "code", "detail" ], "type": "object" }, "type": "array" }, "loci": { "items": { "type": "string" }, "type": "array" }, "normalized_gl": { "description": "The GL String with outdated names replaced by current ones.", "type": "string" }, "release": { "description": "IPD-IMGT/HLA release every verdict was computed against.", "type": "string" }, "valid": { "description": "true when there are no error-severity issues.", "type": "boolean" } }, "required": [ "release", "valid", "normalized_gl", "changed", "loci", "alleles", "issues", "counts" ], "type": "object" } }, { "description": "Scan HLA typing report text, or model output about HLA, for allele-shaped tokens and classify each one: valid / legacy (with modern form) / deleted (with successor) / fabricated. 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.", "inputSchema": { "additionalProperties": false, "properties": { "text": { "description": "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.", "maxLength": 200000, "type": "string" } }, "required": [ "text" ], "type": "object" }, "name": "verify_text", "outputSchema": { "properties": { "attribution": { "description": "Data attribution (IPD-IMGT/HLA, CC-BY-ND).", "type": "string" }, "clean": { "description": "The guardrail: true only when no token is hallucinated, fabricated_group or deleted. Gate on this before presenting the text.", "type": "boolean" }, "counts": { "description": "Number of distinct tokens per status.", "properties": { "deleted": { "type": "integer" }, "fabricated_group": { "type": "integer" }, "group": { "type": "integer" }, "hallucinated": { "type": "integer" }, "valid": { "type": "integer" } }, "required": [ "valid", "deleted", "group", "fabricated_group", "hallucinated" ], "type": "object" }, "release": { "description": "IPD-IMGT/HLA release every verdict was computed against.", "type": "string" }, "tokens": { "description": "Each distinct allele-shaped token found, sorted by token.", "items": { "properties": { "current_2field": { "description": "valid/deleted tokens that resolve: current 2-field form.", "type": "string" }, "flags": { "items": { "type": "string" }, "type": "array" }, "g_group": { "description": "G group; NONE or AMBIGUOUS when there is no single group.", "type": "string" }, "note": { "description": "Human-readable meaning of status.", "type": "string" }, "status": { "description": "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.", "enum": [ "valid", "group", "deleted", "fabricated_group", "hallucinated" ], "type": "string" }, "successor": { "description": "deleted: the name it was renamed to, when known.", "type": "string" }, "token": { "description": "The token without any HLA- prefix.", "type": "string" } }, "required": [ "token", "status", "note" ], "type": "object" }, "type": "array" } }, "required": [ "release", "tokens", "counts", "clean" ], "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:66c29cfbd9c80ef9a4532c6a4ba15cc44110a043b9daa1f00b32c91bccb1bb93 | sha256sum