{"name":"com.hlaverify/hla-verify","slug":"hlaverify-hla-verify","title":"HLA-Verify","description":"HLA nomenclature and match checks against a pinned IPD-IMGT/HLA release. No patient identifiers.","url":"https://mcp.market/server/hlaverify-hla-verify","rating":null,"grade":"A","score":87,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":23,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-09-18T14:10:20.000Z","license":"Apache-2.0"},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/jasonbrelsford/verifiable-science-envs","website":"https://hlaverify.com","version":"1.0.1","remotes":[{"type":"streamable-http","url":"https://api.hlaverify.com/mcp","headers":[{"description":"Optional. Without a key /mcp shares the free tier (60 requests/minute); keys: https://api.hlaverify.com/pricing","isSecret":true,"name":"X-API-Key"}]}],"packages":[],"tools":[{"name":"about","description":"What this server is and is not, what to send it, benchmark evidence for why to use it, the beta state, and terms.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{},"additionalProperties":false}},{"name":"allele_info","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","maxLength":64,"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."}},"required":["name"],"additionalProperties":false}},{"name":"beta_signup","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 hello@hlaverify.com for a beta key instead of waiting.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"description":"The user's email address."},"org":{"type":"string","maxLength":120,"description":"Lab, company or institution (optional)."},"use_case":{"type":"string","maxLength":500,"description":"What they would use the API for (optional). No patient details."},"source":{"type":"string","maxLength":120,"description":"Where the signup came from, e.g. mcp (optional)."}},"required":["email"],"additionalProperties":false}},{"name":"check_typing","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"typing":{"type":"object","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.","additionalProperties":{"type":"array","items":{"type":"string"}}}},"required":["typing"],"additionalProperties":false}},{"name":"donor_compat","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"recipient":{"type":"object","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.","additionalProperties":{"type":"array","items":{"type":"string"}}},"donor":{"type":"object","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.","additionalProperties":{"type":"array","items":{"type":"string"}}}},"required":["recipient","donor"],"additionalProperties":false}},{"name":"match_score","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"recipient":{"type":"object","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.","additionalProperties":{"type":"array","items":{"type":"string"}}},"donor":{"type":"object","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.","additionalProperties":{"type":"array","items":{"type":"string"}}},"framework":{"type":"string","enum":["6/6","8/8","10/10","12/12","antigen"],"default":"8/8"}},"required":["recipient","donor"],"additionalProperties":false}},{"name":"normalize_allele","description":"Normalize one reported HLA allele name (any era) to current 2-field form, with G group, P group, serologic equivalent, and flags.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"name":{"type":"string","maxLength":64,"description":"One reported HLA allele name, any nomenclature era. An allele string only, never a patient name, medical record number or other identifier."}},"required":["name"],"additionalProperties":false}},{"name":"research_access","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"email":{"type":"string","maxLength":254,"description":"The applicant's email address. The approval code is sent here."},"institution":{"type":"string","maxLength":200,"description":"University, hospital, institute or nonprofit the work is done at."},"use_case":{"type":"string","maxLength":1000,"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."},"expected_volume":{"type":"string","maxLength":120,"description":"Rough call or typing volume, e.g. 'about 20,000 typings a month' (optional)."},"source":{"type":"string","maxLength":120,"description":"Where the application came from, e.g. mcp (optional)."}},"required":["email","institution","use_case"],"additionalProperties":false}},{"name":"validate_gl_string","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"gl":{"type":"string","maxLength":100000,"description":"GL String to validate and normalize. Allele names and GL grammar only, never patient identifiers."}},"required":["gl"],"additionalProperties":false}},{"name":"verify_text","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"text":{"type":"string","maxLength":200000,"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."}},"required":["text"],"additionalProperties":false}}],"scan":{"score":87,"grade":"A","scanned_at":"2026-09-19T09:58:50.593Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T09:58:50.542Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 420ms"]},"poisoning":{"score":15,"max":15,"notes":["10 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":7,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[],"inputs":{"probes":[{"url":"https://api.hlaverify.com/mcp","reachable":true,"authRequired":false,"latencyMs":420,"serverInfo":{"name":"hla-verify","version":"1.0.1"}}],"packages":[],"repo":{"found":true,"owner":"jasonbrelsford","repo":"verifiable-science-envs","archived":false,"pushedAt":"2026-09-18T14:10:20Z","stars":0,"forks":0,"openIssues":4,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/2005536?v=4","ownerCreatedAt":"2012-07-19T14:02:17Z","license":"Apache-2.0"},"icon":{"url":"https://hlaverify.com/assets/logo.svg","source":"site"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"Apache-2.0","lastPushAt":"2026-09-18T14:10:20.000Z","score":23}}}},"grade_history":[],"reviews":[]}