English profanity filter: find and censor swear words, incl. obfuscations. Word list, not AI.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional. 'Bearer pf_...' free key or 'Bearer CCPR-...' CussCheck Pro license key for higher limits. Works without a key.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Detect English profanity in text (word list with leetspeak, look-alike letters, repeated letters, dotted/spaced letters and hidden characters handled) and return the matched terms, their positions (UTF-16 start/end in your text) and, unless censor is false, a censored copy of the same length. Common innocent words (Scunthorpe, cockpit, Shiite, cumin) are whitelisted; it does not understand context and is English only. Text up to 10240 UTF-8 bytes; it is not stored or logged. matches is capped at 50 here (match_count is the full total). Read-only. Same engine, keys and limits as POST /v1/check.
The text to check, at most 10240 UTF-8 bytes.
Extra words to flag on word boundaries, e.g. ["jerk"].
Words never to flag, e.g. ["hell", "damn"]. Allow wins over deny.
Return a censored copy (default true).
Detect English profanity in text (word list with leetspeak, look-alike letters, repeated letters, dotted/spaced letters and hidden characters handled) and return the matched terms, their positions (UTF-16 start/end in your text) and, unless censor is false, a censored copy of the same length. Common innocent words (Scunthorpe, cockpit, Shiite, cumin) are whitelisted; it does not understand context and is English only. Text up to 10240 UTF-8 bytes; it is not stored or logged. matches is capped at 50 here (match_count is the full total). Read-only. Same engine, keys and limits as POST /v1/check.
| Argument | Type | Description |
|---|---|---|
| deny | array | Extra words to flag on word boundaries, e.g. ["jerk"]. |
| text* | string | The text to check, at most 10240 UTF-8 bytes. |
| allow | array | Words never to flag, e.g. ["hell", "damn"]. Allow wins over deny. |
| censor | boolean | Return a censored copy (default true). |
{
"type": "object",
"required": [
"text"
],
"properties": {
"deny": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"maxItems": 50,
"description": "Extra words to flag on word boundaries, e.g. [\"jerk\"]."
},
"text": {
"type": "string",
"maxLength": 10240,
"description": "The text to check, at most 10240 UTF-8 bytes."
},
"allow": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"minLength": 1
},
"maxItems": 50,
"description": "Words never to flag, e.g. [\"hell\", \"damn\"]. Allow wins over deny."
},
"censor": {
"type": "boolean",
"description": "Return a censored copy (default true)."
}
},
"additionalProperties": false
}