# mcp/nlp.py import spacy def load_model(): try: return spacy.load("en_core_web_sm") except OSError: raise RuntimeError( "spaCy model 'en_core_web_sm' is not installed. " "Ensure Dockerfile downloads it at build time." ) nlp = load_model() def extract_keywords(text: str): """Extract unique Named Entities longer than 2 characters.""" doc = nlp(text) return list({ent.text for ent in doc.ents if len(ent.text.strip()) > 2})