analyze_context
Analyze text with context awareness - considers domain-specific whitelists
Content moderation as tools: check, censor, score and explain — plus a risk profile that follows a user across messages.
LABSCO SUMMARY
analyze_context applies a domain whitelist so clinical or gaming vocabulary is not treated as abuse, detect_obfuscation catches leetspeak and homoglyph tricks, and explain_match gives a moderator a reason rather than a verdict. track_user_message is the one that changes moderation practice: it turns individual decisions into a profile, which is how a single outburst stays distinguishable from a pattern worth acting on.
A moderation server built on the glin-profanity library. It flags and censors text across 24 languages, sees through leetspeak and Unicode substitution, and keeps a risk profile per user id.
No account and no key. npx -y glin-profanity-mcp runs it over stdio, or install glin-profanity-mcp globally; the package also ships an HTTP entry point, glin-profanity-mcp-http, for clients that need one. Detection options travel with each call — languages, custom words, ignore words, case sensitivity, word boundaries, leetspeak detection, Unicode normalisation — so there is no configuration file to prepare first.
One command — npx -y glin-profanity-mcp
USE CASES
Check it, then take the safety score and its recommended action rather than deciding from the raw match list.
Censor the matches with your own replacement character, keeping first letters if that is your house style.
Analyse with the domain set, and ask why anything still flagged was flagged.
Push messages through the streaming queue and watch the throughput statistics as volume rises.
Track their messages, read the risk profile that builds up, and pull the list of the highest-risk accounts.
Run them in batches, then take word-frequency statistics over the whole corpus to see what you are dealing with.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
analyze_contextAnalyze text with context awareness - considers domain-specific whitelists
analyze_corpusAnalyze a collection of texts for profanity statistics (max 500)
batch_checkCheck multiple texts for profanity in a single operation (max 100)
censor_textCensor profanity in text by replacing matched words with a replacement character
check_profanityCheck text for profanity and get detailed results including matched words, severity, and positions
compare_strictnessCompare detection results across different strictness levels
create_regex_patternGenerate regex patterns for custom profanity detection
detect_obfuscationDetect text obfuscation techniques like leetspeak and Unicode homoglyphs
explain_matchExplain why a word was flagged with detailed reasoning
get_high_risk_usersGet list of users with high risk scores for review
get_stream_statsGet real-time streaming statistics and performance metrics
get_supported_languagesGet the list of all 24 supported languages
get_user_profileGet a user's moderation profile and risk assessment
reset_user_profileReset a user's moderation profile (use after appeals or timeouts)
stream_batchProcess multiple messages in real-time batch mode - for high-throughput scenarios
stream_checkAdd message to real-time processing queue and get instant result - optimized for chat streams
suggest_alternativesSuggest clean alternatives for profane content
track_user_messageTrack a user message and update their risk profile - enables pattern detection across messages
validate_contentValidate content with a safety score (0-100) and action recommendation
BEFORE YOU INSTALL
19 tools when we connected; the project documents 24. The 5 AI guardrail tools (check_prompt_injection, scan_secrets, scan_pii, redact_pii, restore_pii) are documented but absent from the current npm build.
npx on PATH
All 3 documented clients run the server on your machine.
INSTALLATION
npx -y glin-profanity-mcp{
"mcpServers": {
"glin-profanity": {
"command": "npx",
"args": [
"-y",
"glin-profanity-mcp"
]
}
}
}