NLP Tools - Sentiment, NER, Toxicity & Language Detection
Toxicity, sentiment, NER, PII detection, and language identification tools
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"nlp-tools": {
"url": "https://nlp-mcp.thankfulfield-a7857897.eastus.azurecontainerapps.io/mcp"
}
}
}원격 엔드포인트
https://nlp-mcp.thankfulfield-a7857897.eastus.azurecontainerapps.io/mcpstreamable-httphttps://apim-ai-apis.azure-api.net/mcp/nlp/mcpstreamable-http할 수 있는 일
도구 목록
도구 (6)
🟢analyze_toxicity(text)
Analyze text for toxic content. Returns scores for 6 categories: toxic, severe_toxic, obscene, threat, insult, identity_hate. Each score is 0.0-1.0. BERT-based classifier with sub-15ms latency on GPU. Args: text: Text to analyze for toxicity (hate speech, insults, threats). Returns: dict with keys: - toxic (float 0-1): Overall toxicity score - severe_toxic (float 0-1): Severe toxicity score - obscene (float 0-1): Obscenity score - threat (float 0-1): Threat score - insult (float 0-1): Insult score - identity_hate (float 0-1): Identity-based hate score - is_toxic (bool): Whether text exceeds toxicity threshold
입력 스키마
{
"type": "object",
"properties": {
"text": {
"description": "Text to analyze for toxicity (hate speech, insults, threats)",
"maxLength": 100000,
"type": "string"
}
},
"required": [
"text"
]
}🟢analyze_sentiment(text, model)
Analyze text sentiment. Returns positive/negative classification with confidence scores. DistilBERT-based with sub-10ms latency. Multiple domain-specific model variants available. Args: text: Text to analyze for sentiment (positive/negative). model: Model variant -- 'general' (default), 'financial', 'twitter'. Returns: dict with keys: - label (str): 'positive' or 'negative' - score (float 0-1): Confidence score for the predicted label - scores (dict): All label scores (positive, negative)
입력 스키마
{
"type": "object",
"properties": {
"text": {
"description": "Text to analyze for sentiment (positive/negative)",
"maxLength": 100000,
"type": "string"
},
"model": {
"default": "general",
"description": "Model variant: 'general' (default), 'financial', 'twitter'",
"type": "string"
}
},
"required": [
"text"
]
}🟢extract_entities(text)
Extract named entities (NER) from text. Identifies persons, organizations, locations, and miscellaneous entities with span offsets and confidence scores. BERT-NER based with sub-50ms latency. Args: text: Text to extract named entities from. Returns: dict with keys: - entities (list): Detected entities, each containing: - text (str): Entity text - label (str): Entity type (PER, ORG, LOC, MISC) - start (int): Character offset start - end (int): Character offset end - score (float 0-1): Confidence score - count (int): Total number of entities found
입력 스키마
{
"type": "object",
"properties": {
"text": {
"description": "Text to extract named entities from (persons, organizations, locations)",
"maxLength": 100000,
"type": "string"
}
},
"required": [
"text"
]
}🟢detect_pii(text, redact)
Detect personally identifiable information (PII) in text. Finds emails, phone numbers, SSNs, credit cards, IP addresses, and person names. Optionally returns redacted text with PII replaced by type labels (e.g. [EMAIL], [PHONE]). BERT-NER + regex ensemble. Args: text: Text to scan for personally identifiable information. redact: If true, return redacted text with PII replaced by [TYPE]. Returns: dict with keys: - pii_found (list): Detected PII items, each containing: - text (str): The PII value found - type (str): PII type (EMAIL, PHONE, SSN, CREDIT_CARD, IP, PERSON) - start (int): Character offset start - end (int): Character offset end - score (float 0-1): Detection confidence - count (int): Total PII items found - redacted_text (str|null): Text with PII replaced (when redact=true) - has_pii (bool): Whether any PII was detected
입력 스키마
{
"type": "object",
"properties": {
"text": {
"description": "Text to scan for personally identifiable information",
"maxLength": 100000,
"type": "string"
},
"redact": {
"default": false,
"description": "If true, return redacted text with PII replaced by [TYPE]",
"type": "boolean"
}
},
"required": [
"text"
]
}🟢detect_language(text, top_k)
Detect the language of text. Supports 176 languages using fastText. Sub-1ms inference latency. Returns ISO 639-1 codes with confidence scores. Args: text: Text to identify the language of. top_k: Number of top language predictions to return (default: 3). Returns: dict with keys: - language (str): Top predicted language ISO 639-1 code - confidence (float 0-1): Confidence for top prediction - predictions (list): Top-k predictions, each with: - language (str): ISO 639-1 code - confidence (float 0-1): Prediction confidence
입력 스키마
{
"type": "object",
"properties": {
"text": {
"description": "Text to identify the language of",
"maxLength": 100000,
"type": "string"
},
"top_k": {
"default": 3,
"description": "Number of top language predictions to return",
"type": "integer"
}
},
"required": [
"text"
]
}🟢check_nlp_service
Check health status of NLP API services and loaded models. Returns: dict with keys: - status (str): 'healthy' or error state - models (dict): Loaded model status per capability - version (str): API version
입력 스키마
{
"type": "object",
"properties": {}
}커뮤니티
증거