MedCAT — Medical Concept Annotation Toolkit
Apache-2.0 unsupervised clinical NER and linking library that maps free-text clinical mentions to SNOMED CT, ICD-10, UMLS, and other biomedical ontologies.
MedCAT — Medical Concept Annotation Toolkit
MedCAT (Medical Concept Annotation Tool) by CogStack is an unsupervised medical named entity recognition and entity linking library. It learns from unlabelled clinical text to map mentions to standardised medical ontologies (SNOMED CT, UMLS, ICD-10, OPCS) and continuously improves through active learning in the MedCATTrainer web interface.
Key Features
- Unsupervised NER + entity linking to SNOMED CT, UMLS, ICD-10, OPCS
- Active learning loop: human-in-the-loop annotation via MedCATTrainer
- Meta-annotation models: negation, temporality, experiencer (patient vs. family)
- Multi-model architectures: BiLSTM, BERT-based (clinical BERT variants)
- Handles abbreviations, spelling variants, and morphological changes
- Used in NHS Trusts and academic hospitals at scale
Quick Start
from medcat.cat import CAT
from medcat.vocab import Vocab
from medcat.cdb import CDB
vocab = Vocab.load("/path/to/vocab.dat")
cdb = CDB.load("/path/to/cdb.dat")
cat = CAT(cdb=cdb, config=cdb.config, vocab=vocab)
text = "The patient was diagnosed with T2DM and started on metformin."
entities = cat.get_entities(text)
print(entities)
npx ai-supply add medcat-medical-concept-annotation
Curated mirror of the open-source MedCAT (Apache-2.0). Get it from the source.
Compromise signals — malicious or tampered code (leaked secrets, backdoors, a dropped executable) — reduce the score, and known dependency CVEs carry a bounded penalty (they warrant review but never QUARANTINE — update the dependency to clear). Other dangerous-by-capability traits are risk surface, expected for some capabilities. Every finding is mapped to its OWASP control below.
Findings mapped to the OWASP Top 10 for LLM Applications (2025) and the OWASP Machine Learning Security Top 10. Expand any flagged control for the exact findings — compromise reduces the score; expected/risk-surface do not, except a known CVE, which carries a small bounded penalty (high/critical → Review).
The same gate an agent runs before installing (POST /api/v1/trust/medcat-medical-concept-annotation/check). Click a policy:
Consume MedCAT — Medical Concept Annotation Toolkit programmatically. Authenticate with an API key or session — see Authorize an agent.
# Agents: CHECK BEFORE YOU INSTALL (no auth) — score, grade, level, capability manifest
curl https://ai-supply.store/api/v1/trust/medcat-medical-concept-annotation
# Gate against your org policy (returns { pass, violations })
curl -X POST https://ai-supply.store/api/v1/trust/medcat-medical-concept-annotation/check \
-H "Content-Type: application/json" \
-d '{"minGrade":"B","denyPermissions":["shell"],"denyUnknownEgress":true}'
# CLI
npx ai-supply add medcat-medical-concept-annotation
# REST (install → download)
curl -X POST https://ai-supply.store/api/v1/listings/medcat-medical-concept-annotation/install \
-H "Authorization: Bearer $AIM_KEY"
# MCP tool
install_listing({ "slug": "medcat-medical-concept-annotation" })OpenAPI spec →Curated mirror — latest upstream source. See the repository for tagged releases.