glin-profanity-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| check_profanityB | Check text for profanity and get detailed results including matched words, severity, and positions |
| censor_textB | Censor profanity in text by replacing matched words with a replacement character |
| analyze_contextC | Analyze text with context awareness - considers domain-specific whitelists |
| batch_checkB | Check multiple texts for profanity in a single operation (max 100) |
| get_supported_languagesA | Get the list of all 24 supported languages |
| validate_contentC | Validate content with a safety score (0-100) and action recommendation |
| detect_obfuscationC | Detect text obfuscation techniques like leetspeak and Unicode homoglyphs |
| explain_matchC | Explain why a word was flagged with detailed reasoning |
| suggest_alternativesC | Suggest clean alternatives for profane content |
| analyze_corpusC | Analyze a collection of texts for profanity statistics (max 500) |
| compare_strictnessB | Compare detection results across different strictness levels |
| create_regex_patternC | Generate regex patterns for custom profanity detection |
| track_user_messageB | Track a user message and update their risk profile - enables pattern detection across messages |
| get_user_profileC | Get a user's moderation profile and risk assessment |
| get_high_risk_usersB | Get list of users with high risk scores for review |
| reset_user_profileB | Reset a user's moderation profile (use after appeals or timeouts) |
| stream_checkC | Add message to real-time processing queue and get instant result - optimized for chat streams |
| stream_batchC | Process multiple messages in real-time batch mode - for high-throughput scenarios |
| get_stream_statsB | Get real-time streaming statistics and performance metrics |
| check_prompt_injectionA | Scan text for prompt injection attacks using rule-based pattern matching. Returns a risk score (0-1), a decision (ALLOW / HITL / BLOCK), matched categories, and per-match position details. Custom patterns: max 20 patterns, each regex max 200 chars, 50 ms execution budget per pattern. |
| scan_secretsA | Scan text for leaked credentials, API keys, tokens, and other secrets. Returns a full ScanResult with per-match details including pattern id, family, and character positions. |
| scan_piiA | Scan text for Personally Identifiable Information (email, phone, SSN, credit card, IBAN, IP, MAC, passport, date of birth, etc). Returns a full ScanResult with per-match details. Use redact_pii for a reversible vault-backed redaction. |
| redact_piiA | Redact PII from text using a server-side vault for reversible round-trip. Returns sanitized text with [REDACTED__N] placeholders, a vaultId to use for restoration, and a list of placeholder+type pairs. Original values never leave the server. Call restore_pii with the same vaultId to get originals back. |
| restore_piiA | Restore PII placeholders in text back to their original values using a vault session created by redact_pii. The vault is maintained server-side — originals were never sent to the AI client. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| content_moderation | Step-by-step content moderation workflow |
| content_cleanup | Clean up content containing profanity |
| audit_report | Generate a comprehensive audit report |
| filter_tuning | Tune filter settings for your use case |
| user_review | Review a user's moderation history and risk profile |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| languages | |
| config-examples | |
| severity-levels | |
| domain-whitelists | |
| detection-guide | |
| docs-index | |
| docs-installation | |
| docs-getting-started | |
| docs-configuration | |
| docs-api-reference | |
| docs-faq | |
| docs-integrations-overview | |
| docs-integrations-openai | |
| docs-integrations-langchain | |
| docs-integrations-vercel | |
| docs-integrations-semantic | |
| docs-examples | |
| docs-testing | |
| docs-deployment | |
| docs-security | |
| docs-features | |
| docs-mcp-guide | |
| docs-openclaw |
TDQS
Scored across 24 tools
Most tools target distinct moderation operations, but check_profanity, analyze_context, and validate_content all assess text safety with subtle differences, while batch_check, stream_check, and stream_batch have overlapping batch/stream semantics. Descriptions help distinguish them, but an agent could misselect without careful reading.
The set is mostly consistent snake_case verb_noun naming (check_profanity, censor_text, detect_obfuscation, redact_pii). Minor deviations like batch_check, stream_check, and stream_batch reverse or blur the verb pattern but remain readable.
At 24 tools the server is heavy for a profanity-checking MCP, expanding into PII, secrets, prompt injection, streaming, and user risk profiles. Each tool seems purposeful, but the surface is broad enough to feel borderline over-scoped for the core domain.
Coverage is broad: detection, censorship, alternatives, context, validation, obfuscation, streaming, languages, user risk profiles, prompt injection, secrets, and reversible PII redaction. Minor gaps exist around managing custom regex patterns and redacting secrets, but core moderation workflows are well supported.